← All work

case study · eos media s.r.o.

Floorball club platform

Role
Backend developer, one of four to five
When
2024 → 2025
  • PHP 8.3
  • Laravel 11
  • MariaDB
  • Docker
  • REST API

The situation

EOS is a SaaS platform for sports clubs, running in Czechia and Slovakia with Poland only just getting started. I already knew it from the other side — I played floorball, and my club ran on it, so I’d been a user long before I ever saw the code.

The codebase was the biggest I’d worked in and the best structured. Laravel 11 and PHP 8.3, with a large layer of the company’s own conventions on top of it. Every club had its own database and the whole platform ran as a large Docker project. Code review was hard in the way that’s good for you. Quality and precision weren’t negotiable, and writing the API documentation was part of finishing a task rather than something you got to later.

What I did

I came from Symfony. I’d been following the Laravel community for a while and liked how much of it is worked out in the open, so the move was deliberate — but I made it into a codebase that had its own framework sitting on top of the framework. There were concepts I worked with for months before I properly understood them. I understand them now. I didn’t then.

The team ran two-week Scrum sprints, split into frontend and backend, four to five developers on my side. It was the first job where a specification arrived written down and my only task was to implement it well. That sounds like the easier version. It wasn’t — every question about why something should work a particular way had an answer somewhere inside a system I hadn’t built.

It was also my first fully remote job. After a few months I started going into the office one day a week. Nobody asked me to; I was missing the reasoning behind decisions that never made it into a ticket, and sitting near people for a day fixed more of that than any amount of reading did.

How it went

I left after about ten months, and not because the work was bad. It was the best school I’ve had and I’m grateful for it — the people there were the kind you remember. I left because I wasn’t happy with what I was producing. Too much of that year went into struggling to write down things I didn’t yet understand well enough to write down. AI was barely anything at that point; Claude Code and Codex didn’t exist.

So I moved to a startup and took a much smaller Laravel API instead. The reasoning was that I wanted to build something from the beginning — a live product used by thousands of people, with the same kind of problems, but where I’d be the one deciding how it gets built rather than implementing decisions someone else had already made. I thought I’d learn more that way. I also thought I needed to fail at a few things first, and that turns out to be true.

What I’d do differently

I’d have gone into the office in the first week instead of after several months, and I’d have asked far more questions than I did. What I was short of wasn’t Laravel. It was context — why this codebase does things its own way — and that lived in conversations rather than in the repository.