An introduction to four common diagrams that cover almost any scenario

Two people working on a diagram
Two people working on a diagram
Photo by Kaleidico on Unsplash.

It wasn’t until I started to work towards being promoted to a staff engineer that I added diagramming to my set of skills. It doesn’t matter whether you’re just starting your technical career or you’ve been an engineer for a while — it’s never too early or too late to start diagramming.

Since learning to diagram, I’ve lost count of the number of times a colleague has noted how much easier something was to understand thanks to the addition of a diagram.

When used correctly, they can be an exceptionally powerful communication tool. Similarly, a poor diagram can just lead…


Have you considered everything you need to?

Photo by Federico Respini on Unsplash

There’s no doubt that getting the chance to build a new service or repository from the ground up is exciting. However, all too often engineers get caught up in that excitement and forget some fundamental steps. Before writing any code, there are important decisions to make — making the wrong one at the outset could really hamper you in the future.

Every company is unique in the way they work, but all the considerations below are applicable to almost any company — if, for example, you’re not currently practising domain-driven design, now might be the time to give it a…


Streamline the code review process — for yourself and the reviewer

A smartphone homescreen with the text “Eat Sleep Code Repeat” displayed.
A smartphone homescreen with the text “Eat Sleep Code Repeat” displayed.
Photo by Roman Synkevych on Unsplash

You’re sitting looking at the pull-request (PR) creation page, have you done everything you can to make the PR a success?

Any changes you make at this stage aren’t going to be anything special in their own right. If you’re making big changes at this point, something has gone wrong earlier in the process.

However, these final steps are important — for the health of the code base, as well as for your colleagues’ opinions of you. …


Being a technical leader is challenging, especially at the beginning

Image of game pieces. Six on one side. One on the other.
Image of game pieces. Six on one side. One on the other.
Photo by Markus Spiske on Unsplash

When I was a senior engineer, looking to make the jump to a leadership position, I had no idea what additional skills I would need. I was convinced I was ready, but my line manager was not (and he was right!). It took me 12 months to upskill in some key areas and become capable of being a technical leader — here’s what I learnt during that process, and what I’ve learnt since my move into technical leadership.

I’ve now been a technical leader for a little over a year. The article is applicable to any role within technical leadership…


Let’s make the process enriching for the reviewer and reviewee

Wall art
Wall art
Photo by Tim Mossholder on Unsplash.

Code review is an important part of any development lifecycle, as it gives your team a chance to ensure that the requirements have been met by the pull request (PR) and that the code is of good quality.

It’s also an excellent chance for everyone to learn and improve, whether that involves a new method within the language or understanding a new concept. We’ll focus on this aspect of code review in today’s article.

I’ve learnt a lot from colleagues over the years, and a lot of that has come from code review. I personally enjoy reviewing code, and over…


Photo by Joshua Chun on Unsplash

In the context of writing code, a style guide details the conventions and styles that should be adhered to. It’s common for open source projects, and organisations, to have their own style guides — or adopt one, for example the Google Java Style guide. The style guide is usually enforced as part of the CI process using an automated tool, such as Rubocop if you are using Ruby.

In this article I’m going to introduce you to Spectral, an open source tool developed by Stoplight, that allows you to implement a style guide for your API (and, if you’re using…


Photo by Daniel McCullough on Unsplash

Deciding how best to construct a domain event can be difficult, and in this article, I’ll explain a method to determine what information should go into a domain event to make it useful.

What is a domain event?

A domain event is an announcement from an application that something has happened. It is broadcast, within your ecosystem, for anyone to listen to. Domain events do not specify which applications should take action; each application can decide whether it needs to take any action based on that particular domain event.

A comparable real-world example would be a market trader shouting out that there was a special…

Ashley Peacock

Staff Software Engineer & Solutions Architect

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store