JManc 2024

tl;dr Great day, great people, great discussions and great team of dis-organisers! Whoever comes are the right people! Thanks to all who attended, it’s down to each and every one of you that JManc Unconference 2024 was a success! See you next year! 😀 intro In January this year we decided to test the interest of the Manchester Java Community on whether they were up for another edition of the JManc Unconference.
Read more →

The story of a Java 17 native memory leak

Context When Java 17 was released in September we (the platform team at Auto Trader) were fairly quick to provide a new Docker base image to allow our developers to gain the benefits of the new goodness in the JDK available since Java 11, the previous LTS version. Over the course of a few years we’ve standardised the way the JVM is configured out of the box for any new applications that make use of the base image.
Read more →

Grow yourself through communities

I recently spoke at Devoxx UK about how you can grow, both personally and professionally, through being involved in communities. It was in the form of an Ignite talk which was great fun but I realised that there were a few slides that felt a little lightweight compared to others. Writing the talk up as a blog post will hopefully help me to fill out the lighter parts, as well as maybe make it suitable for a longer length talk at some point in the future.
Read more →

Debugging a Jaeger memory issue

At Auto Trader UK we use Jaeger as the distributed tracing component within our Istio based service mesh to collect & visualise HTTP request traces for the services we run on our Delivery Platform (using GKE). We have around 400 services running in production and distributed tracing provides a lot of value for us when debugging problems and understanding behaviour across the system. At a high level, Jaeger consists of the following components:
Read more →

Discovering Test Doubles

I wrote most of the content for this post well over a year ago whilst working for Auto Trader. When I joined the company I landed in a team that was pretty unique compared to any I’d worked in before. The focus on quality and technical excellence was very high, there was a real focus on collaboration and I really started to get a feel for what it might be like in an XP team.
Read more →

JAlba 2019

On the morning of 23rd May 2019 a group of Java enthusiasts from around the world converged on the historic Scottish city of Edinburgh for the 2nd edition of JAlba Unconference. For the 2nd time, JAlba did not dissappoint! JAlba is a special kind of conference that follows the open space format. After attending JCrete in 2016, this quickly became my favourite kind of conference, and with JAlba being closer to home it’s an event that would be rude to miss.
Read more →

My thoughts on software development

Around the beginning of this year as I was transitioning between jobs I decided to start writing down my views on software development. The majority of the ideas, approaches, principles and values in here are things I’ve learned about, experienced or simply formed an opinion on over the last 5 years or so. This post is basically a dump of those thoughts. There’s likely nothing new here - I’ve learnt all I know from the amazing people I’ve worked with, consuming many books & videos (both software related and not), attending conferences and simply engaging with the many talented people in the various tech communities I’m involved with such as the Manchester Java Community.
Read more →

A year with the Manchester Java Community

Following JCrete in the summer of 2016 I returned inspired by the people I had met and highly motivated to become more involved in the local tech community. This led me to attend more events such as XP Manchester and the Manchester Java Community (MJC). I also offered to speak at a future MJC event if they would be open to it. In October 2016 I did my first (and only so far) public tech talk for the MJC.
Read more →

Git aliases

Git aliases are a cool feature. With a little config you can power up your Git command line. Here a few I have configured that make my day-to-day use of Git much nicer. status This alias saves me typing a few characters (I’m lazy): alias.st=git status I can then save my fingers some effort by writing git st to quickly check the status of repo. log I have the following alias configured that I use in place of the standard git log command:
Read more →

Reading a file in Java 8

I always forget how to read the contents of a file, here’s the simplest way I’ve come across. import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; public static void main(String[] args) throws IOException { List<String> content = Files.readAllLines(Paths.get("input.txt")); } There are other variants of Files.readAllLines such as Files.readAllBytes etc. Also, if it’s a Stream you’re after then use Files.lines, but don’t forget to close the stream (thanks Tim Yates!).
Read more →