You're telling me I can write whatever I want here? Like, anything? Wow. All this power is kind of humbling. Maybe I should step away from the keyboard.
Hey there, I'm Kevin, a software engineer from Oakland. This page contains information about stuff that I'm doing currently and/or have done in the past.
News:
- Got married, got a house, aaand... got laid off? All in the same six months. That's an eventful half-year!
- Wow, this pandemic is still going, huh.
- Finally updating my website for the first time in ages, check it out:
- Migrated from the Harvey Mudd CS department server to Vercel
- Re-implemented the entire original interface in React over the course of ~2 days (the main webpage still supports noscript though!)
- Added a dark theme option
- Ported some of my ancient, broken Python 2 CGI scripts into new, functioning JavaScript so they can also work in a serverless environment
- Updated the info on here too, obviously
- Did my best to make the interactive elements WAI-ARIA compliant. If you notice any defficiencies, please let me know!
- Making plans to go camping with some friends this July. It'll be the first time in a while!
- I'm a little past 70% in Breath of the Wild now, and second-guessing my choice to go to 100%.
- I don't have music recs from this year yet, but listen to Daisuke Tanabe's Cat Steps. Being a few years old doesn't mean it's gotten less good!
Hello, the name's Kevin McSwiggen! My pronouns are they/them. I'm a computer scientist, software engineer, and web developer—three closely-related but distinct hats. I graduated from Harvey Mudd College in Spring 2016 and since then have been living in the Bay Area with my partner (now spouse!)
I like doing code-y stuff of pretty much any kind. (No really, almost anything.) It's way more satisfying when I can do it with like-minded cool people, though. If that might be you, hit me up!
I'm conversant in Spanish, and speak a little bit of German, although I should really find more excuses to practice.
My hobbies include headphones, comics, food, fiction (SFF), film, and philosophy.
- The headphone collection is now more than a dozen items (I ended up with a duplicate or two, for what it's worth.) I should really put some of these suckers on Audiogon/craigslist/eBay or SOMETHING, but if you want a demo...
- Toward the start of the pandemic I got in on the Kickstarter for the comic O Human Star so now I've got a sweet three-volume physical copy!
- Some favorite authors: Margaret Atwood, Jorge Luis Borges, William Gibson, Charles Stross. I finally read Jeff VanderMeer's Annihilation after several years (and after watching the movie—if you're gonna do both, do it in that order, simply because the book is better and I doubt they'll make films for the rest of the trilogy. :P) I might pick up The Long Way to a Small Angry Planet next, cus my friends keep mentioning it.
- Although, before getting to that, I've also picked up some NON-fiction: David Graeber's Debt: The First 5000 Years. I really can't recommend it highly enough, it's a perspective-shifter. Accepting recommendations for other political anthropology/philosophy or philosophy of mind, or anything that goes as hard as GEB.
- I make art sometimes! Not very much of it is online (and if you do manage to find some online, it won't be from this decade) but I might be changing that at some point soonish. A little bit of it is featured on this tab, anyway.
- Recently watched Sion Sono's 2013 Why Don't You Play in Hell and am once again convinced that he is basically incapable of making a dud, no matter how insane it may be.
You can contact me at kevin(at)mcswiggen(dot)dev
if you aren't a robot. (If you are a robot, I probably can't stop you from contacting me, but my replies will not be as prompt. Sorry.)
Main Kevin McSwiggen, professionally
Quick-learning and detail-oriented full stack engineer, with 5+ years experience solving tough problems and building beautiful designs
Overview
Programming Languages: writing almost every single day in (S)CSS, HTML, JavaScript, Python, React (JSX); experienced in C++, C♯, Haskell, Java; familiar working with Bash, Objective-C, Prolog, Racket, x86 assembly
Software/Platforms: Windows, OSX, Linux (Ubuntu/Gentoo); Visual Studio, Xcode; Office Suite; LaTeX; Adobe Photoshop, Illustrator, Flash (no, really!); GIMP; Git, SVN; Google Cloud Platform (App Engine, BigQuery, Datastore, Tasks), Amazon Web Services; Apache, Nginx
Skills: cross-functional, agile development; functional programming (FP); object-oriented programming (OOP); complex data structure implementation; writing and refactoring code for performance; debugging at source and assembly level; software design at both architecture and algorithm level; web accessibility and responsive web design; task estimation
Professional Experience
Digital storefront & games publisher focused on offering affordable Indie & AAA titles, a monthly games subscription, & pay-what-you-want bundles, all while supporting charity
- Developed and maintained e-commerce application built on Google AppEngine, using Python, Node, Webpack, Backbone/Marionette.js
- Winner of J2 Global's 2019 Achievement Award for Collaboration for the launch of Humble Choice, a games subscription serving ~400k+ customers monthly
- Collaborated across departments to plan and execute two major overhauls of Humble's highest-revenue product, redesigning the front-end and building new functionality while maintaining backwards compatibility for grandfathered plans
- Worked with internal and external stakeholders (including Product, Design, and QA) on a tight timetable, to deliver a product that matched the company vision with minimal bugs on delivery and provide thorough post-launch support
- Maintained and continually iterated on subscription checkout flow UX through A/B testing
- Led internationalization (i18n) of currency handling, expanding support from just USD on bundles and subscription and USD/EUR/GBP on the storefront, to fully localized pricing in 10 different currencies across all product verticals
- Worked across teams to internationalize our backend datastore properties in support of the company's global market expansion initiative
- Led initiative to rotate and migrate all security keys out of the codebase, eliminating a major single point of failure for site security
- Built a library to cleanly wrap Google's Discovery API and Secret Manager service, to facilitate quick storage/rotation of keys
- Designed and implemented a newsletter generator for bundles, reducing toil for the Marketing department and enabling prompt QA
- Integrating with the Cordial platform and Slack, to automatically create and schedule regular newsletters, then alert appropriate channels for QA ahead of launch
- Refactored and greatly expanded coupon services to include single- and multi-use promo codes, recurring discounts, and tooling for internal business users to support coupon creation, allowing Marketing to easily run new types of promotions
- Delivered and encouraged high-quality, architecturally sound code
- Researched and drafted numerous Technical Design Documents to determine and communicate technical requirements for complex initiatives, participated regularly in both sides of code review, and completed quarterly on-call rotation to triage and troubleshoot critical issues throughout the site code
My alma mater, premier technical institute of the Claremont Consortium, providing an unrivaled engineering education within a liberal arts context
- As part of HMC's Clinic program, worked in a four-person team reporting directly to Zendesk stakeholders and producing written project reports
- Researched and implemented an embedded DSL built in JavaScript for processing customer support tickets, expanding on existing interface's capabilities while allowing more concise business logic
- Implemented type-checking and error-handling code for ticket field changes with thorough automated testing suite
- Graded assignments and helped students with labs and homework for HMC's Programming Languages course, helping them toward a deeper understanding of the theory and practice of talking to computers
- Helped maintain the Harvey Mudd CS department servers and perform setup for the coming academic year
Datasource-backed multiformat document automation framework
- Independently designed and implemented an authentication system for a C♯ web app built on the .NET Framework
- Created a user account system and login portal using JavaScript and Razor templates to demonstrate integration of the system with an OEM website
Community support, data coordination & disaster response technologies
- Analyzed and designed visualizations for data from career learning programs at California high schools, to help improve employment outcomes for the public school system
Education
Concentration in Philosophy
Major GPA: 3.4; Dean's List Fall 2014, Fall 2015
Relevant Coursework
Computer Science Clinic; Algorithms; Software Development (Objective-C); High-Performance Computing (C++); Computer Networks; Programming Practicum; Artificial Intelligence (Python); Programming Languages (Haskell); Computer Systems (C); Data Structures & Program Development (C++); Computability and Logic; Image Processing Lab (Python)
Academic Programming Experiences
Worked in a 4-person team to design and implement an educational game for iOS; implemented reinforcement learning algorithms to teach a simulated robot agent how to move with one limb; made a proxy in C that injects “Never Gonna Give You Up” into webpages; re-implementation of unix spell
which runs using either custom linear-probing hashset or AVL tree implementations
Main Personal and Academic Projects
The purpose of this tab is to highlight projects that are either currently available online, OR that I have plans to make available... "eventually." So, more things will become visible here overtime. You can take a look at my GitHub page, but it's a little more sparse than I'd like—a lot of the repos I've worked on happen to be private. I'm working on it, though. Until then, you can check out...
Personal Projects
Student Projects
- Fraction Blaster — an iPad game for elementary school students in spaaace! Developed by Louis Brann, Kevin Choi, Alejandro Mendoza, and of course myself.
Now available for free on the App Store! Formerly available on the App Store, I think it got taken down whenever the Apple Developer Program account expired. (HMC paid the original $99/year for it, I'm not interested!) - A sudoku app — made for CS121 (Software Development). Includes an auto-solve function just cus that seemed fun, and a decent number of pre-generated puzzles at two levels of difficulty for a little replay value. NOT available on the App Store though ;-)
- The C proxy that will never let you down — a project for CS105 that injects Rick Astley's “Never Gonna Give You Up” into every page you load... because we're bad people. Developed by me and Chris Brown. (Link forthcoming)
- Segmented prime sieve implementation in C++ and analysis of its memory performance (Needs to be made web-friendly, but I'm like 95% sure I still have all the source code and LaTeX writeup kicking around somewhere in my backups)
- ...More and even older things that I'll add here eventually
Scraps
...that are already online:
- video-note — An HTML5 canvas app for making and saving ink annotations on videos! Was under development as a student, but stalled when I realized there were some bugs with the interval-tree library I was using. I'll get back to it sometime if I ever have a chance to figure out what's causing them and write a PR... or if I just end up making my own itree implementation.
- topoapp.html — A brief foray into geographic visualization with d3 and TopoJSON. Fair warning: REALLY ugly and janky. Still, the research/data processing parts of it were kinda interesting. (Just not quite enough for it to have ever graduated out of the Scraps section.)
- asciiseal.txt — Text Mode Improper Use
... that are coming soon to a screen near you:
Numerous small JavaScript utilities (useful stuff) and dealies (fun stuff; technical term).
- Markov (de)generator nonsense
- Puzzle-solving helpers
- JSON visualizer, because sometimes it's cathartic to reinvent the wheel
- Probably other stuff?
Main About This Webpage
Originally done entirely in vanilla JavaScript, and with the frontend code almost entirely inside a single gigantic IIFE, this site is now implemented chiefly in React and built using webpack, and the full source is available on GitHub.
This webpage started out as a demo project page for Harvey Mudd's intro CS class. They are (were?) starting to integrate web technologies into the course as an extra credit project, and Prof. Dodds thought it would be really cool if students had individual portals they could update as they go along to show off the things they made throughout the course while learning about a web stack at the same time. So one summer while I was on Student CS Staff, I took a couple weeks to take a crack at a prototype (after brushing up on my semantic HTML)!
Initially it was hosted for a brief time on Amazon Web Services, and then for several years after that on the Harvey Mudd CS department server, under my student webspace. I'll probably just make that redirect to this page at some point, I dunno... but for now you can see a version of this site that's more than a half decade old! Don't judge it too harshly, my standards have improved since I was a student.
The couple of Python CGI scripts it had, which were originally placeholders to be replaced by CS5 students' own work, have mostly already been ported into JavaScript (since it's a bit easier to host and zero effort to configure) and expanded on, and will continue to appear on the Projects tab as they're completed—maybe even as separate git subtrees! ... Eventually.
Main