• Debugging manage.py commands in VSCode with Docker

    I tend to run my Django application in a Docker container for all the benefits it gives when working with a team or deploying the application. It does however introduce extra hundles in everyday development.

  • Displaying the Django Debug Toolbar in the Demo Polls App

    I’ve been going through Writing your first Django app recently. I was looking for a simple website/project I could look at scaling and push the limits of, what better than the polls app! Step one of any efforts is to measure, so I tried adding the Django debug toolbar. No matter what I tried from the installation steps I couldn’t get it to show.

  • Measuring Engineering Team Productivity

    One of (many) challenges that come with technical leadership is estimation and prioritisation. In essence, this boils down to answering either “What’s been done lately” or “When will x be done”.

  • What does good code look like?

    “Good code is thoughtful and written to achieve a specific goal”

  • Factory pattern in Python

    The factory pattern (or factory method pattern) is a creational design pattern which abstracts away the creation of objects via a factory class. This allows us to defer object creation and alter the type of objects created at runtime.

  • Merge Sort in Python

    Third in my series of dives into sorting algorithms is merge sort. Please see bubble sort and selection sort for my previous entries.

  • The Command Pattern in Python

    The Command Pattern is a behavioral pattern that encapsulates a request or operation as an object. This is advantageous when we may want to defer the execution of some piece of code until later or group and pass around batches of related behavior. In essence, it enables the decoupling of the sender and receiver of a request by wrapping a request as an object.

  • Selection Sort in Python

    Second in my series of dives into sorting algorithms is selection sort. After bubble sort, I wanted to pick another fairly basic algorithm to implement and see if I could optimize it a little further.

  • Bubble Sort in Python

    I’ve always been very focused on building and maintaining large web applications and systems, as such I feel like I skipped over some of the basics early on in my career. Due to this and my curiosity as to how some of the everyday tools we use work, I thought I would take a look at implementing a few of the core basic algorithms. First up bubble sort.

  • Testing for slow external Javascript files

    I recently came across an issue where a web page would “hang”. The page was loaded and everything visible, but all javascript functionality such as click handlers were un-responsive. That was until the page had finished loading a minute later and it all came back to life.

  • The strategy pattern in python

    The Strategy Pattern is a behavioral pattern that defines a set of algorithms, encapsulates each one, and makes them interchangeable within a context. This pattern allows the algorithms to vary independently of the clients that use them. The Strategy Pattern is useful when we have multiple algorithms that can be used to solve a problem, and we want to choose the best one for the situation at runtime.

  • The adapter pattern in python

    The Adapter pattern is a design pattern that allows objects with incompatible interfaces to work together. It provides a way to convert the interface of an object into another interface that clients expect. This pattern is especially useful in situations where existing code needs to be integrated with new code that has different interfaces.