who i am

i'm richard li, a master's graduate from purdue university for computer science

i have a bachelor's (also from purdue) in computer science and mathematics

i'm a 3-time icpc world finalist, and i'm most proficient in python and c++

i'm primarily interested in theory and algorithms, formal methods, compilers, and graphics, and i have a working background of many more subfields

i find meaning in the intersection between computer science and art—let's make beautiful things together!

"never stop learning. there's always a form you don't know."

"we are at all times adrift in a sea of learning — new knowledge should be welcomed with open arms."

icpc world finals at luxor

I came in with high hopes for my third and final World Finals. Our team had trained hard for this moment, and we knew we were strong. Unfortunately, our expectations weren't met, and in the end, the elusive medal would be forever out of reach.
With the closing of the 2024 World Finals also came the closing of my competitive programming career. Despite the bittersweet ending, I know I'll look back at my journey fondly: the knowledge I gained, the friends I made, and the places I went are all unforgettable. There's no time to regret—the only thing one can do is to take those learnings and apply them to future endeavors.

2024

master's thesis

My thesis was (very broadly) about improving on some existing graph algorithms—more details can be found in the projects section. There's a lot of stories I can tell here, but I want to condense my journey into three main takeaways. First, take your time. Nothing sound ever comes out of rushed work, and I progressed much faster when I started meticulously writing proofs out. Second, don't be afraid to ask for help. Having weekly discussions with my advisor let me come up with important insights even when I thought I didn't need it. And finally, a little bit of faith can go a long way. You'll make it in the end, even if the road ahead is unclear.

graduate ta for grad algorithms

I'm most in my element when it comes to anything algorithms, so when I got the chance to TA for our graduate algorithms course, I jumped at the opportunity. We only had two TAs this semester for a class size of around seventy students, but I took initiative and handled much of the student-to-staff communication, test administration, and overall course organization. My advisor, Kent, is one of the best lecturers I've had the chance to work with, and my own communication skills improved in leaps and bounds this semester.

2023

icpc world finals at dhaka

We ended up 20th, only a few problems short of a medal.

graduate ta for programming i

CS 180 is the first course that incoming computer science students take at Purdue, so I felt a peculiar responsibility fall on me when I accepted this role. The structured curriculum and fast pace made it hard for me to influence the content at a high level, but I made it my top priority to be a great role model wherever I could. I helped explore students' interests further in my lab sessions, and tried drilling in the fundamentals during my office hours, rather than focusing on rote memorization. Thinking back to my time as a freshman, having great TA's definitely helped my transition to college, and I did my best to repay the favor, no matter how small the impact might be.

sde intern at amazon (again)

I returned to Amazon EKS this summer, developing a crucial testing framework for an authentication webhook. The coolest thing about my project was that it was open source, which meant I had to adapt to a wholly new environment to deploy my code. During my time here, I gained a significant amount of experience in Kubernetes cluster management and internal systems, and in the process became a Kubernetes contributor! I'm grateful for the opportunity to be a part of this huge ecosystem.

started master's in cs at purdue

2022

icpc world finals at moscow

I participated in the 44th ICPC World Finals, held in Moscow. During this time, I got to meet and collaborate with some of the most skilled competitive programmers in the world. Irregardless of background or skill level, we all shared a love of problem solving, and that brought us together. It was a wonderful experience, and I'm proud that I was able to participate at the highest level of competition in the field.

sde intern at amazon

Most people feel like they have impostor syndrome, but I feel that it's always beneficial to be completely confident in yourself, and trust that you can solve any challenge in front of you. At my first ever internship, I excelled in the role, designing, building, and presenting a much-needed developer tool within 11 weeks. I learned quite a bit about AWS and infrastructure-as-code, and became much more comfortable working with a team and collaborating on projects. I'm glad that I was able to make an impact in the short time that I was there.

president of purdue competitive programmers union
webmaster for b01lers ctf

The biggest perk of being a leader is that people will listen to what you're passionate about. I revived the old competitive programming club to promote interest in the sport, holding practices and lectures on a regular basis. I also continued participating in ctfs and assisting the club in its operations. While taking on these roles was defintely a lot of work, I am invested in making an impact in the subjects I love.

2021

lead ta for competitive programming
lab ta for differential equations

Being on the opposite side of the lecture hall helped me broaden my perspectives. From a semester and a summer of teaching my own class, I learned much about the importance of communicating ideas clearly and being open to new technologies. Afterwards, I continued on in a more managerial role, getting to see just how much work is put into running a class smoothly. I'm proud that I've able to use my skills to guide this course along for multiple years.

2020

started bachelor's in cs and math at purdue

2019

what i know

python
java
c++
c
go
typescript
kotlin
opengl
unity
kubernetes
sql
mongodb