My most recent project is Building Git, a book teaching a wide array of computing topics by reimplementing Git from scratch. It has sold over 300 copies and has attracted an audience to build their own Git implementations in C++, Clojure, Elixir, Go, Haskell, Java, Node.js, Ruby, Rust, and Swift.
Always interested in learning new things, I am currently expanding my technical knowledge into new areas. Given my main experience is in high-level dynamic object-oriented languages, I have recently learned some C, studied some type theory and logic programming by reading Types and Programming Languages, and am currently learning Rust and Web Assembly. I’m particularly interested in the possibilities of using Rust for high-performance web applications.
What I can do for you
I believe the role of senior engineers is primarily to support their teams in solving problems. I love using my expertise to help others achieve their goals, and this can take many forms. It can mean collaborating on code and design, or leading a workshop. It might be helping a team break down a complex feature into a manageable implementation, or it could be one-to-one mentoring or coaching.
I try to cultivate a culture of learning, where people are comfortable asking for help, offering each other support, and reflecting on their progress as a team so they can improve their techniques and processes. I believe in good documentation of both code and business decisions, so that information is easily available to anyone who might need it.
What I’m looking for
I am open to a variety of roles that speak to my technical, writing and teaching skills. This includes senior or staff engineering positions, developer relations, and technical writing.
I am based in London and welcome the opportunity to work remotely or asynchronously with an organisation that is experienced in supporting distributed teams.
In order to continue my open source work, I am looking for a position where I can work four days a week, giving me enough time to meet my other commitments.
Find out more
A selection of my work, writing and presentations is available on this site. You can follow my current interests on GitHub.