I’ve spent 8+ years shipping web products in three very different environments. At IdoSell I built products from scratch with clients. At Allegro I worked at the scale of Poland’s largest e-commerce platform. At Tidio I own features on a real-time customer service SaaS, from the idea to monitoring in production.

My job titles say “frontend”, but I’ve written production backend code at every company (Node.js, PHP, Kotlin). I take responsibility for what I ship, including monitoring and performance. I decide based on data and A/B tests, and I can explain the trade-off between speed and quality.

I work AI-native: I build my own Claude Code skills and introduced spec-driven development across teams.

  • 20M+active buyers at Allegro

    300K+businesses on Tidio

    Products at scale

    Microservices, micro-frontends and real-time WebSockets, with decisions driven by data and A/B tests.

    Surveys platform
  • 20engineers in the guild I lead

    Technical leadership

    Tidio’s frontend guild is a cross-team group that drives technical initiatives and knowledge sharing. At Allegro and Tidio I’ve also mentored 7 engineers and run dozens of technical interviews.

    Frontend guild
  • 500→200 ms

    Performance

    INP at p75 for enterprise customers.

    INP case
  • 4 teams

    Ways of working

    Adopted the process changes I introduced in my team.

    Process changes
  • Full-stack

    Full ownership

    Production backend code at every company (Node.js, PHP, Kotlin), plus UI, API design, monitoring and performance.

  • From scratch

    New products

    A phone case configurator and a diet-planning app, from the first client conversation to production.

    IdoSell
  • AI-native

    AI in my workflow

    Custom Claude Code skills and spec-driven development rolled out across teams.

    • Tidio
    • Performance
    • React

    Cutting INP from 500 ms to 200 ms for enterprise customers

    Problem
    Enterprise customers operating at large scale found the app sluggish. Support agents perform hundreds of interactions a day, so every delay adds up.
    What I did
    I coordinated the work and contributed to it directly. We started by adding performance metrics, and the data showed the biggest problem was INP (Interaction to Next Paint), the Core Web Vital for responsiveness. Then came a series of improvements: rendering optimizations, list virtualization, handling high-frequency real-time events, data caching and code chunking. I added Reassure performance tests so regressions get caught before they ship.
    Result
    INP at p75 dropped from 500 ms to 200 ms. That moved the app from the edge of “poor” to Google’s “good” threshold.
    • Tidio
    • React
    • Cross-team coordination

    Redesigning the entire customer panel, rolled out safely

    Context
    The panel is Tidio’s core product. Customers use it to answer emails and live chats, configure Lyro (the AI agent that answers their own customers) and manage flows, workflows, settings and analytics.
    What I did
    I coordinated a cross-team redesign of the whole user interface to make it friendlier and more useful. We shipped it behind a feature flag with a gradual rollout, which let us catch small issues before the full release.
    Result
    The redesigned core product launched with only minor bugs, all fixed within days.
    • Allegro
    • Kotlin
    • Preact
    • Microservices
    • Micro-frontends

    Rebuilding the surveys platform across the stack

    Problem
    The surveys micro-frontend started at an internal hackathon and had become hard to evolve.
    What I did
    I showed the business what further development would cost, proposed a rewrite and delivered it with my team. Performance was a top priority, so we replaced React with Preact. I also built the backend in Kotlin: a microservice behind the back-office panel for managing surveys, and one that evaluates complex business rules to decide whether to show a survey and serves it as a JSON view over REST.
    Result
    Bundle size dropped by ~50%. According to the engineers working on it, the app also became easier to test and extend.
    • Allegro
    • Developer experience
    • Micro-frontends

    Dev tools for Allegro’s micro-frontend architecture

    Context
    Allegro’s pages are composed of many micro-frontends owned by different teams, so it’s hard to tell what you’re looking at.
    What I did
    I contributed to internal dev tools that overlay the production or dev version of the site with details for every component: its boundaries, owning team, analytics, version and more. Only employees can use them, over VPN.
    Result
    Made everyday work easier for hundreds of engineers across the company.
    • Tidio
    • Technical leadership

    Leading the frontend guild (20 engineers)

    On top of my product work, I coordinate technical initiatives across teams. I gather input from business stakeholders, engineering managers and engineers to set priorities, then plan the work, track progress and report results company-wide. I mostly coordinate, and I contribute directly to business-critical initiatives.

    • Monthly blameless hotfix reviews

      I created the template and host the sessions. Every review ends with action points, and we follow through on them.

    • Design system consistency

      Improved generic components and Storybook, and standardized flows for repeated actions like deleting an item.

    • Sentry improvements

      Automatic team assignment and custom grouping for recurring issues Sentry didn’t group on its own.

    • 10+ guild meetups

      Each one had at least two talks, mostly by people I encouraged to present.

    • Tidio
    • Ways of working

    Team process improvements adopted by 4 other teams

    I introduced a set of process changes in my own team first. They worked well enough that 4 other teams at Tidio adopted them.

    • Quarter-based sprints

      A tidied-up refinement and sprint backlog, with sprints numbered by quarter instead of “Sprint 54”.

    • Structured refinements

      Refinements grouped by topic with a ready list of action points. Every meeting ends with notes, conclusions and, when needed, action points.

    • Sprint Sheriff

      A rotating role: each sprint someone hosts the team’s meetings, keeps order and makes sure time is well spent. Everyone gets a turn at extra responsibility, which builds ownership.

    • Team tourism

      Temporary moves to another team with a clear goal, like a month helping build another module. The visitor brings their experience and takes back what works elsewhere.

    Read the case study on the Tidio blog
  1. Tidio

    Real-time customer service SaaS · 150 people · 300,000+ businesses

    • React
    • TypeScript
    • WebSockets
    • Node.js
    • PHP
    • Staff Frontend Software EngineerAug 2023 – present
    • Senior Frontend Software EngineerMay 2022 – Aug 2023

    I own features end to end on the core customer panel, including backend services and APIs in Node.js and PHP, and occasionally contribute to the React Native app. I lead the frontend guild of 20 engineers and coordinated the full panel redesign and the performance programme. I also run technical interviews and write detailed assessments of each candidate’s knowledge and skills, which help the team pick the strongest hires.

  2. Allegro

    Poland’s largest e-commerce platform · ~6,000 people · 20M+ active buyers

    • TypeScript
    • Preact
    • React
    • Kotlin
    • GraphQL
    • Frontend Software EngineerNov 2020 – May 2022

    I was the acting technical team leader for a team of 4 engineers: setting quarterly goals, coordinating cross-team projects and working with stakeholders and UX. For the surveys platform I built Kotlin microservices and a Preact micro-frontend. I also built the frontend of the chat widget customers use to contact support, again in Preact, and contributed to internal micro-frontend dev tools. I was on call for frontend and backend services (PagerDuty, Grafana). After each incident I wrote a report with action points to either tune false-positive alerts or keep real issues from happening again. I also ran technical interviews, each followed by a detailed candidate assessment.

  3. IdoSell

    E-commerce software

    • React
    • Redux
    • PHP
    • Full-Stack DeveloperApr 2020 – Sep 2020
    • Frontend DeveloperJul 2018 – Mar 2020

    I built apps from scratch, working directly with clients from scoping to production: a diet-planning app for nutritionists (PHP backend, React frontend), a phone case design generator and a furniture configurator.

