Latest articles

Subscribe via RSS

  • ,

    Coding can be super lonely

    ·

    ·

    3 min read

    I hate coding solo. Not in the moment or when I’m in the zone, I mean in the long run. I love getting into that deep focus where I’m locked in and hours pass by in a second! But I hate snapping out of it and not having anyone to chat with about it. (I’m lucky that’s not the case anymore though – thanks Bob!) So it’s no surprise that many of the devs I chat with on Zoom calls or in person share the same sentiment. Not everyone has a Bob though. Many people don’t have anyone in their circle that…


  • It’s January! If you look back at yourself from exactly one year ago, January 2025, how different are you as a developer from then to now? Did you ship the app you were thinking about? Did you finally learn how to configure a proper CI/CD pipeline? Did you land the Senior role you were after? Or did you just watch a lot more YouTube videos and buy a few more Udemy courses that you haven’t finished yet? If the answer stings a little bit, you aren’t alone. Over the last six years of coaching hundreds of developers in PDM, Bob…


  • Bob and I have spent many years as Python devs, and 6 years coaching with Pybites and we can safely say that being a Senior Developer is only about 1/3 Python knowledge. The other 60% is the ecosystem. It’s the tooling. It’s all of the tech around Python that makes you stand out from the rest. This is the biggest blind spot keeping developers stuck in Tutorial Hell. You spend hours memorising obscure library features, but you crumble when asked to configure a CI/CD pipeline. (That’s not just made up by the way – many of you in dev roles will have seen…


  • I’ve had some challenging conversations this week. Lately, my calendar has been filled with calls from developers reaching out for advice because layoffs were just announced at their company. Having been in their shoes myself, I could really empathise with their anxiety. The thing is though, when we’d dig into why there was such anxiety, a common confession surfaced. It often boiled down to something like this: “I got comfortable. I stopped learning. I haven’t touched a new framework or built anything serious in two years because things were okay.” They were enjoying “Peace Time.” I like to think of life in…


  • SQLModel is a library that lets you interact with databases through Python code with Python objects and type annotations instead of writing direct SQL queries. Created by the same author of the extremely popular framework FastAPI, it aims to make interacting with SQL DBs in Python easier and elegant, with data validation and IDE support, without the need to learn SQL. It’s an ORM (Object-Relational Mapper), meaning: it translates between classes/objects and SQL. In this article, I will cover why you would use SQLModel over plain SQL queries, what benefits it brings to the table and the basics of using…


  • In my previous Pybites article, I showed how I built and deployed a book tracking API using FastAPI, Docker, and Fly.io. That project taught me a lot about backend development, containers, and deploying modern APIs. But a backend alone isn’t enough—users need an interface. And FastAPI’s Swagger UI, while useful for testing, just isn’t user-friendly enough for everyday use. So, I decided to build a frontend. My goal? A fast, Python-based UI with minimal hassle. That’s when I turned to Streamlit. In this article, I’ll explain why I used Streamlit and how I was able to connect my deployed backend…


  • The Problem I have for as long as I can remember had a bit of a problem with analysis paralysis and tunnel vision. If I’m working on a problem and get stuck, I have a tendency to just sit there paging through code trying to understand where to go next. It’s a very unproductive habit and one I’m committed to breaking, because the last thing you want is to lose hours of wall clock time with no progress on your work. I was talking to my boss about this a few weeks back when I had a crazy idea: “Hey…


  • Structuring Python projects properly, especially when developing packages, can often be confusing. Many developers struggle with common questions: To help clarify these common challenges, I’ll show how I typically set up Python projects and organise package structures using the Python package and environment manager, uv. The challenge A typical and recurring problem in Python is how to import code that lives in a different place from where it is called. There are two natural ways to organise your code: modules and packages. Things are fairly straightforward in the beginning, when you start to organise your code and put some functionality…


  • Python generators provide an elegant mechanism for handling iteration, particularly for large datasets where traditional approaches may be memory-intensive. Unlike standard functions that compute and return all values at once, generators produce values on demand through the yield statement, enabling efficient memory usage and creating new possibilities for data processing workflows. Generator Function Mechanics At their core, generator functions appear similar to regular functions but behave quite differently. The defining characteristic is the yield statement, which fundamentally alters the function’s execution model: When you call this function, it doesn’t execute immediately. Instead, it returns a generator object: This generator object…


  • For the PDM program I worked on a FastAPI project to track books using the Google Book API and also provide AI powered recommendations using Marvin AI. As the project came closer to deployment, I knew that I wanted to try out containerization for a reliable and repeatable way to deploy. I chose Docker due to its widespread use, open-source nature, and consistent behavior across environments.If you’re new to Docker or looking for a straightforward guide to deploying a FastAPI app with Docker and Fly.io, this post is for you. FastAPI Set Up for Docker Before deploying the app, we…