Justin Spahr-Summers
Engineering + People
Full stack development
Backend distributed systems
Mobile and desktop development
Functional programming
Reactive programming
Machine learning
Programming language development and tooling
Financial automation
Cryptocurrency and decentralized finance
Unity game development

I have many years of experience as a software engineer and a people leader, working at well-known companies like Meta (Facebook) and GitHub, co-founding and helping lead startups, and—as an independent consultant—helping organizations scale up and transform.

As an manager and a technical leader, I emphasize coaching and mentoring, and sharing mental models to help everyone level up. I care deeply about how companies and teams organize themselves and their work, and am personally familiar with the common growing pains.

I've done a little bit of everything, and if there's something I haven't done before, I'll learn it!

Software Engineer / Manager
AnthropicJan 2023–Present

Anthropic is an AI safety and research company working to build reliable, interpretable, and steerable AI systems.

CophiDec 2022–Apr 2023

Cophi uses organisational science and AI to boost innovation, drive engagement and build truly inclusive cultures.

Chief Technology Officer
CophiNov 2021–Dec 2022

Cophi uses organisational science and AI to boost innovation, drive engagement and build truly inclusive cultures.

Independent Consultant
CophiJun 2021–Nov 2021

Cophi uses organisational science and AI to boost innovation, drive engagement and build truly inclusive cultures.

Metacognitive Consulting LtdJan 2021–Apr 2023

I offered coaching, mentoring, and technical leadership on a consulting basis.

Coach and Consultant
Cow ProtocolJan 2022–Jul 2022

Leadership and organizational coaching at Cow Protocol, a spinoff of Gnosis.

Independent Consultant
GenevaFeb 2021–Jan 2022

Geneva is an all-in-one communication app for groups, clubs, and communities, being built by a New York-based startup (and hiring remotely!). I contributed my organizational expertise and technical knowledge to the company on a consulting basis.

Software Engineer
FacebookJul 2019–Nov 2020

Chose to return to an IC role to go deeper technically. Co-started a project to simulate social media interactions on the Facebook platform: automated agents, using much of the real infrastructure (but isolated from production), are trained to exhibit particular user or community behaviors—for example, mimicking bad actors—to improve Facebook's ability to detect and prevent malicious activity. Check out our paper, WES: Agent-based User Interaction Simulation on Real Infrastructure, for more details!

In addition to technical leadership, I helped hire most of the team, regularly provided coaching and mentoring, and generally supported local team members on behalf of our remote manager.

Engineering Manager
FacebookMar 2017–Jul 2019

Switched to management to grow the team further in London, and worked with counterparts in the SF Bay Area and Seattle to bring our reactive system from a functional proof-of-concept into production at scale.

Began supporting an additional team in Boston which was working in the same problem space, and encouraged collaboration between the two. Onboarded a local manager for the Boston team, and began supporting them directly. Together, built the team up to a healthy, self-sustaining size.

Software Engineer
FacebookJul 2015–Mar 2017

Helped design and implement an initial version of a C++ system for transforming normal backend queries into "live" or "reactive" queries, which implement "infinitely fast polling" by automatically re-evaluating themselves when the underlying data has changed. Exposed this functionality to Facebook's iOS and Android developers through GraphQL, as described by a team member in their talk, GraphQL Live: Reactive Queries at Facebook.

Software Consultant
Mar 2015–Jun 2015

Consulted for Mac and iOS development teams, especially those interested in using Carthage, Mantle, or ReactiveCocoa open source projects. Provided both architectural guidance and direct code contributions in proprietary projects, helped integrate the open source libraries and tools where it made sense, and improved the open source projects as needed to benefit the proprietary works.

Software Engineer
GitHubJul 2012–May 2015

Added features to GitHub for Mac (now GitHub Desktop), fixed many reliability issues, significantly improved the app architecture. Implemented features on the GitHub website, in the GitHub API, and in the libgit2 C library to support the app. Co-wrote Squirrel.Mac, a highly reliable software update framework, to replace Sparkle. Architected most of the Cocoa projects open sourced by GitHub during this time, in both Objective-C and Swift.

BitswiftNov 2011–Apr 2012

Helped build a Mac app for iPhone wireframing (unreleased), and a Mac app for creating three- and nine-slice images. Created, architected, and implemented the majority of the Bitswift's Velvet framework, for using AppKit controls within TwUI.

Senior Software Engineer
ÜbermindMar 2010–Nov 2011

Hired as an intern, rose to a technical leadership role within ten months. Introduced a means to reuse code across more than fifteen client projects—creating, architecting, and implementing ten iOS frameworks from scratch. Directly managed and mentored nine engineers (originally six), several of whom had little technical experience.

Ownership at Large – Open Problems and Challenges in Ownership Management
ICPC Industry TrackMay 14, 2020

Software-intensive organizations rely on large numbers of software assets of different types, e.g., source-code files, tables in the data warehouse, and software configurations. Who is the most suitable owner of a given asset changes over time, e.g., due to reorganization and individual function changes. New forms of automation can help suggest more suitable owners for any given asset at a given point in time. By such efforts on ownership health, accountability of ownership is increased. The problem of finding the most suitable owners for an asset is essentially a program comprehension problem: how do we automatically determine who would be best placed to understand, maintain, evolve (and thereby assume ownership of) a given asset. This paper introduces the Facebook Ownesty system, which uses a combination of ultra large scale data mining and machine learning and has been deployed at Facebook as part of the company’s ownership management approach. Ownesty processes many millions of software assets (e.g., source-code files) and it takes into account workflow and organizational aspects. The paper sets out open problems and challenges on ownership for the research community with advances expected from the fields of software engineering, programming languages, and machine learning.

See publication

WES: Agent-based User Interaction Simulation on Real Infrastructure
Genetic Improvement WorkshopApr 29, 2020

We introduce the Web-Enabled Simulation (WES) research agenda, and describe FACEBOOK’s WW system. We describe the application of WW to reliability, integrity and privacy at FACEBOOK, where it is used to simulate social media interactions on an infrastructure consisting of hundreds of millions of lines of code. The WES agenda draws on research from many areas of study, including Search Based Software Engineering, Machine Learning, Programming Languages, Multi Agent Systems, Graph Theory, Game AI, and AI Assisted Game Play. We conclude with a set of open problems and research challenges to motivate wider investigation.

See publication

Testing Web Enabled Simulation at Scale Using Metamorphic Testing
International Conference on Software Engineering (ICSE)Mar 5, 2021

We report on Facebook’s deployment of MIA (Metamorphic Interaction Automaton). MIA is used to test Facebook’s Web Enabled Simulation, built on a web infrastructure of hundreds of millions of lines of code. MIA tackles the twin problems of test flakiness and the unknowable oracle problem. It uses metamorphic testing to automate continuous integration and regression test execution. MIA also plays the role of a test bot, automatically commenting on all relevant changes submitted for code review. It currently uses a suite of over 40 metamorphic test cases. Even at this extreme scale, a non–trivial metamorphic test suite subset yields outcomes within 20 minutes (sufficient for continuous integration and review processes). Furthermore, our offline mode simulation reduces test flakiness from approximately 50% (of all online tests) to 0% (offline). Metamorphic testing has been widely-studied for 22 years. This paper is the first reported deployment into an industrial continuous integration system.

See publication