I'm an American software developer living in Cape Town.
From 2007 to 2017 I served as CTO of Dimagi, a social enterprise that specializes in mobile applications for underserved populations. While there I grew and led the 25-person technology team that built CommCare - a powerful platform for making mobile apps that work well in low-resource settings.
In March of 2017 I decided to go on sabbatical from Dimagi to explore other things, including launching side projects, attempting to build profitable SaaS applications, freelancing, and blogging.
In this talk I’ll describe the evolution of a Django project as it goes from something small and simple to a full-blown multi-server, multi-datacenter behemoth. The talk will use examples from real-world applications I’ve either built or contributed do, and draw heavily from my experience leading the development of CommCare HQ (an 8-year old, ~500,000 LoC codebase currently developed and maintained by about 20 people).
The goal of the talk is to try and demonstrate how and why complexity and process seeps into projects over time and is in fact necessary as a project’s lifecycle matures. I'll base the talk around a series of examples that highlight a problem and then discuss how the introduction of a new subsystem, architecture, or process helps to address that problem. These problems / solutions will be a mix of the technical (e.g. "the site is slow") and human (e.g. "we can't ship features quickly anymore").
Anyone who is part of a growing project or team should hopefully learn something or get some ideas for what might be in store for your future!