Chris Spencer

Senior Software Engineer at Monzo Bank

England, United Kingdom
email-iconphone-icongithub-logolinkedin-logotwitter-logostackoverflow-logofacebook-logo
Join Prog.AI to see contacts
email-iconphone-icongithub-logolinkedin-logotwitter-logostackoverflow-logofacebook-logo
Join Prog.AI to see contacts

Summary

👤
Senior
🎓
Top School
Chris Spencer is a polyglot senior software engineer and tech lead at Monzo with 15 years of experience building full-stack systems and simulation-driven platforms. He founded and led Silico as CTO, bringing entrepreneurial experience to complex engineering problems and prior leadership at Simudyne focused on simulation and modelling. A Cambridge Computer Science graduate, he blends systems-level backend work (Clojure and Node/C++ canvas contributions) with practical product delivery across finance and simulation domains. His open-source contributions include extending core.typed for heterogeneous map operations and improving Node canvas text rendering, reflecting attention to type safety and low-level rendering detail. Based in England, he pairs hands-on coding with team leadership and a knack for making simulation ideas production-ready.
code15 years of coding experience
job14 years of employment as a software developer
bookBA, Computer Science, BA, Computer Science at University of Cambridge
bookAylesbury Grammar School
languagesEnglish
github-logo-circle

Github Skills (11)

clojure10
type-system10
pango10
nodejs10
functional-programming10
c-language10
cprogramming-language10
cairo10
clojure-cli10
text-rendering10
javascript9

Programming languages (9)

TypeScriptC#JavaRustCJavaScriptLuaElixir

Github contributions (5)

github-logo-circle
Automattic/node-canvas

May 2012 - Dec 2012

Node canvas is a Cairo backed Canvas implementation for NodeJS.
Role in this project:
userBack-end Developer
Contributions:24 commits in 7 months
Contributions summary:Chris primarily contributed to the `node-canvas` project by implementing new features related to text rendering and measurement within the 2D context. Their work includes adding a `textDrawingMode` property to control how text is drawn (paths or glyphs), providing partial support for `TextMetrics`, and improving the calculation of text baselines. The changes involved modifying the `CanvasRenderingContext2d.cc` and `.h` files, indicating a focus on the core rendering engine. These enhancements suggest a direct contribution to improving the library's text rendering capabilities.
node-canvascanvasjavascriptnodejsbacked
clojure/core.typed

Sep 2013 - Sep 2013

An optional type system for Clojure
Role in this project:
userBack-end Developer
Contributions:11 commits in 4 days
Contributions summary:Chris primarily focused on enhancing the core functionality of the Clojure type system, specifically by implementing support for `assoc`, `dissoc`, and `merge` operations on heterogeneous maps and vectors. They introduced new protocols and functions to facilitate type transformations and ensure correct type checking for these operations. Furthermore, the user added comprehensive tests to validate the implemented features, demonstrating a commitment to code quality and reliability within the Clojure typed library.
clojureclojurescriptoptional-typetype-system
Find and Hire Top DevelopersWe’ve analyzed the programming source code of over 60 million software developers on GitHub and scored them by 50,000 skills. Sign-up on Prog,AI to search for software developers.
Request Free Trial
Chris Spencer - Senior Software Engineer at Monzo Bank