Recurse Center, Sabbatical — February 2020 - Ongoing
● Studied distributed systems, Golang, and concurrency at self-directed programming sabbatical.
● Implemented a distributed file system, consensus module, and membership system, while also blogging about their mechanics and the process of implementing them.
● Created blog and self-updating web gallery (chronicpizza.net, knoppers.icu) to host writing and photography.
● Presented project progress and interesting findings to peers at weekly talks. Granular, Software Engineer — June 2018 - December 2019
● Separated legacy Python2.7 codebase into Python3.7 microservices, allowing teams to work on individual dockerized services without building a monolithic codebase, saving many hours of wasted developer time.
● Coordinated with designer to create a Google-maps style landing page, replacing the functionality of several legacy pages and streamlining user experience.
● Reused or built Python/Flask APIs and React components and their accompanying unit tests.
● Wrote and explained SQL queries to product managers to quantify user behaviors and prioritize new feature development.
Department of Defense, Software Engineer Intern — March 2017 - January 2018
● Converted storm modeling codebase from Excel VBA to C# and reduced runtime by 93%.
● Redesigned SQL schema to implement web caching for C#-Silverlight application.
● Created Python scripts for trend analysis of arbitrarily large time-series datasets. PROJECTS
Distributed File System – github.com/slin63/chord-dfs – [ golang, docker ] Takes and distributes files from clients evenly across an arbitrary number of servers.
● Files are replicated to multiple servers to maintain file availability even when some servers fail.
● Servers track state through replicated logs and can restore their state in the event of a failure.
● Servers emulated locally with Docker containers and Docker-Compose. Raft Consensus Module – github.com/slin63/raft-consensus – [ golang, docker ] Raft network where a leader server replicates changes to an ordered log across multiple servers.
● Servers rapidly elect new leader in the event of a failure and forward clients to the new leader.
● New servers can join the network at any time and begin receiving log updates.
● Generic state application API allows the consensus module to be used with any replicated-log state machine. Self Updating Photography Site – github.com/slin63/knoppers-icu – knoppers.icu – [AWS S3/EC2/Lambda, python ] Fast, responsive static web gallery whose pages are generated from files inside an S3 bucket.
● S3 bucket upload events create SQS messages which are consumed by an image processing Lambda function.
● Cronjob on EC2 instance runs Python script to generate and deploy pages to another S3 bucket. SKILLS
UIUC Outdoor Adventure Club, Trip Organizer – January 2014 - present
● Organized 2 to 10 day long outdoors trips with up to 80+ people to locations all across the US.
● Taught backpacking skills and Leave No Trace practices to beginner campers. Python Tutor – December 2018 - January 2020
● Explained programming concepts to students aged elementary to post-college.
● Guided students through choosing and building projects suitable for their skill level.