This year, I'm back to Go as I appraoch AoC with software craftsmanship in mind. My main goal is to complete both parts for the first 13 days. I'll also keep two practices in mind:
Test-Driven Development - rather than rely on numerous log statements and manual parsing, I'll write unit tests for each day and use them to iterate towards a solution.
Reusability - AoC puzzles often use the same handful of data structures and operations. I'll use Go generics and usecase-agnostic code to gradually build a library of convenient code.