My name is Yonathan. I’m a computer science student at the University of Virginia pursuing a Bachelor’s of Science degree. I’m particularly interested in the application of theoretical computer science, including complexity theory, compression, cryptography, programming languages and type theory. My current research is at the intersection of these fields: compression-aware algorithms that work in a multi-party computation environment. See my resume for more details.

Projects

Repair Compression

An implementation of the Repair algorithm for graph compression. Includes experimental results on synthetic graphs, and achieves up to 70% compression ratio. A detailed project documentation can be found here.

Bazaar

This web app is a semester long, 3 person, class project for CS 4500 - Internet Scale Applications. We developed an e-commerce web application using Django (backend) and Vue (frontend). The stack also includes: Spark (Map-Reduce for search indexing other time consuming tasks), MySQL (persistent storage), Kafka (Message broker for services), Elastic Search (search functionality), Redis (cache), TravisCI (CI/CD), Digital Ocean (deployment), HAProxy (load balancing), Selenium (end-to-end testing), and JMeter (Performance testing).

Maximus

A study of microservice architectures for a web application where services are implemented using different languages. Languages and frameworks used include JSP/Servlet, PHP, and Django. Technologies used include Docker/Docker Swarm, Redis, PostgreSQL, and RabbitMQ.

Education

I went to William Smith High School in Aurora, CO. I concurrently attended the Community College of Aurora starting from sophomore year until senior year of high school. Additionally, I attended Pickens Tech and studied mobile app development in my junior year. I received both my Associate’s Degree in Science and High School Diploma in May 2016. I’m currently pursuing a Bachelor’s of Science degree in Computer Science, expected to graduate in May 2020. I plan to continue my study through a Ph.D. program after finishing undergrad.

Some of my favorite courses so far include, Algorithms, Theory of Computation, Data and Program Representation, Operating Systems, Compilers, Program Analysis, and Software Testin.

Work Experience

I interned at the University of Colorado School of Medicine as a Software Developer (2015-17) where I worked with researchers to quickly validate product concepts through prototypes and user testing. Then, I worked at Impellia (2016-17) as a Software Developer and Consultant, helping the startup implement multiple projects that leverage algorithms designed and licenced by various universities. I interned at Microsoft Intune(Summer 2018) as a Software Engineer, where I designed and implemented various testing infrastructures and tools. In previous semesters, I have worked as a teaching assistant for CS 4102 (Algorithms) in the CS department, CS 3240 (Advanced Software Development), and CS 4640 (Programming Languages for Web Applications). I was a part of the 2019 REU program at UC Berkeley in the NetSys lab under Professor Scott Shenker and Anwar Hithnawi where I worked on private summarization of streaming data. My work explored cryptographic techniques that can enable streaming algorithms to process data in a privacy preserving manner.

Currently, I am a teaching assistant for CS 4414 (Operating Systems). My responsibilities include holding office hours to help students with homeworks, general questions, grading exams and homeworks, and leading labs. I’m fortunate to have these positions where I can both learn from others and help others learn.

My current research is focused on the application of compression and, more specifically compression-aware algorithms, in multi-party computation (MPC). The ability to process compressed input in MPC systems can enable significant improvement in the cost of communication, which often characterizes the performance of these systems.