Hey! I'm Jason, a 4th year (this Fall) undergraduate CS/STATS double major studying at UC Berkeley and a Software Engineer in the making. I'll be in graduating in Spring 2019!
In my free time, I work on a few personal projects such as a tool to predict NBA players's performance for Daily Fantasy Sports betting and a Google Docs Add-on to help educators and their students highlight Google Docs in the classroom. They're fun to work on, they help myself and others, and they've helped me grow a lot in terms of being a Software Engineer.
This summer (2018), I interned at Amazon (Lab126) as a Software Development Engineer intern. It was a great experience to work on the FireOS codebase and push code changes into production and onto customers' Fire tablets.
The previous summer (2017), I interned at WePay, a small fintech startup, where I developed tools to help WePay developers automatically generate fully object oriented SDKs for their APIs.
Beyond my personal projects and work experience, I study hard at school and work hard to grow.
And besides school and work, I play a little Pokemon GO on the side and some Starcraft II to sate my competitive side. (I play Protoss ☺)
At Amazon/Lab126, I worked on the FireOS codebase for the upcoming release cycle. Specifically, I worked on SystemUI, which deals with lockscreen, quick actions, wallpaper, and other tablet system related responsibilities, as well as utility apps such as the weather app or camera app.
I helped implement two features, "burst capture" for camera, which allows the user to take a burst of photos when long pressing the shutter button, and a confidential feature for a future release. In addition to these feature implementations, I worked on a variety of bug fixes to improve the customer experience and refactored code to tidy up the massive codebase.
In my 2017 summer, I interned as a Software Engineer Intern at WePay. During my time there, we developed an SDK generator to automatically generate customizable SDKs for the WePay API in multiple languages. By developing this tool, we saved WePay engineers time and resources since the SDKs for each language can be automatically updated upon an API version change instead of having an engineer painstakingly update each SDK. We also designed and structured the SDK to provide a user-friendly experience for WePay partners.
Beyond programming and developing, I had the great opportunity to work and talk with many engineers who have taught me a great deal about software engineering and industry. The process of agile, the thorough code reviews, and the endless discussions over small details and design decisions have all made me a stronger developer and engineer. I'm incredibly grateful to have been given the opportunity to work there.
For the past few years I've been working on this project (predicting NBA players' nightly performance). I've built a lot of tools to help automate tasks and make my workflow cleaner and more efficient. For example, a automatic data scraper and database storage which digests an easy to input data format and scrapes and stores all of the data from that endpoints into a database. Or a NBA DFS dashboard built using Django to help inform me of last minute news and to help me analyze and aggregate data.
Modeling players' performance with this data was a different beast. I did a lot of exploratory data analysis and trial and error to figure out which features were the most effective in predicting a player's performance. Then I tried out and ensembled many models (eventually stuck with XGBoost: gradient boosted trees) to predict their performance. And finally, I utilized the k-best Knapsack algorithm to optimize for the best lineups each night.
In my senior year of high school, I designed a Google Docs Add-on that allows users to highlight and organize their Google Docs. Initially, it was made for my History high school teacher and her students as a personal project for the Computer Science club but over the past few years it has amassed over 250,000 users across the world in classrooms. The add-on has been such a success due to the teachers and users who suggested features they wanted to see implemented and emailed me about their user experience.
Shoutout to Devin Hess (Director of Technology Education @ Berkeley) for his direct contributions, collaboration, and insights into what teachers want and need in the classroom.
During Spring 2017, a group of students and I tackled the problem of automating the process of recommending research grants to Berkeley faculty for the Berkeley Research Development Office. It was quite the difficult problem that put up lots roadblocks for us on the way such as the lack of data on previous matches (privacy/security concern), the generality of language of research grants, faculty members not updating their profiles, and so on. In the end, we were able to build a small web app using Flask to showcase our model and its predictions. Our model utilized a combination of TFIDF (term frequency inverse document frequency), simple dot products, and word nets such as GloVE and Word2Vec. I'm really glad I had a team to work on it with since I really enjoyed arguing and discussing solutions to those roadblocks that I mentioned.
In my first research assistant position, I analyzed and managed my professor's magazine circulation data. To help the data entry process into Google Spreadsheets, I wrote scripts in Google App Scripts to automate tasks such as moving images from folders and to validate data. To showcase the data, I built d3.js visualizations to show the change over time of and the geographic distribution of magazine sales. And finally to automate the data transfer process to a database without my professor having to worry too much about the technical side of things, I wrote a Python script to take data from Google Spreadsheets and transfer it directly to a MySQL database without having to download any csv files or such. I wanted to make it as easy as possible for my professor and his colleagues.
4.00 Technical GPA | 3.987 Overall GPA
Here's my DAG of courses I've taken and plan to take since looking at a list is boring.
Hover over a node to see the full course name.