Jonathan Hartley | tartley@tartley.com | blog | github
+1 507 513 1101 | 1601 5th Ave NW. Rochester, MN, 55901, USA (UTC-6)

Summary

I’m an experienced software developer, a back-end generalist specializing in Python.

I enjoy roles as both an individual contributor, and hands-on technical lead of small, happy teams, where I deliver business value by putting reliable, maintainable features into production on a predictable schedule.

I believe in mentoring, radically jovial relationships, real talk, taking pride in our humane treatment of one another, and in our raised expectations of what we become capable of as a group. Great teams enable the creation of great individuals, not the other way around.

I consult and mentor in Test-Driven Development (TDD), favoring the “London School” and “double loop” variants, when appropriate. I was tech reviewer on O’Reilly’s Test Driven Development with Python, published on testing in Python Magazine, and landed modest CPython patches in unitttest.

I created Colorama, the world’s 28th most popular Python library, present at international conferences like PyCon, and am a nominated Fellow of the Python Software Foundation. I make continual open source contributions, e.g. this recent drive-by analysis and fixes for static web site generator Nikola, or this page of ModernGL docs, which I created from scratch to help me understand a fiddly API concept, using plain language but without skirting details.

Industries & technologies

Public & private cloud implementation (4 years), Ubuntu Linux ecosystem and open source (10 years), GIS and spatial data (10 years), Finance (5 years), Online retail, e-commerce, ERP (2 years), Medical Trials (2 years).

Recently my projects are mostly Python, but I’m delighted to use other languages as required.
Web API design and implementation using Django, Flask, etc.
Relational storage such as PostgreSQL, MySQL or Oracle.
NoSQL such as RethinkDB, & MongoDB, indexed using ElasticSearch.
Progressive techniques like trunk based development, pairing & mob, evidence based estimation.
Hobbyist 2D and 3D graphics using OpenGL.
C, C++, C#.Net for GIS, spatial data, radar research (Not current, but fondly remembered.)

Current Role

Canonical
4 years,
to present.
I work on the backend of the Snap Store, an app store for Linux applications, creating Python web APIs to serve 5k req/s, installing and securely updating applications for hundreds of millions of Ubuntu & other Linux devices. I recently lead a project to migrate data and consolidate logic for the company’s other types of binary downloadable (e.g. container images, “charms”, etc) into the existing snap store services, allowing us to decomission other teams’ services as their functionality was subsumed, and converge behaviors such as publishing, versioned updates, risk tracks, etc, to be more consistent across types of downloadable artifact, all while honoring high-traffic SLAs & preserving compatibility of diverse externally visible APIs for each artifact type.

Previous Roles

IBM Cloud
2 years
Implemented IBM Cloud’s security groups feature, in Python & GoLang, converting user security group actions into iptables configuration across many instances, to provide dynamic on-instance firewalling. I also produced & presented training courses for the inexperienced team, (e.g had never written GoLang before) which were later requested across the division, especially around Cloud’s massive Python test suite, bringing hundreds of developers up to speed on how to contribute good tests, dramatically reducing time spent on creating and maintaining tests, while making the tests themselves faster and more reliable.
Able.ag,
Antidote.me,
BATS Trading,
Rangespan
Contracts,
6 years.
Creating REST web APIs in Python, ingesting, transforming and indexing large amounts of data. For example at Rangespan, I integrated with hundreds of wholesale suppliers to ingest data for 100 million sellable items, and then routed over a billion sales from participating retailers to dynamically selected suppliers. I often act as tech lead, for example, at Able.ag I relieved the company’s technical founder of architectural, design and mentoring responsibilities.
Made.com
14 month
contract.
A furniture retailer, struggling to model their logistics in Python Enterprise Resource Planning software. I took over a dysfunctional team, moribund from years of technical debt. e.g. nobody could remember when they had last performed the week-long manual process to release to production. I mentored the existing team, hired more developers, created a one-minute automated CI and deployment pipeline, and together we radically fixed and improved their legacy systems. This transformed operational reliability, allowing the team to start delivering new business-critical features to production on a predictable schedule.
Resolver
Systems
5 years.
Hardcore eXtreme Programming startup, producing web and desktop software in Python and .Net IronPython for financial & scientific clients. At one point I re-implemented all of Excel’s statistical functions, with improved numerical accuracy. We paired on all code, using extremely thorough TDD, becoming regular conference speakers on the topics.
GIS
consulting
3 years.
For Peter Brett Associates I single-handedly designed and coded Habitat Capture, a desktop GIS tool in .Net using ArcObjects for ArcMap. End users described it as “about a billion times better” than their last commisioned tool. The resulting dataset won that year’s British Cartographic Society award.
At Ordinance Survey I did proof-of-concept SQL processing of MasterMap, the UK’s definitive national geospatial dataset, optimizing spatial SQL queries over terabyte datasets to run in hours instead of weeks.
For ESRI UK I created a .Net spatial data importer from AutoCAD, using topological operators to correctly create multi-part geometries for nested holes and islands.

Education

University of Durham, UK. Bachelor of Science: 2:1 (with Honors) in Electronics.