I read In Ascension in March 2024, and at the time I wrote down quite a few thoughts about the book because I enjoyed it so much. I'm now revisiting my notes to attempt to turn them into a coherent review of the book. Note: I've tried to keep the review section fairly spoiler-free, but there is some discussion of the pacing and characterisation. The subsequent two sections - questions and theories…
Keep Reading →
Somehow, it's already March 2023, and past time for another update on the progress of my consulting business. Excitingly, it's going pretty well so far! After my launch in November, my focus for the last two months of 2022 was on building a basic version of the business, and promoting myself in order to generate inbound work. In 2023, I've shifted gears to focus on longer-term client work. So far…
Keep Reading →
It’s been one month since I announced my consulting launch, so I thought I’d check in with an update on my progress so far. I’m hoping to do this on a monthly basis, in order to stay true to my aim of building in the open. Goals It’s still very early days for my experiment, so I haven’t got much to report on the goal front, but as a reminder, here are the goals I set myself: ♻️ Create sustainable…
Keep Reading →
A key factor in your ability to successfully grow an engineering team is your capacity for self-development. Over the course of scaling from zero to a team of double figures, your responsibilities and priorities will change dramatically. This may feel uncomfortable, as the skills that make you effective in your role as the sole engineer on the team will only be marginally helpful in managing a…
Keep Reading →
Today is 1st November, 2022, which feels like as good a day as any to begin my experiment with consulting. I'm framing this next step in my career as an experiment because I want to approach it with openness and curiosity, as well as applying an evidence-driven approach to my goals. My career in the world of software engineering started with consulting and contracting. After making the switch to…
Keep Reading →
One of the few highlights of my 2020 was walking. Since I've lived in Bristol, I've wanted to make more of an effort to explore the beautiful local countryside. This was always something that fell by the wayside in favour of easier, lazier activities. With the onset of the pandemic, though, options for things to do outside the house dwindled. Fortunately, during the first lockdown my girlfriend…
Keep Reading →
On Friday I finished off the initial implementation of obtaining an OAuth token from GitHub. Their documentation makes it pretty straightforward, but for anyone unfamiliar with the OAuth2 flow, it goes a little something like this: The application generates an authentication URL for GitHub based on several parameters including the CLIENT_ID (obtained from the OAuth application on GitHub's side…
Keep Reading →
The last couple of days have been relatively productive. Thanks to GitHub's excellent API documentation, I've got to the stage where I can reliably authenticate a user with my application via Oauth, and use their key to pull basic user info such as their private email address and GitHub ID. In this post I'll talk briefly about the setup of the application and some of the design choices I've made…
Keep Reading →
Today I began work on my project in earnest. It always helps me to visualize my goals if I can draw them out, and I still find pen and paper to be the best medium for rapidly exploring ideas. Since I'm at a very early stage, the notes that I made were pretty high level, but helped me to get an idea of the main moving parts I'd want for the app. Notes from Day 1 Some basic requirements for the app…
Keep Reading →
Today is August 1st. Now that I have been back in Bristol for a little while, it's time to knuckle down on a project that I've been thinking about in some form or another for the last few months. I don't have many details yet because the ideas are still all in my head. However, I have a pretty good idea of the problem that I want to solve, so here's the summary: As a software engineer working on a…
Keep Reading →
I am an avid Sufjan Stevens fan. I really enjoy his peaceful, somewhat melancholy style of music. As a person who is not religious myself, one of the things that I find interesting about his songs is that religious - specifically Christian - themes seem to appear quite broadly across his oeuvre. A song will often have a superficial, literal interpretation, and potentially another allegorical…
Keep Reading →
It's been a long time since I've written anything on this blog, and I have a lot of ground to cover. Since I last updated, I've spent 18 months in America, worked on some amazing projects and learned an enormous amount. I'm hoping to talk a bit more about some of the technical concepts I've had the chance to explore in subsequent posts. However, for the moment, I just want to address my short…
Keep Reading →
This post was originally published on the TrackMaven
engineering blog. Today we will be talking about mocking. No, not the joke at someone else's expense kind. Mocking is a technique to temporarily replace real parts of our code with fake, simpler parts, so that we can check that the rest of the parts are working as we intend. Here we'll consider some simple use cases for mocking in Python tests…
Keep Reading →
Markdown is great. As a formatting language, I find it to be pretty much unparalleled for speed and ease of syntax. Not having to think overly hard about style allows you to focus purely on the quality of the content. At work, we use GitHub extensively, which means that Markdown is a standard. Issues, pull requests and comments all accept the syntax, so it feels very familiar. Given a choice, I…
Keep Reading →