Reading List
If you can’t find what you’re looking for within the main posts in this blog, then I’d recommend taking a look at the links on this page.
This page lists out learning materials, resources and videos that I have found useful over the years. Enjoy!
Table of Contents
Python
-
Learning Python with TDD - A shameless plug I’m sure you’ll agree. This is a course that I am currently writing for beginners and newcomers to the language.
-
Talk Python to Me - I’ve been listening to this podcast for years, and I’ve always found it to be a super useful way of trying to stay up to date with the quickly moving
Python
space. -
PythonBytes.fm - Another podcast done by the same guys over at talkpython.fm. Episodes tend to be a little shorter around the 30-40m mark. These 2 podcasts are good ways of keeping up to date with the latest libraries and frameworks throughout the
Python
ecosystem. -
Real Python - A ton of really insightful posts catering to various levels of expertise. The articles vary from nifty tricks to detailed development demonstrations of applications. Exactly the sort of thing I’ve relied on during a number of long commutes.
-
YouTube - Corey Schafer - I owe a lot to Corey, his videos have taught me a lot. This is a really great resource if you’re looking to learn Python. Corey has some solid videos on fundamental things like explaining what a virtual environment is and how to use git. As well as some neat tutorials with common libraries like
Pandas
&matplotlib
. He has series of videos on bothFlask
andDjango
, where he builds a simple web app in both frameworks. -
Youtube - Fast Test, Slow Test | Gary Bernhardt - A really great talk from PyCon US 2012 about the various dependencies of large-scoped system tests and what the speaker considers a unit test. He also shows some concrete examples of what his test would look like written against a couple of Django models.
FastAPI
- FastAPI Official Docs - I know this feels like cop out! And I wouldn’t normally just point people to the official documentation for a project. But the documentation for FastAPI is a really great resource if you are building something with FastAPI.
Celery
- Real Python - Async Tasks with Django and Celery -
I’ve already pointed to realpython.com, but it has such a wealth of resources.
Including this post, which demonstrates how to integrate
Celery
,Redis
&Django
together to execute asynchronous tasks in the background of a Django app.
Go
-
Learning Go with Tests - This tutorial takes you through the key features of the language. From
structs
&interfaces
through togoroutines
. After that it walks through building an application from scratch, with changes in requirements along the way.
I personally do use TDD in my day-to-day development, but I especially enjoyed the TDD aspect of this. There are plenty of different flavours of TDD out there which can feel clunky, but this felt really fluid. It was also great to pick up a new language and build something that felt more real world. -
Gophercises - Quite a fun set of exercises to do. The author, Jon Calhoun, walks through the solutions on video with you. He does a great job of simplifying things and taking the viewer on the journey with him.
Rust
- Rust for professionals - A quite thorough side-by-side comparison of language features between Rust and other languages.
Kubernetes
-
Youtube - Kubernetes Design Principles: Understand the Why - Saad Ali, Google - A really great video which talks about the underlying principles of
K8s
.K8s
brings a load of abstractions and terminology to learn. In my opinion, getting to understand the concepts behind whyK8s
was built, along with the problems it tries to solve is massively important. -
Kubernetes Official Docs - I’ve done it again I know. I’ve pointed you to the official docs for a project. But the K8s docs are truly fantastic, I’d put them on a par with the FastAPI Docs in terms of how digestible and developer-friendly they are.
-
Handbook of K8s errors - A concise handbook of
K8s
errors.Unfortunately most of these are now burned into the back of my eyelids! But I really wish I’d had this when I’d first started using K8s, it would have saved me a lot of time scratching my head! -
Kubernetes Podcast -
Kubernetes
seems to move at breakneck speed, this podcast helped me a lot in keeping track. -
Lens IDE - I know plenty of people swear by the command line and for good reason. But most of the time when I’m developing in a cluster, I’ll use Lens, falling back to the vanilla terminal when I need. Lens is a super useful IDE for
K8s
regardless. And it’s free! -
K8sCLI - If you couldn’t stomach a fully-fledged IDE for
K8s
, then this might be up your street. A CLI-based development environment for interacting with your clusters. I can’t say I’ve used it very much, but I’ve heard good things. I tend to use either the vanilla terminal or Lens.
Helm
-
Helm Official Docs - One last time I swear! The
Helm
docs are quite concise and can get you up and running pretty quickly. -
Unit Testing Helm Charts - When I first started building
Helm
carts, I felt like I was blindfolded. I had no test harness to catch me. Although it’s not perfect, this article outlines a good approach to creating unit tests forHelm
charts.
ArgoCD
-
Course - GitOps with ArgoCD - A course which guides you through some basics of GitOps, as well as showing the reader how to use ArgoCD. Super simple and easy to follow. It also provides a really nice sandbox environment,
so you can break things at willfor you to explore with. -
ArgoCD Official Docs - You’ve probably spotted a common pattern by now. But I certainly believe the docs for ArgoCD are worth your time.
Docker
-
Dive - CLI tool for Docker images - A CLI tool that you can use to analyse your docker images. Useful for understanding where (if any) bloat is concentrated, across the layers of your image.
-
Using Alpine Image for Python Docker Images - An interesting article which talks about selecting the right base image for your
Python
app.
Software Architecture
-
YouTube - Modular Monoliths | Simon Brown - A talk by Simon Brown during GOTO Berlin 2018. Trends in software tend to take over, often without the requisite critical thinking. Just because microservices worked for Netflix and the problem they were trying to solve, doesn’t mean it’ll work for you on your problem space! Simon frames the thinking that designing microservices might have more common with a Modular Monolith than you might think.
-
System Design Interview Primer - This is more of a system design interview prep resource. But very handy either way.
-
Newsletter - Latency Numbers - Ever seen numbers like
10ms
,100ms
or100ns
? Well the first portion of this article puts those numbers into perspective. -
The Distributed Computing Manifest - An interesting article about the challenges faced by the engineers at Amazon during their earlier days.
-
Observability in Distributed Systems - A really useful and relevant article on observability for modern distributed systems.
-
Practical issues with RDS replicas - An insightful piece examining the practical problems of the eventual consistency model which comes with asynchronous replication across multiple nodes laid over the top of using SQL databases which imply strong consistency and state replication across nodes.