Diego Berrueta
  • About Me
  • Free Software
Navigation bar avatar

Software engineer, space enthusiast, hiker

  • @Before you set(it)Up again: the frequently unnecessary method in JUnit tests

    Posted on April 4, 2025

    JUnit is probably one of the most well-known Java libraries. It has been a staple of Java development almost as long as Java itself. According to Martin Fowler, JUnit was born in 1997, co-authored by Kent Beck and Erich Gamma during a long-distance flight, almost 30 years ago. [Read More]
    Tags:
    • java
    • testing
    • junit
  • Cross-version Java compilation

    Posted on December 29, 2024

    In its 30 years of life, the Java language has earned a reputation for being forward compatible. This means that code written for an older version of Java can be generally compiled and run on a newer version of the Java runtime. This characteristic of the language makes it very... [Read More]
    Tags:
    • java
    • version
    • javac
  • Avoid exceptions for control flow - the performance argument

    Posted on September 10, 2024

    It is widely accepted mantra that exceptions should not be used for control flow. The main arguments against that practice have to do with code structuring, pointing out that exceptions are not very different from “go-to” statements, which are considered harmful, and that even in languages that support exceptions there... [Read More]
    Tags:
    • java
    • exceptions
    • performance
  • Java URL class is broken

    Posted on September 2, 2024

    The Java programming language is about to turn 30 years old. It has been a widely successful language. One of the keys to its success, in particular in the enterprise world, is its commitment to backwards compatibility. If you take a piece of Java code written three decades ago, changes... [Read More]
    Tags:
    • java
    • url
    • dns
  • Are you leaking this?

    Posted on August 21, 2024

    Regarding memory management, Java is in general a much safer language than C or C++. However, it is still possible to get in trouble if you are not careful. One common pitfall is to leak the this reference from a constructor, which can produce strange behaviour, since the this reference... [Read More]
    Tags:
    • java
    • this
    • memory
    • constructor
  • Why I do not love Mockito annotations

    Posted on August 9, 2024

    Mockito is an open source mocking library for Java. I have been using Mockito for many years, and I am very grateful to the maintainers of this library for their hard work. Although the practice of mocking is a controversial topic in itself, I have found Mockito to be a... [Read More]
    Tags:
    • mockito
    • java
    • testing
    • annotations
  • Terminal setup

    Posted on December 25, 2023

    NOTE This is not a complete blogpost, just a collection of resources that I use to setup my Mac terminal. This document may be updated at anytime. [Read More]
    Tags:
    • mac
    • zsh
    • terminal
  • Connect HomeKit lights

    Posted on December 25, 2023

    I have a number of “smart lights” at home from 3 different vendors. I recently had to change to a new iPhone, and after restoring from a backup, some of my carefully setup lights stopped working in the Apple Home (HomeKit) application. The funny thing was the lights were still... [Read More]
    Tags:
    • mac
    • ios
    • homekit
    • smart
    • wifi
    • network
    • apple
  • LEGO trains distributed control system using Raspberry Pi, AWS and Trello

    Posted on August 26, 2023

    (This is a re-publish of the documentation of a project that I did in 2019. Please go to Bitbucket to find the source code.) [Read More]
    Tags:
    • lego
    • aws
    • raspberry-pi
    • lambda
    • python
    • trains
    • power-up
    • sensor
    • track
    • maker
  • Five Essential Techniques for Building Fault-tolerant Systems

    Posted on August 21, 2023

    In 2017 I delivered a talk at Atlassian’s AtlasCamp conference at Barcelona. The topic was how to build fault-tolerant systems. [Read More]
    Tags:
    • atlassian
    • resilience
    • reliability
    • fault-tolerance
    • talk
    • atlascamp
    • barcelona
    • circuit-breaker
    • conference
  • Using a custom apex domain with Github Pages

    Posted on August 20, 2023

    Yesterday I refreshed my website using Jekyll and Github Pages. Today I reconfigured it to be available under my berrueta.net domain. Previously I had instructed my DNS registrar to redirect the traffic from berrueta.net to berrueta.github.io, but I wanted to use the apex domain instead of Github’s. [Read More]
    Tags:
    • github
    • jekyll
    • dns
    • domain
    • gandi
  • Scaling towards a thousand microservices

    Posted on August 20, 2023

    In 2019 I prepared a talk about Atlassian’s journey into the world of microservices. At that time the company had around 1,000 microservices running in production, and I thought the story was worth sharing. [Read More]
    Tags:
    • atlassian
    • microservices
    • talk
    • uniovi
  • Refreshing my personal website with Github Pages and Jekyll

    Posted on August 19, 2023

    I created my first personal website around 1996 in the now defunct Geocities. Later I maintained a personal website in asturlinux.org, the local Linux user group that I co-founded. Then I moved to just blogging in blogpost.com and my personal website was no longer maintained. After many years of neglect,... [Read More]
    Tags:
    • jekyll
    • github
  • RSS
  • Email me
  • GitHub
  • LinkedIn

2025

Powered by Beautiful Jekyll