Advent of Code - Day 5: Cafeteria

2025-12-05.png

As the forklifts break through the wall, the Elves are delighted to discover that there was a cafeteria on the other side after all.

-- Day 5 - Advent of Code 2025

Solution in Java

Full source can be found: in GitHub

Day 5 revolves around interpreting ranges of ingredient IDs and determining which IDs are considered fresh. The input is split into two logical sections: a list of inclusive ID ranges, followed by a list of individual ingredient IDs. Part one asks us to validate the individual IDs against the ranges, while part two focuses entirely on the ranges themselves.

[Read More]

Advent of Code - Day 4: Printing Department

2025-12-04.png

You ride the escalator down to the printing department. They’re clearly getting ready for Christmas; they have lots of large rolls of paper everywhere, and there’s even a massive printer in the corner (to handle the really big print jobs).

-- Day 4 - Advent of Code 2025

Solution in Java

Full source can be found: in GitHub

Day 4 of the Advent-style assignment takes us deep into the North Pole’s printing department. The challenge revolves around a grid filled with paper rolls, represented by @, and empty spaces, represented by .. Forklifts can only access certain rolls based on how crowded their surroundings are, and our job is to identify those rolls and then simulate their removal.

[Read More]

Advent of Code - Day 3: Lobby

2025-12-03.png

You descend a short staircase, enter the surprisingly vast lobby, and are quickly cleared by the security checkpoint. When you get to the main elevators, however, you discover that each one has a red light above it: they’re all offline.

“Sorry about that,” an Elf apologizes as she tinkers with a nearby control panel. “Some kind of electrical surge seems to have fried them. I’ll try to get them online soon.”

[Read More]

Advent of Code - Day 2: Gift Shop

2025-12-02.png

You get inside and take the elevator to its only other stop: the gift shop. “Thank you for visiting the North Pole!” gleefully exclaims a nearby sign. You aren’t sure who is even allowed to visit the North Pole, but you know you can access the lobby through here, and from there you can access the rest of the North Pole base.

-- Day 2 - Advent of Code 2025

[Read More]

Advent of Code - Day 1: Secret Entrance

2025-12-01.png

You arrive at the secret entrance to the North Pole base ready to start decorating. Unfortunately, the password seems to have been changed, so you can’t get in. A document taped to the wall helpfully explains:

“Due to new security protocols, the password is locked in the safe below. Please see the attached document for the new combination.”

-- Day 1 - Advent of Code 2025

Full source can be found: in GitHub

[Read More]

Automating Maven Releases with GitHub Actions: No More Manual Hassles! - Part 1

Manually releasing a Maven package is a hassle—updating versions, tagging commits, building artifacts, and pushing them to a package repository. What if you could automate all of this with a simple Git push?

With GitHub Actions, you can! In this guide, we’ll walk through setting up a workflow that automatically builds, versions, creates releases in GitHub—no manual steps required.

By the end, you’ll have a fully automated release pipeline that:
✅ Uses GitHub Actions to trigger releases
✅ Handles versioning and tagging seamlessly

[Read More]

Monitoring application performance with OpenTelemetry

In today’s fast-paced digital landscape, users expect applications to be fast, reliable, and seamless. As developers, we strive to meet these expectations, but how do we ensure that our applications perform optimally under the hood?

If you’ve ever struggled with understanding why your application’s response times spiked or where a request failed in a distributed system, you know how challenging it can be to pinpoint the root cause without proper tools. This is where OpenTelemetry comes in. OpenTelemetry is an open-source framework designed to collect, process, and export telemetry data (traces, metrics, and logs) from your application.

[Read More]

Advent of Code - Day 20: Race Condition

2024-12-20-generated.png

The Historians are quite pixelated again. This time, a massive, black building looms over you - you’re right outside the CPU!

While The Historians get to work, a nearby program sees that you’re idle and challenges you to a race. Apparently, you’ve arrived just in time for the frequently-held race condition festival!

-- Day 20 - Advent of Code 2024

Solution in Java

Full source can be found: in GitHub

Part 1

To represent each point in the grid of the assignment I created the GridPlace class. Which contains the value of the character in the grid as well as the distance from the start (as computed by the path taken).

[Read More]

Advent of Code - Day 19: Linen Layout

2024-12-19-generated.png

Today, The Historians take you up to the hot springs on Gear Island! Very suspiciously, absolutely nothing goes wrong as they begin their careful search of the vast field of helixes.

-- Day 19 - Advent of Code 2024

Solution in Java

Full source can be found: in GitHub

Part 1

The solution for part 1 today can be resolved by creating a regular expression of all allowed rugs (line 16) and then checking each line in the input to see if it matches.

[Read More]

Advent of Code - Day 18: RAM Run

2024-12-18-generated.png

You and The Historians look a lot more pixelated than you remember. You’re inside a computer at the North Pole!

-- Day 18 - Advent of Code 2024

Solution in Java

Full source can be found: in GitHub

Today the assignment involves yet another grid and pathfinding algorithm. So to read the input into memory I created this small method.

1public void readInput() {  
2    grid = new CharGrid(71, 71);
3    inputLoader.splitOnNewLine()  
4            .map(Point::of)  
5            .limit(1024)                        // limit of bytes to fall part1  
6            .forEach(point -> grid.set(point, '#'));  
7}

Part 1

Since the best solution is using the Dijkstra pathfinding algorithm I created a HistorianStep implementation of the Node<T> that is required by the algorithm.

[Read More]