Daniel Antos profile picture

SOFTWARE DEVELOPMENT / ARCHITECTURE / TEAM

Driven by a deep passion for solving users’ problems while upholding technical excellence. I thrive on the collaborative spirit of programming, viewing it as a continuous team effort and an endless journey of improvement.

Daniel talking with attendees after the presentation.

GoLab 2024 - Collaborate on Architecture and Express It in Go

November 13, 2024 · 1 min
Comic: A person is paying attention to the meeting until they get interrupted by a phone notification.

Don't Put Your Phone on the Work Desk

My phone is the most distracting piece of equipment I have. In the pursuit of focus time at work, I started hiding and silencing it. This experiment has dramatically improved my productivity: I’m less distracted, I’m in the zone longer, and I have more motivation. I lost track of how many times I grabbed my phone to check something, only to find myself lost somewhere on Reddit. Receiving a funny meme during a meeting? Sometimes, it’s worth it, but often, it can wait (and is better savored after the meeting). Getting back to focus mode costs time, energy, and motivation - I don’t want to do it over and over again. ...

September 26, 2024 · 3 min
Terminal window asking if user wants to commit vendor folder.

Maybe You Should Commit Everything You Need to Run Your Code

I’ve been committing generated code and vendor folders for over a year. I am delighted with the overall simplification of continuous integration, building, and deploying flows. They all complete faster and more reliably. Teams are happier and more productive with these changes. Let me convince you to give it a try! If you had asked me a couple of years ago what I think about committing generated code or third-party dependencies, I would probably have hit you with a stick. Why would you add code that you can download with one command?! I’ve turned exactly 180° on that. ...

September 1, 2024 · 5 min
List of decision records.

Fostering Collaborative Architecture: Decision Records

Collaboration is the most essential part of the architecture. More people in the room will produce more alternatives, challenge each other, and end up with better results in the long run. It also doesn’t matter if we get it right when there is not enough buy-in. A collaborative nature should intertwine all stages: thinking, feedback, implementation, documentation, and reflection (which could lead to revision). Decision records helped me improve teamwork and transparency in these areas over the years. Documentation and historical context happen as a “side effect”. This method is so effective and lightweight that non-engineering departments in a company started using it independently, without any guidance. ...

March 14, 2024 · 9 min
Diagram: Employee module exposes salary to payroll and salary benchmarking modules.

Navigating Domain Corruption, Dependencies and Simplicity

Assuming we and our teams bought into domain-driven design, the next question is, how do we interact between modules? Giving access to domain entities sounds like a great idea, but it carries consequences. There is a good argument to be had for exposing entities. After all, we spend a lot of effort ensuring our code expresses our domain well. On top of that, we ensure data can’t get into an invalid state, and trying to do so returns a descriptive error. Why would we forfeit it? ...

February 25, 2024 · 6 min
Daniel finished his talk at GoLab

GoLab 2023 - Generating code in Go

November 20, 2023 · 1 min
Daniel with slides in the background

Goat Poznań - Beyond Unit Tests

October 5, 2023 · 1 min
Daniel with slides in the background

Goat Poznań - Generating code in Go

April 19, 2023 · 1 min