SHAWN ZHANG


Developer Scientist





Hello World!


Hi, I'm Shawn, and welcome to my website! I'm currently pursuing a B.S. in Computer Science (concentrating in Artificial Intelligence) at Stanford University, class of '22.

My goal is to apply computer science and develop novel products with real, future implications — to evaluate problems and ultimately create solutions. Whether it's through software engineering, data science, entrepreneurship or research, I desire to make a meaningful impact across fields and among people.

But I'm not just all work either! In my spare time, you can find me hiking/stargazing, caught up in a board game, or playing fingerstyle guitar (ranging from bossa novas to video game OSTs).

I'm always eager to try on new opportunities! Feel free to reach out — I'd love to meet you!

Education


Stanford University

Artificial Intelligence

CS 221

  Artificial Intelligence: Principles and Techniques

Focused on foundational concepts for A.I. applications. Specific topics included search, constraint satisfaction, game playing, Markov decision processes, graphical models, machine learning, and logic.

CS 230

  Deep Learning

Practical course that covered the different types of deep neural networks, their architectures, and their applications. Worked on case studies from healthcare, autonomous driving, music generation, and natural language processing.

CS 229

  Machine Learning

Theoretical course that dived into linear/non-linear regression, exponential family, GLMs, SVMs, kernel methods, density estimation, EM, dimensionality reduction, ICA, PCA, reinforcement learning, etc.

CS 224 N

  Natural Language Processing with Deep Learning

Focus on deep learning approaches for a variety of language understanding tasks. Explored state-of-the-art techniques in syntactic processing to conference, question answering, machine translation, and more.

Algorithms and Systems

CS 106 B

  Programming Abstractions

Studied abstraction and software engineering principles of modularity. Focused on object-orientated programming, recursion, data structures, and algorithms in C++.

CS 107

  Computer Organization and Systems

Introduced to fundamentals of computer systems. Explored data, memory, and performance management — working from C down to the microprocessor. Implemented both implicit and explicit heap allocator.

CS 161

  Design and Analysis of Algorithms

In-depth coverage of worst/average case analysis, recurrences/asymptotics, and efficient algorithms.

CS 110

  Principles of Computer Systems

Principles and practice of computer software and hardware systems. Deep dive into virtual memory, multiprocessing, multithreading, and networking. Final project involved implementing MapReduce algorithm.

CS 193 A

  Android Programming

Learned about building applications for Android platform. Examined key concepts: tool chain, application life-cycle, views, intents, UIs, networking, threading, etc.

Mathematics and Theory

MATH 51

  Linear Algebra and Differential Calculus of Several Variables

Studied vectors, matrices, linear transformations, eigenvalues, Markov chains, and decompositions. Additionally learned unconstrained (gradients/Hessians) and constrained (Lagrange multipliers) optimization.

MATH 104

  Applied Matrix Theory

Covered orthogonality, projections, the four fundamental subspaces, spectral theory of symmetric matrices, SVD, QR decomposition, eigendecomposition, least-squares, and multivariate linear regression.

CS 103

  Mathematical Foundations of Computing

Proof-based class that explored mathematical proofs, discrete structures, propositional predicate logic, induction, grammars, automata, Turing machines, and NP-completeness.

CS 109

  Introduction to Probability for Computer Scientists

Applications of probability in computer science including machine learning, deep learning, and analysis of algorithms. Topics include counting, combinatorics, random variables, etc.

Work Experience



Cisco Systems

IoT Software Engineering Intern | 06/19 - 09/19

  • Project Deep Edge - Developed an easy-to-use framework to collect/update training data, convert ML/DL models to target Cisco Edge hardware, such as IR8x9 and IC3K
  • Created frontend (in HTML/CSS) and backend (in Flask) of website that converted neural-network models (Keras, PyTorch, ONNX, TensorFlow) to TVM
  • Use Case - Made autoencoder LSTM model for real-time vibration anomaly detection (tested via Raspberry Pi)
  • Successfully enabled deep learning on edge devices (anticipating demonstration for Cisco Live)

  • Patent Pending:
    [Industrial IoT] System and Method for Vibration-Based Zero Touch Precision Fault Detection

