Skip to content

Toruń, Poland

About

I'm a Computer Science student at Nicolaus Copernicus University in Toruń, specializing in artificial intelligence, and a developer with commercial experience in PHP/Symfony. What satisfies me most is getting a system to a state where it actually holds up - load, a bad connection, bad input - not just looking good in a demo.

Adam Dybcio

Toruń · open to work

Outside of commercial work I build my own projects, to practice things there's no room for in a typical take-home task: splitting a monolith into microservices with the Strangler Fig pattern (Ordered), wiring AI into an offline-first app (Unordered), or a few Flutter apps available publicly on my GitHub.

How I got here

  1. 10/2022 - 02/2026

    BEng in Computer Science

    Nicolaus Copernicus University in Toruń

    3rd place in a university team programming project - as team lead, I coordinated the work and delivered the winning solution, which earned a cash prize.

  2. 11/2025 - 02/2026

    PHP Developer, Iteo S.A. (Toruń)

    Commercial work

    Backend in PHP/Symfony: REST APIs, database integrations (Doctrine ORM, PostgreSQL, MySQL), tests (PHPUnit, Behat, PHPSpec), static analysis (PHPStan, Psalm), code review and deployments with the team.

  3. 03/2026 - present

    MSc in Computer Science (AI)

    Nicolaus Copernicus University in Toruń

    Artificial Intelligence specialization.

What I work on

Four areas that overlap in my work - backend rarely exists without automation, and AI integrations rarely without the mobile app that uses them.

AdamBackendJava, Spring, SymfonyAILLM, integrationsMobileFlutterAutomationn8n

What I value

I test before I call it a success

Ordered went through Gatling load tests on the same scenarios as the monolith before I called the microservices split a success. The result, not the claim, is the proof.

Offline and errors are a normal app state, not an exception

In Unordered and HabitForge, data has to survive a bad connection. I design for that from the start, not bolt error handling on at the end.

I understand the whole before I split it

I only started splitting the monolith into microservices once I could explain every part of the system - otherwise a split just moves the problem, it doesn't solve it.

Polish (native)English (B2/C1)