1. July 16, 2024

    A couple of years back, a colleague sent me an article detailing all the horrible things wrong with TypeScript enums. I read it, then I Googled "Are enums bad in TypeScript?" and read as much as I could find. OK, I was convinced, union types are much simpler than enums. They don't have any weird behaviour, you don't have to worry about type vs value confusion. Union types are types - they get stripped out at compile time. String literals are plain old JavaScript, they stay in at compile time.


  2. March 07, 2024

    In February I switched up my working situation. For more than 2 years, I've been working as a freelance developer, starting with some notable contract work with Deliveroo and latterly holoride in Munich.

    Since leaving holoride in January last year, I've been working for several clients. Some, like Book A Street Artist and Organic Growth Team, were enjoyable and rewarding. Others, who will remain nameless, were not.


  3. February 02, 2024

    Redis is a simple key-value database that is optimised for speed in terms of reading data. It's often used in applications that need to be low-latency (meaning that return results quickly without much of a delay) as a cache. Using the key to look up a certain piece of data and returning the value stored next with it. It's ultra fast at simple operations.


  4. August 06, 2023

    I love testing. Testing software is one of the greatest skills I've learned so far as a software engineer. This has, in part, lead to a great affection for test-driven development (TDD) and in particular the art of outside-in TDD. I'm going to focus on using Ruby on Rails and the testing frameworks RSpec and Capybara. Let's have a look.


  5. July 24, 2023

    Being a junior developer is a thrilling journey of learning and growth, building web applications, and collaborating with talented teams. Along the way, I made my fair share of missteps. Looking back now, I like to reflect on the mistakes I made during those formative years and, in this post, I aim to share my experiences, hoping that fellow frontend developers can learn from my failings and avoid these pitfalls on their own path to success.


  6. July 20, 2023

    I've been a freelance developer for around 2 years now, and in that time I've developed a system to manage my finances when it comes to freelancing, although I initially built up the foundation to the system back in 2018 and 2019. This was when I developed my own personal conscious spending plan. A plan to allow me to live how I liked, spending on whatever I wanted, while also started to save, invest and making sure I was living within my means.


  7. July 15, 2023

    Side income streams are constantly becoming more important. With massive layoffs and an ever-changing job market, now is the second-best time to start building a second source of income. The best time was yesterday! Let's have a look at some of the top side hustles to start in 2023 to replace some or all of your salary.


  8. July 13, 2023

    Recently I decided to act on an idea that I’ve had for a long time now. I planned, designed, architected, built and deployed a fully-fledged web application in under a week.

    That’s right. One Saturday I sat down to start planning the app, the following Friday it was online and I had my first users - they’re just friends and family, but they’re users!


  9. July 10, 2023

    It's easy to conflate the ideas of programming and software engineering. As I was learning and beginning my career in software, I often thought that all I needed to succeed as a software engineer was a good grasp of programming languages and frameworks. In my second role as a developer, I was learning the React framework as well as the Ruby programming language with the Ruby on Rails framework. In theory, I already knew JavaScript, but that turned out to not be quite 100% true. My understanding was good enough, though.



  10. June 23, 2023

    One of the standout features of Ruby on Rails is its extensibility through gems. These are modular components that enhance the functionality of Rails applications.

    Gems are packages or libraries written in Ruby that encapsulate specific functionalities and can be used across different Ruby applications, including Rails itself. Gems are published on RubyGems, a centralised repository for Ruby libraries. Rails applications can utilise gems to integrate third-party libraries, utilities, or tools that extend the capabilities of the framework. Gems provide a modular approach to adding functionality to Rails applications, enabling developers to leverage existing libraries to solve common problems or implement complex features.


  11. May 19, 2023

    Many junior developers struggle to find their first professional role. If you're self-taught, or fresh out of a bootcamp, it can be really intimidating hitting the software job market for the first time. With so many other developers in the same position as you, it can seem impossible to stand out to recruiters and hiring managers.


  12. May 17, 2023

    As a junior web developer, diving into the vast world of web development can feel overwhelming. However, Ruby on Rails offers an excellent starting point for your journey. This powerful framework provides a robust and elegant solution for building web applications efficiently. Let's explore the key features and advantages of Ruby on Rails that make it an ideal choice for getting started as a web developer. So, let's get started and uncover the world of Ruby on Rails!


  13. May 13, 2023

    In React, we typically separate components into two categories: presentational components and container components. Presentational components are concerned with the visual representation of data and user interface, while container components handle data management and business logic. This separation helps us create more modular and reusable code, making our applications more scalable and easier to maintain.


  14. May 10, 2023

    Next.js is a popular framework for building server-rendered React applications. It was developed by Zeit, and is now maintained by Vercel, the company that acquired Zeit in 2019. Next.js is built on top of React and adds several key features to make building complex web applications easier. In this blog post, we will dive into the key features of Next.js, including server-side rendering, routing, accessibility, and data fetching.


  15. May 06, 2023

    When building a web application with separate frontend and backend, securing the API is a crucial aspect. In this blog post, we will discuss how to secure a Ruby on Rails API using authentication with JSON Web Tokens (JWT) and how to consume it in a React application.


  16. May 05, 2023

    Ruby on Rails is a popular web development framework that allows developers to create web applications quickly and easily. One of the most important aspects of any web application is user authentication, which ensures that only authorised users can access the application's resources. Devise is a powerful authentication library for Ruby on Rails that simplifies the authentication process and provides a lot of built-in functionality.


  17. May 02, 2023

    In recent years, the popularity of freelance web development has skyrocketed. While there are many benefits to being a freelance web developer, there are also some drawbacks that should be considered before making the leap from a permanent employee to a freelancer. In this post, we’ll explore the pros and cons of each career path to help you make an informed decision.


  18. April 29, 2023

    Single page applications (SPAs) have become increasingly popular in web development due to their ability to provide a seamless user experience. However, there are several approaches to building SPAs, including server side rendering (SSR) and static site generation (SSG). In this blog post, we'll discuss what these approaches are and the benefits and drawbacks of each.


  19. April 25, 2023

    In the world of web development, creating a great website is only half the battle. If you want people to find your site, you need to focus on SEO (Search Engine Optimization). SEO is the process of optimizing your website to rank higher in search engine results pages (SERPs) for specific keywords and phrases. Here are some factors software engineers should know about SEO optimization in web development.


  20. April 24, 2023

    React and Angular are two of the most popular JavaScript frameworks used for building complex web applications. While both have their own unique strengths and weaknesses, choosing between them can be a daunting task. In this post, we'll compare React and Angular and explore their key differences.


  21. April 20, 2023

    Recently I was working on a football league fixture application for a small project and came across an interesting problem - generating a fixture list for any number of teams. How does this look? In each round, which is a group of fixtures containing all (or almost all) of the teams, teams face off against each other. No team can appear twice in the same round, as they more or less take place at the same time. I wanted to include a 'number of meetings' option into the configuration so that each team could face all other teams 1, 2, 3, etc number of times in the course of a single season. It's also customary to alternate between home and away fixtures where possible.


  22. April 19, 2023

    Getting started with web development is an exciting time. Whatever your motivation, learning the fundamentals of web development, which will later turn into software engineering, is an incredible feeling. When I started learning HTML and CSS, the ability to turn 'code' into actual elements on a simple web page felt like I had just learned how to build for the first time. The idea of creating something from nothing is like nothing else I've experienced and soon I became addicted. But, where should you actually start when taking that very first step?


  23. April 13, 2023

    One thing that struck me as a junior developer when I began my career was that I didn't really understand what software developers did on a day-to-day basis. While many coding courses teach you about the hard skills you need to make websites and web applications, like building a page with HTML, styling it with CSS, adding functionality with JavaScript and so on and so forth, there often isn't a whole lot of information about what you'll be doing once you land your first job.


  24. April 05, 2023

    One of the most asked questions from new or junior developers is "what technologies should I learn?"


    From the beginning of my career in tech, I haven't really had a huge choice regarding which technologies to learn. In my first professional role as a frontend developer, I used what I knew, namely HTML, SASS and jQuery. There was no scope for using a framework like React (they don't integrate well with the Typo3 CMS), and I wasn't even allowed to use Bootstrap or a CSS framework for the same reason.


  25. March 30, 2023

    I know many software developers. They all have unique journeys. Many studied Computer Science or similar at university and began to work while still studying, getting their first experience through internships or at summer jobs between academic years. They took what I consider to be the traditional path to professional software development. My story is a little different, but probably quite familiar to many of today's developers.


  26. March 21, 2023

    If you're new here, welcome to my blog. As a developer, I felt like I often lacked an outlet for many of the thoughts and learnings I have, so adding a blog onto my existing site seemed like a sensible approach to remedy this problem.