Skip to content

ar-nelson/resume

Repository files navigation

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é at build/resume.pdf.

Adam R. Nelson

Technical Skills

  • Web

    • 10+ years professional experience
    • Modern HTML+CSS+JS
    • Full-stack (Node, Rails, AEM)
    • React, Angular, Typescript
  • JVM

    • 10+ years professional experience
    • Java, Scala, Groovy, Kotlin
    • Akka, Play framework
    • JVM bytecode hacking
  • Functional Programming

    • 8 years experience
    • Professional: Scala, functional JS via fp-ts
    • Academic: SML, HOL4, Haskell
    • Hobbyist: Haskell, Scheme, dozens of minor languages
    • Designed and implemented own functional languages
  • Linux Administration

    • 10+ years experience with Linux as primary OS
    • Shell scripting
    • Docker, Ansible
  • Misc

    • Test-driven development
    • Agile methods
    • Participant in open-source community

Professional Experience

  1. 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
  2. Maark

    Senior Web Engineer

    2020-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
  3. 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
  4. University of Massachusetts

    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
  5. 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

Education

  1. University of Massachusetts - 2014-2017

    Master of Science, Computer Science (Programming Languages)

  2. University of Washington - 2011-2014

    Bachelor of Science, Computer Science

  3. Bridgewater College - 2009-2011

    Dual major in Computer Science and Physics

Personal Projects

  • Project Kraken (2022)

    A server-client multiplayer game engine written from scratch in C and SDL. The game in question is a block-building platformer game, similar to Terraria. I built this game engine over the course of a few months on a sabbatical; it's still in progress, but simple multiplayer sessions already work.

    Ongoing project with no presence on GitHub yet; source available on request.

  • Schemepunk¹ (2020-2021)

    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³.

  • Tangled Scheme (2020-present)

    A new compiler and interpreter for the R7RS Scheme language, including a linter, debugger, and Language Server. Tangled prioritizes developer friendliness above all else, and prints detailed error messages in the style of Elm or Rust.

    Ongoing project with no presence on GitHub yet; source available on request.

  • Osmosis (2020-present)

    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.

  • Jaspr⁸ (2017)

    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.

Releases

No releases published

Packages

No packages published