Skip to content

Latest commit

 

History

History
86 lines (65 loc) · 5.04 KB

resume.md

File metadata and controls

86 lines (65 loc) · 5.04 KB

Brian Zhang

Email: [email protected] Tel: 925-699-3883

Computer science graduate from the University of California, Berkeley. Interests include web development, programming languages, and machine learning. In my free time I enjoy spending time outdoors and playing jazz piano.

Experience

Software Eng. Intern, Symmetricom (2013-05 - 2013-08)

Source control management system administration.

  • Modernized source control management system from Mercurial to Git and Atlassian Bitbucket/JIRA.
  • Worked on new software development workflow, e.g. automating bug reporting and tracking services.

Software Eng. Intern, Blackhawk Network (2012-05 - 2012-08)

Front and back end financial services.

  • Developed iOS app for GoWallet, a service for managing financial payments products, e.g. gift cards.
  • Developed back end payment processing system for PayPower, a reloadable Visa prepaid card.

Education

University of California, Berkeley - Bachelor of Arts, Computer Science (2011-01 - 2015-12)

CS 61A - Structure and Interpretation of Computer Programs

  • Twitter Trends - geographic visualization of Twitter data across the USA (Python)
  • Ants vs. SomeBees - tower defense game inspired by Plants vs. Zombies (Python)
  • Logo Interpreter - evaluator and parser for the Logo language (Python)

CS 61B - Data Structures

  • Sharks and Fish - simulation of an ocean inspired by Conway's Game of Life (Java)
  • Network (The Game) - designed agent that plays the game Network against a human or another agent using minimax search with alpha-beta pruning (Java)

CS 61C - Machine Structures

  • LIFC Compiler - compiler from homebrew language of LIFC to MIPS assembly (lexing, parsing, static analysis, code generation) (C)
  • Eigenvector Finding - simple eigenvector finding algorithm optimized with Intel SSE and OpenMP (C)
  • Processor Design - 2-stage pipelined processor for the Ida 2 assembly language (Logisim)

CS 161 - Computer Security

  • Transport Layer Security (TLS) Handshake Protocol - simple implementation similar to mbed TLS (C)

CS 162 - Operating Systems and Systems Programming

  • Threads - alarm clock, priority scheduler, and multilevel feedback queue scheduler (4.4BSD scheduler) implemented using Pintos (simple operating system framework) (C)
  • User Programs - argument passing, memory access, and system calls (to support user programs) implemented using Pintos (C)
  • Key-Value Store - distributed key-value store database with two-phase commit (C)

CS 164 - Programming Languages and Compilers

  • Course Project - self-titled simple language called CS164 implemented using Node.js (JavaScript)
    • Interpreter - support for integer arithmetic, closures, and desugaring
    • Objects and Layout - layout engine and support for tables and objects with prototype-based inheritance
    • Bytecode and Coroutines - compiler from ASTs to bytecode, bytecode interpreter, and support for coroutines and tail call optimization
    • Grammars - grammar for parsing the CS164 language
  • Arbor - small domain-specific language designed to visualize abstract syntax trees using the D3 JavaScript library; developed in two weeks by my partner and myself (JavaScript)

CS 170 - Efficient Algorithms and Intractable Problems

  • NP-Hard Approximation - approximation algorithm for maximum acyclic subgraph problem proven to yield a better than 1/2-approximation on a majority of instances by reduction to a constraint satisfaction problem (Python)

CS 186 - Database Systems

  • Course Project - database system implementation using Amazon SimpleDB (Java)
    • Query Plans and Joins - support for chunk-nested loop join and symmetric hash join
    • Query Optimizer - dynamic programming and greedy join algorithms
    • Recovery - support for log-based rollback and crash recovery (to enforce atomicity and durability)
  • UDF Caching in Spark - disk hash-partitioning, in-memory UDF caching, and hash-partitioned UDF caching implemented using Apache Spark (Scala)

CS 188 - Artificial Intelligence

  • Course Project - designed agents for the classic Pacman game using a variety of strategies (Python)
    • Search - support for depth-first search, breadth-first search, uniform-cost search, and A * search
    • Multi-Agent Search - reflex agent, minimax agent with alpha-beta pruning, and expectimax agent
    • Reinforcement Learning - support for value iteration, Q-learning, and approximate Q-learning
    • Bayes' Nets - inference algorithms for Bayes' Nets (variable elimination and likelihood weighting sampling)
    • Ghostbusters - support for locating and eating ghosts using hidden Markov models and particle filtering
  • Classification - designed a perceptron classifier, a large-margin (MIRA) classifier, and a perceptron classifier for behavioral cloning (Python)

Skills

Web Frameworks

AngularJS, D3, Express, Node.js, React, Django, Flask

Programming Languages

C, C++, CoffeeScript, Objective-C, Java, JavaScript, Kotlin, Python, Ruby, Scala, Swift

Operating Systems

Arch, Debian, Fedora, OS X, Windows

References

Available upon request.