About me
Hi, I'm a Computer Science student at UC Irvine extremely interested in developing web apps and learning new technologies in order to build unique projects. I've had a variety of experiences building software outside of school, from my Software Engineering internship at Amazon to my Full Stack Developer position at Commit the Change.
I'm currently looking for a Spring and Summer 2022 Software Engineering Internship to get more hands-on industry experience and apply my technical knowledge.
Skills
Languages
Python
JavaScript
TypeScript
Java
Kotlin
C++/C
Frontend
React
Redux
Angular
HTML/CSS
Figma
Backend
Node.js
Express.js
Flask
GraphQL
RESTful
Databases
SQL
MySQL
PostgreSQL
MongoDB
Spark
Cassandra
Concepts
Data Structures
Algorithms
Object-Oriented
Version Control
Agile
CI/CD
Experience
Amazon
Software Engineer Intern
June 2021 - September 2021- Implemented Python module for translating security threat detection rules in Sigma, a generic SIEM format, to the schema used in AWS OpenSearch, (forked from Elasticsearch), allowing users to allocate such rules across different OpenSearch clusters.
- Built 2 new REST APIs for OpenSearch Alerting Plugin using Kotlin and Java to allow bulk transfer of threat detection rules to and from OpenSearch clusters.
- Researched Sigma and OpenSearch architecture to design and propose detailed solution to over 150 engineers.
Commit the Change UCI
Full Stack Developer
October 2020 - June 2021- Developed user dashboard using React to securely document internal data for Waymakers nonprofit organization, which saved over 7 hours per week of manual inventory management and volunteer scheduling.
- Architected REST API using Node.js and stored inventory images in AWS S3 buckets to help scale.
- Collaborated with Waymaker's representatives to design PostgreSQL schema and deployed database on Heroku.
MathWorks
Software Engineer Intern
January 2021 - March 2021- Developed JavaScript API that manages settings for MATLAB web client, affecting 4 million MATLAB users in 2021b update.
- Wrote unit and end-to-end tests for API using QUnit with 91% code coverage.
- Increased code coverage by 15% in MATLAB desktop client by adding more robust test cases to Java integration tests .
Formosi
Software Engineer Intern
September 2020 - November 2020- Developed a full stack web app to display and organize videos uploaded by wellness professionals, supporting 20+ types of professionals, 400+ videos, and 2,000+ users.
- Built REST API using Node.js and Express.js to fetch video data from YouTube API and store in MongoDB.
- Worked closely with designers to create high-fidelity Figma designs and develop user-friendly pages in React.
Projects
FitLinks
React, Chakra, Express.js, Fuse.js, MongoDBDuring LaHacks 2022, I collaborated with a team of 4 to build a social fitness app to help professionals make new personal connections through working out. Our main offering is a Tinder-style system where users can search for matches with preferences including age, preferred activity level, company, and professional title. Based on their preferences, our backend will match them with other users using fuzzy searching on data from the People Data Labs API. I worked on the full stack. For the backend, I helped set up several Express.js user endpoints to interface our MongoDB and the People Data Labs API. For the frontend, I built the React-based Sign Up and Sign In pages using Chakra, along with React Hook Forms + Yup for form validation.
Jazz Hands
Angular, TypeScript, Express.js, Handtrack.jsDuring User Interaction Software class, I worked with a partner to develop an app that centralizes Spotify search results and displays them in a relevant and intuitive way. We improved the accessibility by implementing a hand tracking component that used gestures to navigate and interact with the web app. We wrote the frontend for Jazz Hands using Angular and TypeScript in combination with stylings from Bootstrap. The backend was built using Node.js and Express.js to set up endpoints that would call the Spotify API. The hand tracking component, along with the custom gestures, was implemented using the Handtrack.js library.
Search Engine
Python, Cython, Flask, HTML, CSSIn my Information Retrieval class, I created a search engine from scratch using Python with a team of 4. Using a corpus of over 55,000 web pages, we built a fully-functioning search engine that returns results in less than 300ms. There are two main steps to our search engine: indexing and searching. Indexing is run as a preprocessing step which basically creates a lookup table that stores all of the unique tokens (words) found in the corpus, along with which page they were found on and a weight associated with how important/relevant each word was to the page. The main event is, of course, the searching, which is exactly what it sounds like! Just simply type your query in the search bar, and it will scour our index on all 55,000 pages to deliver you the best results.
Botcom
Python, Raspberry Pi, Twilio APIDuring HackUCI 2020, I collaborated with a team of 4 to build and develop code for a Raspberry Pi based rover. We programmed Botcom to move forwards, backwards, and make 360 degree turns. I personally integrated Twilio's texting API to text Botcom movement commands, which ended up being an interesting application. Rather than using Twilio's API as a communication function, we wanted to use it as our rover's remote. Our team was recognized as being in the top 3 for best use of Twilio API.
Friendly Faces
React, Express.js, PostgreSQL, Clarifai APIAt the end of the Udemy Web Development course, I gathered two other Computer Science students and led them to build my first full stack web app. Friendly Faces utilizes the Clarifai API to detect faces in photos that registered users upload. This was by far my favorite project because it was a culmination of the 40+ hours I spent taking the course. In order to delegate tasks to my team members, I had to learn every aspect of the project, which further solidified my understanding of how front end frameworks interact with the back end server and database.
@HelloWorld
Python, Twitter APII created a Twitter bot that replies to any user who tags my developer account (@Preston91272477), but only if they used the hashtag #HelloWorld (not case sensitive) in their tweet. I'm running the bot at Python Anywhere , and it checks every 15 seconds for any new tweets. In order to obtain this data, I utilized the Twitter API to parse my user JSON data and determine which tweets to reply to.
Stock Strategies
Python, IEX Stock APIMy program analyzed stock data based on a given set of investment strategies and generated a corresponding chart that indicated buy or sell signals. Stock Strategies made it convenient to extract the most relevant stock information as fast as other popular stock websites, but without needing to make an account. I utilized the IEX Stock API in order to retrieve both real-time and historical stock data about the selected company.
Text Editor
C++I developed a text editor that supported commands including but not limited to New Line, Backspace, Undo, and Cursor End. The text editor is fluid and easy to use, and functions exactly as expected of a basic text editor. A rewarding, yet daunting challenge for this project was to maintain all my pointers and memory allocation to ensure zero memory leaks.
Blackjack
PythonI built a fully functional text-based version of Blackjack that supports any number of players. I researched and implemented the most common rules, mostly according to this website . I designed UML class diagrams to plan out all of the necessary classes and methods. The diagrams also helped to create robust, scalable code that is flexible with different sets of payouts and rules.
Robofriends
ReactRobofriends is a responsive web app that displays a set of users with their unique robot profile picture and email. With the search bar, users can filter out any profile in real time. Currently, I'm taking a Full Stack Web Devlopement course on Udemy. Following the tutorial and combining my foundational knowledge of HTML, CSS, and JavaScript, I built my first project in React. In the future, I plan to allow for more users and store them using PostgreSQL in order to incorporate a back-end to the project.
Background Generator
HTML, CSS, JavaScriptThis responsive front end web app generates linear gradients that users can copy and use for their backgrounds. Users can choose any two combinations of colors from the two inputs, or click the button to randomly generate a new gradient. I leveraged JavaScript to display the exact values of the linear gradient in real time so users can copy their favorite combinations. This was the first project I did that combined the three most fundamental front end technologies and that utilized JavaScript for DOM manipulation.
Columns
PythonI recreated the 1980 Sega Genesis game Columns using Pygame. The gameplay for the original game can be found here . This was one of the first projects that I did with Python where I needed to create many abstracted, interrelated classes and methods. Initially, I created a working text-based version, where I had to meticulously plan out each function to scale well for the Pygame version.
Education
University of California, Irvine
- Expected Grad: December 2022
- B.S. in Computer Science
- GPA: 3.86
- Transcript
Relevant Coursework:
- Data Structures and Algorithms
- Database Management
- Information Retrieval
- Operating Systems
- User Interaction Software
- Human Computer Interaction