Karen Gao

Creating the next

HomeProjectsResumeSkillsContact

Karen Gao

787.398.8296 | San Juan, PR 00918 | karengao@mit.edu | LinkedIn | Video Portfolio

Education

Massachusetts Institute of Technology | Cambridge, MA

Major: Computer Science and Engineering (4.8/5.0 GPA)

Expected: May 2022

Relevant coursework

Software Construction (Java), Design & Analysis of Algorithms, Computer System Engineering, Computation Structures (Assembly/Bluespec), Interconnected Embedded Systems (C++), Artificial Intelligence, Programming in Python, Math for Computer Science.

Honors and Distinction

3rd place MIT Battlecode Programming Competition (2020), Stamps Scholar Semifinalist Georgia Tech (2018), Rensselaer Medalist (2017), Gold Medalist Math Olympiad of Puerto Rico ( 2014 & 2015), Bronze Medalist South American Math Olympiad (2014).

Activities

WebLab (Web Dev) Competition 2021, Mens et Manus Hands-on Seminar (built underwater fish-bot using Arduino)., MIT Entrepreneurship & Leadership Pre-Orientation Program (DEAL) 2018

Languages: Fluent in English, Spanish, and Mandarin.

Computer Skills

Languages: Python, Java, C++, RISC-V Assembly, Bluespec, React, SQL, JavaScript, HTML/CSS, R, Swift, Node.js

Git, specs/testing, Apache Flume, regex, concurrency, HTTP/server, microcontrollers, accelerometer, Xcode, Arduino.

Projects and Work Experience

Software Engineer Intern at Google

Jun - Aug 2021

Built a streaming pipeline that processes real-time GCP access data to detect anomalies in the system such as newly changed policies blocking a user’s current access to a cloud project using Apache FlumeC++ and defining my own activity protocol buffers to write the pipeline’s resulting aggregated data to a data sink.

Built a batch-mode pipeline that processes sampled access logs to extract information like when’s the last time the user exercised a given permission on a given project successfully or unsuccessfuly.

Scrapbook: A Social Media Travel Photobook Web App in React and Node.js

Jan 2020

Designed the backend and UI for a travel app from scratch in 2 weeks that allows users to create posts with captions, photos, and optional stamp/background colors within each chapter/trip along with its location to be displayed on the map tab so that other users can see using react simple map libraries.

Implemented the backend user/page/chapter schemas and API calls for creating/deleting chapters and pages, updating user bio/profile pic in Node.js to the MongoDB database, and storing the uploaded images with an image id in the Google Cloud which can be retrieved later with GET requests for rendering.

Programmed the frontend for the scrapbook UI/UX (posts, chapters, comments, likes), map tooltip with hover feature for displaying chapters on the interactive map, profile update, and animated homepage.

Multiplayer Threadsafe Java Swing GUI Crossword Game

Nov - Dec 2020

Implemented a client and UI for a multiplayer crossword game on the server at port 4949 that allows for fill, erase, check, and concurrency using live update (watch method/callback functions) on the server.

Designed a client-server wire protocol in regex grammar, specs for the crossword ADT that stores game state, and multi-threaded tests for the server to handle concurrent requests like look, erase, get list of games, and watch, that returns the current board state along with the players in it once there’s been a change.

Quicksort RISC-V ALU Processor Hardware Optimization in Bluespec/Assembly

Nov - Dec 2020

Designed and optimized a 4-stage RISC-V processor in Bluespec that can handle ALU, branch, jump, and load/store instructions for quicksort code in Assembly under 50,000 ns by adding in a memory stage between execute and writeback to decrease CPI, along with bypass and annul logic from the later stages to decode.

Implemented a pipelined partition module, specialized instruction fetch and two way set associative data caches, and a 4-stage pipelined 8-bit sorter for the base case to further decrease CPI and clock time.

Interconnected Embedded Systems Project: Multiplayer Web Server Party Game

Apr - May 2020

Programmed a bluffing multiplayer party game supporting up to six players using Arduino/C++ connected to a shared web server where each submits bluffs and votes for their favorite bluff on their local ESP32 using a button-tilt mechanism, LCD Screen, and Gyroscope/IMU.

Coded in SQL/Python to communicate to our website via a database and tested it using Git, Postman API, and SSH/SCP server files transferring.

Data Mining & Biostatistics Researcher at Big Data Summer Institute at UM-Ann Arbor

Jun - Jul 2019

Used mixed-effects models and machine learning classifications (e.g. RF, SVM, NB) to determine whether certain cancer drugs are effective in treating their corresponding cell line through observing IC50 values.