Hello!
I'm a seasoned full-stack software developer who loves writing clean code and has experience as a team lead. I enjoy being challenged and learning new things.
I've worked extensively with Ruby, but am happy to embrace other technologies where appropriate. I’ve certainly written my fair share of JavaScript, and I'm also curious about new languages like Rust and Elixir.
Originally from Britain, I am now based in Melbourne, Australia. I’m currently thinking about how to improve peoples’ financial lives with the talented team at at Up.
Get in touch if you'd like to chat!

Writing
I sporadically write articles on here. Here are the most recent ones:
- Weeknotes 1, published 22 February 2019
- I’m looking for work in Melbourne!, published 23 March 2018
- My first steps contributing to Servo (and learning Rust), published 28 January 2018
Past work
I spent four and a half years working as Technical Director at Loco2.com. I joined at an early stage, sat on the board, and played a key role in growing the business.
A big motivation for my involvement was the founders’ desire to use Loco2 to help address the climate crisis, by making it as easy as possible for people to take a train rather than a plane.
Some of my contributions were:
- Mentoring other developers on the team to improve their skills and maintain high standards
- Hiring new developers (this taught me how important it is for a developer to be able to learn new things quickly!)
- Developing processes and documentation to keep the geographically-distributed team running smoothly, such as: coding style guidelines, code reviews, on-call processes, error handling and deployment
- Identifying and eliminating areas where technical debt was causing problems
- Guiding the development of our platform from the time when we only sold tickets provided by one rail operator, to the point where we had wide European coverage and were able to easily “plug in” new operators (this involved finding the right software abstractions)
- Iterating our hosting infrastructure to ensure we could scale easily and to eliminate single points of failure (buzzwords: AWS, Terraform, Docker)
In 2017, Loco2 was acquired by Voyages-sncf.com after undergoing a highly complementary review of the quality and maintainability of its technology.
I’ve done plenty of other things in my career (including unpaid open source work), but my time at Loco2 is what I’m most proud of so it is what I’ve focused on here. Other organisations I’ve worked with include WikiHouse and the BBC.
Open source
I used to be very active in open source software development in the Ruby community.
I don’t do so much these days, but have recently been learning Rust in order to contribute to the experimental web browser engine, Servo.
Past contributions I’m particularly proud of:
- I was part of the Ruby on Rails core team. Amongst other things, I did a large amount of work on refactoring and improving the database layer, Active Record.
- I started a project called Poltergeist, which enables developers to use PhantomJS to perform end-to-end testing of web applications.
- I started a project called Spring which speeds up development of Rails applications by keeping them running in the background. Since Rails 4.1, Spring is bundled by default for new applications.
You can also have a look at my GitHub account.
Education
When I was in my early teens, I spent a lot of time playing an online game called Dransik (later renamed to Ashen Empires). I decided to make a fan-site for the game, which lead me to teach myself programming with VBScript and ASP. I got hooked and later went on to teach myself PHP, then landed my first paid programming job in the school holidays when I was 16.
I don’t think a formal education is a particularly strong indicator of skill in a software developer (I’ve worked with excellent programmers who have no degree). However, I did get a BA in Computer Science from Oxford University, which certainly increased my knowledge and understanding of theoretical computer science.
Speaking
I used to give talks at technical events, before making a decision to step away from it.
Here’s a non-exhaustive list:
- Demonstration of fixing a bug in Active Record at La Conf, Paris on 10th May, 2013
- You hate your codebase and it’s your fault at Railsberry, Krakow on 20th April, 2012
- Attributes Unwrapped: Lessons under the surface of active record at .toster {Ruby}, Moscow on 10th February, 2012
- How hard can it be? A refactoring battle story at Ru3y Manor, London on October 29th, 2011
- How hard can it be? A refactoring battle story at RubyShift, Ukraine on October 22nd, 2011
Contact
My email is j@jonathanleighton.com (no recruiters please), and I’m also on Twitter.
Climbing
When I’m not in front on the computer, I spend a lot of time climbing. I enjoy the variety of all the disciplines (sport, trad, bouldering, alpine, ice, dry-tooling, …)
Climbing takes me to lots of amazing places, and has given me memories which I’ll treasure forever. I sometimes write about my experiences on my climbing blog.