Kraken Technologies: How we organise our very large Python monolith
Hi, I’m David, a Python developer at Kraken Technologies. I work on Kraken: a Python application which has, at last count, 27,637 modules. Yes, you read that right: nearly 28k separate Python files - not including tests. I do this along with 400 other developers worldwide, constantly merging in code. And all anyone needs to make a change - and kick start a deployment of the software that runs 17 different energy and utility companies, with many millions of customers - is one single approval from a colleague on Github. Now you may be thinking this sounds like a recipe for chaos. Honestly, I would have said the same. But it turns out that large numbers of developers can, at least in the domain we work in, work effectively on a large Python monolith. There are lots of reasons why this is possible, many of them cultural rather than technical, but in this blog post I want to explain about how the organisation of our code helps to make this possible. If you’ve worked on a code base for any l
By David Seddon from Kraken Technologies. Hi, I’m David, a Python developer at Kraken Technologies. I work on Kraken: a Python application which has, at last count, 27,637 modules. Yes, you read that right: nearly 28k separate Python files - not including tests. I do this along with 400 other developers worldwide, constantly merging in code. And all anyone needs to make a change - and kick start a deployment of the software that runs 17 different energy and utility companies, with many millions of customers - is one single approval from a colleague on Github. Now you may be thinking this sound
Explore this link on the map →related reading
- Cognitive load is what mattersminds.md
- The Intent Layer | Intent Systemsintent-systems.com
- How to write complex softwaregrantslatton.com
- Clean Coder Blogblog.cleancoder.com
- How to scale a large codebase - Vercelvercel.com
- Layered protocols - by Gordon Brander - Squishy Computersubconscious.substack.com
- Mistakes engineers make in large established codebasesseangoedecke.com
- GitHub - zakirullin/cognitive-load: 🧠 Cognitive load is what matters · GitHubgithub.com
- GitHub - zakirullin/cognitive-load: 🧠 Cognitive load is what matters · GitHubgithub.com
- Scaling with common sense #2: Being future ready. - Zerodha Tech Blogzerodha.tech
- Presentation Domain Data Layeringmartinfowler.com
- Write code that is easy to delete, not easy to... — programming is terribleprogrammingisterrible.com