Portfolio

Glamis Recovery

May 2021 – Present
I lead the development of a web app for a new vehicle recovery service in Glamis, CA. The company relies on the web app for managing customer accounts, purchases, and recovery requests.

Over the course of the project, I’ve scoped requirements, sketched UI layouts, designed frontend and backend systems, performed software testing, managed the JavaScript build system and built out our CI pipeline.

I got exposure to and integrated 3rd party APIs to satisfy the needs of the project: Google Firebase for web hosting, NoSQL database, and secure backend; Square Web Payments SDK for taking customer credit card payments; Google Maps; and Twilio’s SMS API for creating an alert system for our drivers.

I also serve as IT and Customer support for any and all technology issues within the company.

Check out the project at Glamis911.com

Graduate Projects at UC San Diego

Fault Tolerant Pub-Sub System using ZooKeeper

May 2021 – June 2021
For a distributed systems course, my team designed and built a fault-tolerant publish-subscriber system using a network of distributed server nodes on the AWS cloud. We utilized the primary copy model for data replication, Apache ZooKeeper to detect server leave/join events, and RPC for interprocess communication.
Read our report here: Python PubSub

My contributions: designing the primary copy model (based on Harp File System), integrating ZooKeeper using the Python Kazoo Client, establishing the external and internal APIs, and building the performance evaluation system.

Scrabble Word-Finding Algorithm

January 2021 – March 2021
For an algorithms course, my team and I developed an incredibly fast algorithm for performing an exhaustive search for the highest scoring word. At the core of our software is a backtracking algorithm that explores the potential tile placements. Our algorithm performs much better than brute-force search because of two breakthroughs: 1) the development of a special directed acyclic graph for exploring the dictionary of valid words and 2) the caching of data for repeated usage.

My contributions: designing the initial backtracking algorithm, communicating internal interfaces, building the infrastructure of the scrabble board, testing, and documentation.

Linux OS Benchmarking Software

January 2021 – March 2021
My team and I built a suite of functions that measure the performance of various aspects of any POSIX adherent operating system. The tests measure the performance of the CPU, scheduling of processes, system call overheads, main memory, network operations, and file system.

My contributions: building the interface for our benchmark suite and creating benchmarks for: process-creation, memory and network bandwidth, and file system contention.

Pomodoro Timer – Web App

October 2020 – Dec 2020
For a software engineering course, my team and I built a Pomodoro Timer web app using React. We went through the process of shaping the project, deciding on features, developing a pitch, designing UI mock ups, writing user requirements, setting up a simple continuous integration pipeline, building the application, and writing unit tests.

I honestly can’t sugar coat this one. This was a hell of a learning experience. These were the two biggest mistakes in the project:

  • Not fully understanding the technology and letting it derail true priorities.
  • Integrating components too late in the project, leading to poorly mismatched designs and unaccounted for test cases.
Parallel Computation Experiments

October 2020 – Dec 2020
For a parallel computation course, I had three projects that explored various facets of parallel and high performance computing. In the first, I improved the efficiency of the matrix multiplication algorithm by managing memory to efficiently utilize the L1 and L2 caches. I also incorporated SIMD vectorization to parallelize the number of multiplication operations we could perform. In the second project, I reimplemented the matrix multiplication algorithm using CUDA kernels. For the last project I reimplemented the matrix multiply using…just kidding…it was something different for this one! In the last project, we iteratively solved a differential equation on a large mesh using MPI to communicate between many processor cores on a server.

Flutter Cow – Android Mobile Game

March 2020 – June 2020
For a software engineering course focused on code modularity and maintainability, my team and I improved an existing android mobile game to make the internal design more maintainable and extendable. We applied software design principles: SRP, LSP, Information Hiding, etc. to improve code quality.

I worked extremely long hours the first few weeks of the course to understand the system and remove its worst design flaw. While other teams in the course struggled to make minute changes to the codebase each week because they had to “work around” the largest flaw, my team was able to make significant and meaningful improvements every week. I also provided weekly positive and constructive feedback for my teammates’ work in code reviews.

Personal Projects

Toastmasters Evaluation Feedback – Social Forum

June 2020 – September 2020
Between my first and second year at UCSD, I experimented with Python and Django to build my first web app, a social media site where members of Toastmasters International could submit evaluation feedback on fellow club members’ speeches.

I made fairly decent progress on the project, but fell into the “cowboy coding” trap and somewhere along the way I outran my headlights. I enjoyed Django’s data object model that abstracts away the database, but did feel constrained by toward the end.

Undergraduate Projects at UC Riverside

Obstacle Detection RC Car

February 2018 – Mar 2018
I strayed quite off the beaten path for a math major to get into this embedded systems course at UCR. The project-based course was one that CS majors dreaded, but I thought it was so cool to finally work with hardware.

I built a remote-control car using Atmega-1284 microcontrollers, nRF24L01 radio transceivers, DC motors, and joy stick. The car uses an ultrasonic sensor to detect obstacles and brake autonomously to avoid collisions.

Check out a quick demo: RC Car with Autonomous Breaking