Toolbox

Frontend
  • React
  • Preact
  • TypeScript
  • Next.js
  • Micro-frontends
  • WebSockets
  • Redux
  • Tailwind CSS
  • styled-components
  • Storybook
  • React Native
Backend
  • Node.js
  • PHP
  • Kotlin
  • REST
  • GraphQL
  • Kafka
  • Redis
  • MySQL
  • MongoDB
Testing
  • Jest
  • Playwright
  • Cypress
  • Reassure
  • Visual regression
Observability
  • Sentry
  • Grafana
  • Prometheus
  • Graphite
  • Micrometer
  • PagerDuty
AI
  • Claude Code
  • Custom skills
  • Spec-driven development
  • Cursor
Practices
  • Feature flags
  • A/B testing
  • Event Storming
  • Blameless post-mortems
  • Code review
  • Pair programming
  1. 01

    I fix what I see, and I stay open to better ideas.

    We validated API responses with Zod enums. When the backend added a new enum value, older versions of the mobile app crashed, and those versions live on users’ phones for a long time. I made the client resilient to unknown values, then gave a lightning talk on the problem and on keeping backward compatibility. In the discussion a colleague proposed a slightly better approach, and we went with that.

  2. 02

    I measure before I improve.

    Whether it’s a frontend, backend or process change, I start by adding a metric. When I worked on performance at Tidio, the metrics showed that responsiveness (INP) was the biggest problem, so that’s where we focused, and it paid off. When something is hard to measure, like developer experience, I use short surveys as a regular health check.

  3. 03

    I research before I recommend.

    Before a bigger decision I do the analysis and research, then come back with a recommended solution and its trade-offs, not just a list of options. That’s how the surveys rewrite at Allegro started: I showed the business what further development would cost and proposed a way forward.

  4. 04

    I own what I ship.

    I work across backend, frontend and testing at the level each task needs: unit, integration, E2E, visual regression and AI-driven manual testing. Feature flags, gradual rollouts and monitoring are part of shipping, not an afterthought.

  5. 05

    I share knowledge and help others grow.

    I’ve run 30+ workshops on frontend, backend and testing across IdoSell, Allegro and Tidio. At Tidio I organized 10+ guild meetups. Across Allegro and Tidio I’ve mentored 7 engineers.

  6. 06

    I give honest, constructive feedback.

    I’m a big fan of Radical Candor, and my copy has been lent out more times than I can count. Early, specific feedback, both positive and critical, is how people grow. No one should be surprised by a performance conversation.

Let's talk.

The best way to reach me is LinkedIn. I’m also on GitHub.