This Markdown file is my résumé. It's generated by a Node script, using HTML+CSS and Puppeteer to print a web page as a PDF.
npm run build
will generate the actual résumé atbuild/resume.pdf
.
I am a full-stack developer with 15 years of professional experience. My experience is primarily in Java, Scala, HTML/CSS, Typescript, Node, and React, though I have used dozens of other languages and technologies in professional, academic, and hobbyist projects. I love learning new languages and platforms, and I adapt to unfamiliar systems quickly.
Languages | Frameworks | Systems and Tools | Misc |
---|---|---|---|
Java | React | Linux | Test-driven development |
Scala | Angular | FreeBSD | Agile methods |
JS/Typescript | Node | Docker | Team lead experience |
HTML/CSS/SASS | Deno | PostgreSQL | Architecture and API design |
Ruby | Play/Akka | MongoDB | Language and compiler design |
Python | Spring | LMDB | JVM bytecode hacking |
C/C++ | Webpack | OpenAI | Open-source contributions |
Haskell | Express | Adobe Experience Manager | |
Scheme | Rails | Mastodon/ActivityPub (RDF) | |
SML/HOL4 | GraphQL |
Employer | Title | Date | Description |
---|---|---|---|
Chatmeter | Engineer III | 2022-2024 | • Wrote features and fixed bugs on a large monolithic Scala web application with a React frontend • My team delivered several new AI features, including large-scale review summarization (with an algorithm I developed), AI review responses, and question-and-answer over a database of reviews |
Simspace | Senior Software Engineer | 2021 | • Worked on a massive React SPA for a cybersecurity training application Wrote Typescript in a purely-functional style, using fp-ts to bring Haskell features, like monads, into Typescript |
Maark | Senior Web Engineer | 2019-2021 | • Worked with a team to build a shared library of vanilla JS and React components, Sass stylesheets, and Webpack configurations used across all sites and projects for a single client • Developed React single-page applications with a GraphQL API backend Some full-stack development, including writing Java Spring code for an Adobe Experience Manager backend |
Cigna | Software Developer | 2018-2019 | • As Tech Lead of a small team of four developers, played a major role in planning and developing an Angular 6 single-page application from scratch and integrating with a complex network of legacy data services |
UMass | Graduate Research Assistant | 2014-2017 | • Modeled the specification of the Mu Micro Virtual Machine, a cross-platform compile target for new programming languages similar to the JVM, in a logic programming system to prove its correctness • Traveled to Canberra, Australia to learn logic programming in person from the maintainer of the open-source HOL4 theorem prover |
Edifecs | Associate Software Engineer | 2012-2016 | • Modernized a Java/Groovy codebase by rewriting it in Scala and replacing a homebrew messaging library with Akka • Designed a test suite for a complex networked application involving coordinating and messaging among multiple JVM processes • Wrote and remotely maintained an ExtJS single-page web application as the UI for an intranet system used throughout the company |
-
University of Massachusetts (2014-2017)
Master of Science, Computer Science (Programming Languages)
-
University of Washington (2011-2014)
Bachelor of Science, Computer Science
-
Bridgewater College (2009-2011)
Dual major in Computer Science and Physics
Tapir (2023-present) · https://github.com/ar-nelson/tapir
A Mastodon-compatible single-user federated social microblogging server, written in Typescript for Deno. Implements ActivityPub and the Mastodon API. Due to Deno's limitations, I wrote my own database layer and dependency injection library. A rewrite in Java is in progress.
Ludwig (2023-present) · https://github.com/ar-nelson/ludwig
A Reddit-style forum server, written in C++ with LMDB and HTMX. Compatible with Lemmy, and implements the Lemmy API.
Schemepunk (2020-2021) · https://github.com/ar-nelson/schemepunk
A portable standard library for R7RS Scheme. It is compatible with 7 Scheme dialects, and implements or polyfills 27 modules, including data structures, console pretty-printing, and a Datalog engine.
While building this library, I participated in the SRFI mailing lists, a standardization process for Scheme libraries that has been ongoing since the 90s. I have authored two standards documents: SRFI 197¹ and SRFI 214².
Osmosis (2020-2021) · https://github.com/ar-nelson/osmosis-js
A peer-to-peer data synchronization library for native apps. Keeps mobile and desktop copies of an app in sync whenever they connect to the same network. Uses encryption and a custom JSON CRDT. A prototype is currently written in Node.js, but I plan to rewrite it in C.
While developing this library, I published several sublibraries³⁴⁵ as small standalone Node packages.
- ³ https://github.com/ar-nelson/broadcast-interfaces
- ⁴ https://github.com/ar-nelson/monocypher-wasm
- ⁵ https://github.com/ar-nelson/spartan-schema
Jaspr (2017) · https://github.com/ar-nelson/jaspr
A new programming language implemented on top of Node.js. A Clojure-esque Lisp with immutable JSON as its core data structure. Designed with an async-by-default approach to concurrency.