Experience
Software Engineer
Linkedin
November 2019 – Present
Senior Software Engineer
Yahoo
October 2015 – November 2019
Software Engineer
UCSD Stein Clinical Research Center
October 2012 – June 2015
Teaching Assistant
UC San Diego
March 2014 – December 2014
Software Engineering Intern
Yahoo
June 2014 - September 2014
Software Engineering Intern
Informatica
June 2013 – September 2013
Software Engineering Intern
ViaSat
June 2012 – September 2012
Computer Science and Engineering Tutor
Computer Science and Engineering Department, UCSD
September 2010 – June 2012
Assistant Administrative
Environmental Health Management Facility, UCSD
September 2010 – June 2011
Projects
Systolic Pressure Estimation Using Video Processing
Designed and implemented a low-cost and convenient method to estimate systolic pressure using video processing. The method extracts pulse transit time between the neck and the wrist using video processing, which includes feature extraction, feature tracking, temporal filtering, principle component analysis, etc. After obtaining the pulse transit time, linear regression analysis is done to estimate systolic blood pressure.
Technologies used: Matlab, Harris Corner detection, Lucas-Kanade tracking algorithm, bandpass filter, Principle Component Analysis
Dashboard
Developed a web application for researchers to check survey statistics such as participant's names, survey response rate, last response date, etc. and filter for desired data.
Technologies used: NodeJS, Express, Jade, Javascript, HTML, PureCSS, SQL
Database System Implementation
Developed a query execution engine which receives a simplified XQuery and an input XML file and evaluates the query. The system parses the query into an abstract tree representation (using ANTLR4), optimizes it (using hash-based join), produces a list of output nodes, and constructs a result file in the form of XML.
Technologies used: Xpath, XQuery, XML, ANTLR4, Java
System Measurement Project
Implemented and performed a series of experiments to measure the performance of Ubuntu 13.10 on a Dell Studio XPS 13” with Intel(R) Core(TM)2 Duo CPU P8600 @2.40GHz
Technologies used: All code was written in C
Pipelined CPU
Designed an ISA and implemented a fully pipelined CPU which includes the register file, ALU (arithmetic logic unit), and the fetch unit. The overall philosophy for this ISA was a Reduced Instruction Set Computing (RISC) style architecture.
Technologies used: C, SystemVerilog, Quartus II
Shopping Application
Developed a shopping application that enables the customers to browse and search a product catalog and buy products. The owners of the application are able to analyze the purchasing and browsing patterns of the users to obtain insights.
Technologies used: SQL, JSP, Tomcat, Javascript, Ajax, HTML
Just In Time Mobile App
Developed an app that helps users stay on top of what they need to do with its simple daily agenda. It tells users the distance and the time it will take to reach the destination of the next event and starts notifying users when it's time to go based on current location and traffic.
Technologies used: Android SDK, Google Map API, Windows Azure, Bitbucket, EGit, Java, PHP, SQL
Photo Filter
Developed a mobile web application that allows users to transform their photos using multiple filters. Users can also add text/comment and share to different social platforms such as facebook and flickr.
Technologies used: HTML, CSS, JQuery, C++
Digital Vision Screening
Detected the crescent error on the eye and aid the user in determining if the patient has amblyopia or strabismus. Implemented methods to detect the errors, and fully integrated the image analysis end with the GUI end of the project.
Technologies used: OpenCV, Visual Studio C++
Crossfit Workout Tracker
Created a web application for Crossfit Athletes to log their daily workout data and activities. The app includes many other features such as calendar, graphs, notes, goal tracker, photos, etc.
Technologies used: PHP, MYSQL, HTML, CSS, Javascript
Reduced C Compiler
Built a compiler that takes a Reduced C program as input and generate corresponding SPARC assembly code to result in an executable program.
Implemented semantic checker, syntactical analyzer, and code generation with dynamic runtime checks.
Technologies used: C++, bash
Slack notification for Screwdriver - Yahoo DPS Hack Day
A plugin that notifies your slack channel when your build passes or fails, based on your configuration
Technologies used: NodeJS
Automigration microservice - Yahoo DPS Hack Day
A microservice that auto-creates projects and converts old configuration file to the new configuration format
Technologies used: NodeJS, Github API
Geo-based Trivia Game - 24hr Hackathon Project
Created a geo-based trivia game with questions about the location that the airplane is passing
Technologies used: nodejs, Javascript, HTML, CSS
Travelr - 24hr Hackathon Project
Created a traveling app that suggests users where to go based on top tagged geo location on flickr.
Technologies used: Groovy, Grails, Flickr API, D3JS, Javascript
p4shelve with Jenkins - 24hr Hackathon Project
Used p4 shelve in Jenkins to tell whether the commit breaks the builds before pushing the code to production.
Technologies used: Perforce, Jenkins, bash
Education
University of California, San Diego (2014-2015)
M.S. Computer Science
GPA: 3.84/4.0
University of California, San Diego (2009-2013)
B.S. Computer Science
GPA: 3.7/4.0
Major GPA: 3.8/4.0
List of relevant courses taken
Organizations
Honors & Awards
Software Engineer
November 2019 – Present
- Optimizing ads experience on Linkedin feed.
Senior Software Engineer
Yahoo
October 2015 – November 2019
- Work on Open Sourced Screwdriver (https://github.com/screwdriver-cd/screwdriver), leading and developing many core features.
- Technologies used: NodeJS, Golang, Kubernetes, AWS, Docker, Postgres, MySQL, Github API, Bitbucket API, etc.
Software Engineer
UCSD Stein Clinical Research Center
October 2012 – June 2015
- Develop a web app for participants to track their goals and progress.
- Develop a dashboard for survey response statistics.
- Collect and analyze data for researchers to study patients’ behaviors and psychological disorders.
- Implement survey's flow/branching based on the answers of participants using particular rules and actions.
- Technologies used: MySQL, Play framework, NodeJS, express, jade, HTML, CSS, XML, Javascript, Python
Teaching Assistant
UC San Diego
March 2014 – December 2014
- Lead discussion sections and hold office hours for a Digital System Design class of 500 students.
- Made videos to help students understand basic concepts: https://www.youtube.com/user/cs3girl/videos
Software Engineering Intern
Yahoo
June 2014 - September 2014
- Develop a validator tool for YAML/JSON configuration files to inform users what commands will be executed and if there are any errors or warnings.
- Work on the next generation of Yahoo’s centralized CI/CD build farm.
- Technologies used: D3js, NodeJS, Express, EJS, Javascript, HTML, CSS, Git
Software Engineering Intern
Informatica
June 2013 – September 2013
- Create a web application for internal tutorials to improve efficiency in knowledge transfer.
- Write bash scripts to automate build jobs for third party libraries. Set up CruiseControl and Jenkins jobs to allow continuous integration.
- Technologies used: bash, Jekins, CruiseControl, Playframework, Javascript, HTML, CSS, Perforce.
Software Engineering Intern
ViaSat
June 2012 – September 2012
- Take Real User Monitoring (RUM) data and process it in real-time using Twitter Storm architecture (real time Hadoop).
- Calculate throughput and packet loss for both forward and return link data, as well as web page load time experienced by the user. Find these statistics for varying intervals and at various detail levels from entire AcceleNet network down to individual user terminals.
- Technologies used: Java, Storm, Maven.
Computer Science and Engineering Tutor
Computer Science and Engineering Department, UCSD
September 2010 – June 2012
- CSE 8A/8B (Intro Computer Science: JAVA) - Winter 2012 & Spring 2012:
- CSE 12 (Basic Data Structures and Object-Oriented Design) - Winter 2011 & Spring 2011:
- CSE 3 (Fluency in Information Technology) - Fall 2010
Assistant Administrative
Environmental Health Management Facility, UCSD
September 2010 – June 2011
- Maintain database, financial organizing and record keeping.
- Generate new hire requisitions and other personnel related paperwork.
Projects
Systolic Pressure Estimation Using Video Processing
Designed and implemented a low-cost and convenient method to estimate systolic pressure using video processing. The method extracts pulse transit time between the neck and the wrist using video processing, which includes feature extraction, feature tracking, temporal filtering, principle component analysis, etc. After obtaining the pulse transit time, linear regression analysis is done to estimate systolic blood pressure.
Technologies used: Matlab, Harris Corner detection, Lucas-Kanade tracking algorithm, bandpass filter, Principle Component Analysis
Dashboard
Developed a web application for researchers to check survey statistics such as participant's names, survey response rate, last response date, etc. and filter for desired data.
Technologies used: NodeJS, Express, Jade, Javascript, HTML, PureCSS, SQL
Database System Implementation
Developed a query execution engine which receives a simplified XQuery and an input XML file and evaluates the query. The system parses the query into an abstract tree representation (using ANTLR4), optimizes it (using hash-based join), produces a list of output nodes, and constructs a result file in the form of XML.
Technologies used: Xpath, XQuery, XML, ANTLR4, Java
System Measurement Project
Implemented and performed a series of experiments to measure the performance of Ubuntu 13.10 on a Dell Studio XPS 13” with Intel(R) Core(TM)2 Duo CPU P8600 @2.40GHz
Technologies used: All code was written in C
Pipelined CPU
Designed an ISA and implemented a fully pipelined CPU which includes the register file, ALU (arithmetic logic unit), and the fetch unit. The overall philosophy for this ISA was a Reduced Instruction Set Computing (RISC) style architecture.
Technologies used: C, SystemVerilog, Quartus II
Shopping Application
Developed a shopping application that enables the customers to browse and search a product catalog and buy products. The owners of the application are able to analyze the purchasing and browsing patterns of the users to obtain insights.
Technologies used: SQL, JSP, Tomcat, Javascript, Ajax, HTML
Just In Time Mobile App
Developed an app that helps users stay on top of what they need to do with its simple daily agenda. It tells users the distance and the time it will take to reach the destination of the next event and starts notifying users when it's time to go based on current location and traffic.
Technologies used: Android SDK, Google Map API, Windows Azure, Bitbucket, EGit, Java, PHP, SQL
Photo Filter
Developed a mobile web application that allows users to transform their photos using multiple filters. Users can also add text/comment and share to different social platforms such as facebook and flickr.
Technologies used: HTML, CSS, JQuery, C++
Digital Vision Screening
Detected the crescent error on the eye and aid the user in determining if the patient has amblyopia or strabismus. Implemented methods to detect the errors, and fully integrated the image analysis end with the GUI end of the project.
Technologies used: OpenCV, Visual Studio C++
Crossfit Workout Tracker
Created a web application for Crossfit Athletes to log their daily workout data and activities. The app includes many other features such as calendar, graphs, notes, goal tracker, photos, etc.
Technologies used: PHP, MYSQL, HTML, CSS, Javascript
Reduced C Compiler
Built a compiler that takes a Reduced C program as input and generate corresponding SPARC assembly code to result in an executable program.
Implemented semantic checker, syntactical analyzer, and code generation with dynamic runtime checks.
Technologies used: C++, bash
Slack notification for Screwdriver - Yahoo DPS Hack Day
A plugin that notifies your slack channel when your build passes or fails, based on your configuration
Technologies used: NodeJS
Automigration microservice - Yahoo DPS Hack Day
A microservice that auto-creates projects and converts old configuration file to the new configuration format
Technologies used: NodeJS, Github API
Geo-based Trivia Game - 24hr Hackathon Project
Created a geo-based trivia game with questions about the location that the airplane is passing
Technologies used: nodejs, Javascript, HTML, CSS
Travelr - 24hr Hackathon Project
Created a traveling app that suggests users where to go based on top tagged geo location on flickr.
Technologies used: Groovy, Grails, Flickr API, D3JS, Javascript
p4shelve with Jenkins - 24hr Hackathon Project
Used p4 shelve in Jenkins to tell whether the commit breaks the builds before pushing the code to production.
Technologies used: Perforce, Jenkins, bash
Education
University of California, San Diego (2014-2015)
M.S. Computer Science
GPA: 3.84/4.0
University of California, San Diego (2009-2013)
B.S. Computer Science
GPA: 3.7/4.0
Major GPA: 3.8/4.0
List of relevant courses taken
- Hypermedia and World Wide Web
- C/ C++ Programming
- Java Programming (CSE 8A/8B)
- Discrete Math (CSE 20)
- Math For Algorithms & Systems (CSE 21)
- Computer Organization and Systems Programming (CSE 30)
- Unix Lab (CSE 80)
- Advanced Data Structures and Object-Oriented Design (CSE 100)
- Design & Analysis Algorithms (CSE 101)
- Theory of Computability (CSE 105)
- Software Engineering (CSE 110)
- Programming Languages: Principles and Paradigms (CSE 130)
- Compiler Construction (CSE 131)
- Database System Principles (CSE 132A)
- Database System Application (CSE 132B)
- Server-side Web Applications (CSE 135)
- Introduction to Artificial Intelligence: Search and Reasoning (CSE 150)
- Intro to Computer Vision (CSE 152)
- Operating System (CSE 120)
- Computer Networks (CSE 123)
- Digital System Design (CSE 140/140L)
- Intro to Computer Architecture (CSE 141/141L)
- Human Computer Interaction (CSE 170)
- Android Programming (CSE 190)
- Advanced Algorithms (CSE 202)
- Operating Systems (CSE 221)
- Programming Languages (CSE 230)
- Principles of Database Systems (CSE 232A)
- Database System Implementation (CSE 232B)
- Computer Architecture (CSE 240A)
- Teaching Methods in Computer Science (CSE 599)
- Probability & Stats (MATH 183)
- Principle of Team Engineering (ENG 100A/100L)
- Venture Mechanics (ENG 201)
- Applied Innovation (ENG 203)
Organizations
- Electrical and Computer Engineering Honor Society (HKN)
- Tau Beta Pi
- UCSD Multi-Asian Association
- kunFusion Dance Team
- UCSD Badminton Club
- DansDemonz Dance team
- PHHS Badminton team
- Interact
- Redcross
- California Scholarship Federation
Honors & Awards
- Yahoo DPS Hack Day Winner (Q2 & Q3 2017)
- Cum Laude - Top 15% of graduating class (2013)
- Provosts Honors (2009-2013)
- Betty Tate Scholarship (2011)
- Outstanding Academic Excellence (2009)
- AP Scholar Award (2009)
- Individual Badminton Championships 2nd place (2009)
- First place Computer Science Competition District 6, Vietnam (2004)