Senior Software Developer

Christopher Armstrong

This is my Resume.

Projects & Things

Arpeggio RPG
the virtual tabletop role-playing game

Arpeggio is a digital "tabletop" role-playing game, implemented in Rust for the backend and Typescript/React for the frontend.

Functional Programming in Python
O'Reilly Video Series

In 2015, I wrote and recorded an educational video training course about functional programming with the Python programming language. It covers a basic introduction to functional programming, how to use FP in Python, and several libraries that can help. Total edited runtime is 2 hours 54 minutes.

pure I/O in Python

I created and maintain the Effect library for Python. Effect is a library that facilitates "effect isolation", which means separating I/O code from pure functions in a codebase to enable various benefits, like improved testability and separation of concerns.I originally created Effect to facilitate my work on Otter at Rackspace.

asynchronous networking for Python

I was a long-time contributor to Twisted, an open source asynchronous networking framework. I have collaborated with the team to design, implement, and review changes to many parts of the code base. I've also managed releases of the software, developed build automation tools, and maintained the hosting infrastructure.

See my GitHub profile for more projects I've worked on.


Juice Analytics - Senior Software Developer, Platform

Remote March 2018 - April 2023

I worked on the Juicebox platform, which allows in-house developers and third-party users to develop data storytelling apps using any data set. I was heavily involved in productizing our platform into a no-code story builder. My work was thoroughly full-stack: a Typescript/React/Relay frontend and a Python backend. Technologies: GraphQL, Django, PostgreSQL, Redshift, BigQuery, AWS and Google Cloud. - Lead Engineer, Platform

Remote January 2016 - July 2016

I worked on, a calendaring and scheduling application for retailers. I worked on the core Haskell codebase, and also improved the build system with Haskell Stack and Shake. I also shared devops responsibilities, and implemented large refactorings of the staging and production deployment automation, which involved Ansible, NixOS, Docker, and AWS.

Rackspace - Software Developer 5, Auto Scale

Remote May 2013 - December 2015

I worked on Rackspace Auto Scale (Otter), an open source auto-scaling product for the OpenStack-based Rackspace cloud. It's implemented in Python with Twisted, and uses pure functional programming techniques using my Effect library.

Canonical Ltd - Software Developer, Landscape

Remote February 2012 - May 2013 (and March 2006 - August 2009)

I worked on Landscape, a consumer service for managing large-scale deployments of Ubuntu. During my time there, I worked on design and implementation of an audit log system, major API design improvements, and OpenStack cloud management.

38 Studios - Programmer, Platform

Providence, RI July 2011 - February 2012

I worked on the 38 Studios Platform, which is an account and data service that hosts and provides APIs for accounts, achievements, access controls, and so on. My work on the platform largely involved Scala and Python. I also worked on front-end web JS apps that used the platform, such as

id Software - Systems Programmer, Quake Live

Dallas, TX January 2010 - July 2011

I worked on Quake Live, a first-person shooter game for the web. I worked on matchmaking, performance improvements through metrics gathering & optimization, social features, and dealing with integrating the plethora of technologies involved.

I've been doing professional software development since 2001. If you'd like to know more about my history, please contact me.

OneSignal - Senior Engineer

Remote April 2023 - present
I work at OneSignal on the Integrations team, where I've worked on single sign-on, roles & permissions, and a new product feature for messaging.


[Chris] has been a valuable part of my team at Rackspace for several years now. His best attribute is his ability to bring sophisticated ideas like Haskell’s monads to the level of writing code for a real-world product that works in production. He's an effective remote worker, even when his team is mostly not remote. His code reviewing skills are exemplary and he's never hesitated to dive into mysterous or tricky issues in production.

Ken Wronkiewicz (Manager, Rackspace Auto Scale)