
How to Get Promoted to Senior Developer — 7 Traits That Actually Matter
Clean code and IDE shortcuts aren't enough. Here are 7 specific traits that separate a true Senior from a developer with years of experience but a junior mindset.
8+ years of experience in React, Next.js, and TypeScript. I lead frontend architecture in production applications. I've also worked as a full-stack engineer on backend projects — Node.js, PostgreSQL, and headless CMS.
I work commercially as a Senior Frontend Engineer. I build web applications in React, Next.js, and TypeScript — but the frontend specialization isn't a hard line. When a project needs it, I take ownership of the database, the API, and CMS configuration.
My day-to-day is leading frontend architecture in Scrum teams. I talk to stakeholders about requirements, pick the architectural approach, and ship it to production. I build Design Systems, optimize performance, and set up testing practices.
Outside of client work, I mentor frontend developers, run code reviews, and write technical content on my blog and Instagram. I also build my own products, including a fullstack personal-finance app.
I work as a Senior Frontend Engineer in Scrum teams. I own the full lifecycle of a feature: refinement, architecture, implementation, and production monitoring.
I show up to refinements with the product manager and stakeholders to clarify requirements, surface technical constraints, and flag risks at the boundary with other teams. The more we resolve before implementation, the cheaper the changes are later.
Before implementation, I design the module structure, ownership boundaries, and conventions the team will keep using. Technology choices are documented and discussed: a library or pattern should be driven by the project's needs, not the author's preferences.
I deliver work that fits team standards: readable, tested, and ready for handover. If a feature needs changes in the API, database, or CMS, I handle them myself instead of blocking on another team. Code review is an equal part of the process — I review peers' work and ask for review on mine.
After release, I watch how the feature performs in production: Core Web Vitals, errors, and user feedback. Findings come back to the team as concrete tasks — refactoring, optimization, or architectural fixes in areas that proved hard to maintain.
Day-to-day frontend and fullstack work, tech leadership and performance, personal products, and mentoring outside my full-time role.
React, Next.js, TypeScript as my daily stack. State management, advanced component patterns, render optimization, REST/GraphQL integrations.
Node.js and Express for APIs, PostgreSQL with Prisma, Supabase for auth/storage, PayloadCMS and Contentful for content. End-to-end feature ownership.
Code review, testing standards, shared Design Systems used across multiple teams. Onboarding new developers to the project.
SSR strategy, code splitting, caching, data fetching. Data-heavy apps: real-time maps, analytics dashboards, complex business tables.
DailyBudget.pl — fullstack personal finance app with multi-tenancy, encryption, and AI receipt scanning. From concept to production.
1-on-1 mentoring in React and JavaScript. Technical content on blog and Instagram.
@dev.dawid — technical postsThe stack I use commercially and in my own projects.

Clean code and IDE shortcuts aren't enough. Here are 7 specific traits that separate a true Senior from a developer with years of experience but a junior mindset.
AI consistently enters various spheres of our lives. As someone who eagerly explores new technologies, I decided to fully utilize the possibilities of AI in my work and daily life. In this article, I will show you how I integrated AI into my daily activities to make them more efficient.

Discover the simplicity of text truncation in web applications using CSS. This post explains how to use the -webkit-line-clamp property to effectively limit content to a few lines with an elegant ellipsis addition. Ideal for developers seeking practical solutions in designing responsive user interfaces

In this post, I will introduce you to one of the lesser-known, but very useful React Hooks - useImperativeHandle. At first glance, its name may seem a bit daunting, but I guarantee that after reading this post everything will become clear.
The fastest way to reach me is LinkedIn or the contact form.