Oppia

Open-source Contributor | 09/18 - 05/19

  • Part of Stanford's Code the Change club
  • Contributed towards analytics project in improving lesson flow towards online learning platform
  • Developed in AngularJS for frontend and Python for backend
  • Implemented end-to-end testing

Projects


Tradeoffs Between Embeddings in Different Models of the Hyperbolic Space

10/19 - 12/19

Project done for Stanford's CS 229 (Machine Learning).
There is little theoretical understanding of the tradeoffs in using different models of hyperbolic space and how they are influenced by the properties of the graph they are applied to. In particular, there are four common models that we set out to better understand: the hyperboloid model, the Poincaré disk, the half-plane model, and the Beltrami-Klein model. Through experimentation with various synthesized graphs based on radius, height, and density and also graphs that model real-world data, we compared various metrics for each of the four models when applied to the graphs.

CNN Transfer Learning for Visual Guitar Chord Classification

10/19 - 12/19

Project done for Stanford's CS 230 (Deep Learning).
Contrary to previous aural approaches, this project seeks to build a visual classifier to determine whether a guitarist is playing a C, D, Em, F or G chord. The input to our system is a 1080 x 720 RGB image of a person playing a guitar. We then autonomously bound/crop the hands, passing the cropped image into our model to get an output prediction. Note, the data was personally gathered and experimented on ResNet18 and GoogLeNet architectures.

CNNs for Photorealistic Computer-Generated Imagery Detection

10/19 - 12/19

Project done for Stanford's CS 221 (Artificial Intelligence: Principles and Techniques).
To counteract the growing danger of CGI’s advancement, our project sought to build a binary classifier that would be able to detect whether an image was a real photographic image or just a photorealistic computer-generated image. Our inputs were RGB images of “real” and “fake” scenes, where we outputted both our classification as well as our confidence.

On the Evolution of Dark Matter Halo Properties after Major and Minor Mergers

06/17 - 09/17

Research conducted at UC Santa Cruz's Astrophysics Department.
In this work, we analyzed ~80,000 dark matter halos from the Bolshoi-Planck cosmological simulation and studied halo evolution during relaxation after major mergers. By analyzing their property evolutions and peak distributions, we designed and implemented a novel algorithm for identifying/classifying major and minor mergers. Through our merger statistics, we discovered immense evidence that minor mergers were the culprits behind unaccounted relaxation.

Orbit Modeling of Asteroid 2017 BM31

07/17 - 08/17

Conducted at Yale University's Leitner Observatory.
Operating the observatory's 12" telescope, we had to capture nightly pictures of 2017 BM31. Processing those pictures, we then used astro-photometric software MaxIm DL to prepare image analysis and track the asteroid. Later, we coded Python modules to use reference stars and generate coordinate maps for images. Finally, we coded the Gauss-Newton algorithm to determine asteroid orbit, optimizing with gradient descent and a genetic algorithm.

Using a Novel Methodology to Constrain the SMBH-Galaxy Coevolution and Analyze the Selection Bias

06/16 - 09/16

Research conducted at UC Santa Cruz's Astrophysics Department.
Compiling datasets of galaxies and supermassive black holes, we devised statistical convolution to estimate redshift evolution, construct number density models, constrain galaxy properties, and affirm a SMBH-galaxy coevolution. Additionally, we addressed the controversial Shankar et al. (2016) selection bias — our statistics found that such a bias has little impact on our SMBH-galaxy relations.

Contact Me


Thank you for taking the time to visit my website! If anything here piqued your interest, don't hesitate to drop a line. Let's get in touch!



Designed and handcoded with ❤️ and ☕ by Shawn Zhang.