The SOLID principles were the first software design concepts I ever studied and to this day they remain the most influential piece of…
One thing I’ve learned from all the consulting I’ve done is that rewrites rarely lead to anything good. Almost in all cases, when you have…
I dabbled in data science years ago but it’s just not my thing. The end product of creating a model is incredible, but long ago I conceded…
You don’t need design patterns or principles to build software. You can write everything in a single file that executes from top to bottom…
We don’t build web applications the same way we did a decade ago. We don’t think of pages, we think of components. We don’t pass data to the…
When I started my career, REST was at the peak of its adoption. It had become the de facto standard for designing web APIs with vast amounts…
The more information we have up front when we’re building a software product, the better it will come out. But I’ve only heard legends about…
I was more of a humanities person in high school. Didn’t do great in math and informatics, loved history and philosophy. So most people were…
When I sat down to write this I expected it to be a couple of short paragraphs. A few words about work, family, challenges, how much I’ve…
You’ve got an initial grasp of the domain, you’ve settled on a tech stack, and now your fingers twitch to start writing this complex feature…
Understanding our product’s domain is the first thing in our engineering checklist because it will help us identify the specific technical…
There’s this article that’s as old as the internet called Do Things, Tell People. It goes on about how success comes as a result of those…
So you have finally started working on this greenfield project! Or perhaps you just joined a new company or team? Maybe you got an…
A few years ago, keeping up with the JS ecosystem was my part-time job. I’d spend weekends trying out libraries and staying informed about…
My blog is something of a trophy case of mine. Like a hunter who hangs the antlers of a stag on their wall, every time I solve a technical…
Browsing through libraries is an enriching experience, but they’re too focused and lack the architectural depth that building an entire…
The big idea of building startups in the last two decades was idea validation. Ensure you’re on the right track before investing excessive…
React finally got better docs this year and right now they’re the best resource to learn the technology and its ecosystem. One of the…
Hooks got mixed responses when they were announced. I remember the miles-long GitHub thread explaining the new API and the avalanche of…
I spent over a year as a principal engineer in one of News UK’s platform teams where we were building libraries and tooling for the other…
Even though I’m very passionate about front-end development now, I started my career with different intentions. For the first few years, I…
Most of my articles reflect on things I’ve built in the past. Trying to make sense of it all, I share insights about a challenge mixed with…
I will spare you the pathos of how quickly time passes. But I will be overly emotional about how the last twelve months have changed me. I…
My grudge against the front-end community is that we’re too focused on improving low-level APIs and building new tools instead of thinking…
I’ve consistently underestimated the effects of tech debt. All the books and blog posts have branded its negative impact in my mind, but I…
I’ve been writing JavaScript on and off for nine years at the time of this writing. And if you’ve been close to a browser, chances are that…
Around ten years ago, businesses realized that building desktop applications was not a resource-effective way to go. You must create…
In early 2021 I set out to write Tao of React with nothing but raw ambition. I had finally decided to write a book, albeit a short one. So I…
After I read React’s code last month, I went on Twitter looking for recommendations about the next project to review here. There were some…
I’ve written a lot about software development, but I’ve been silent when it comes to testing. Quality assurance is not my strongest side and…
It’s daunting to even think about reading the code of a framework I’ve been using for years. I’ve always seen React as a black box that…
I haven’t written that much clean code in the last nine years. I’ve created features and entire products on my own. But looking at my code I…
When I’m exploring an unfamiliar codebase I start with one of its public APIs. In this case, it was , arguably the most widely used React…
In the summer of 2021, I worked on one of the most complex projects I’ve ever put my hands on - a game. Gaming was the spark that sent many…
I know my way around a React application or a REST API but when it comes to writing domain logic there is nothing to hold your hand anymore…
I can feel my stomach turning before an exam no matter how much I’ve studied for it. But it’s nothing compared to the wave of emotions that…
One of the main benefits of JavaScript is that it runs both in the browser and the server. As an engineer you need to master a single…
I learned to program in a bootcamp and together with all the introductory courses we had a brief lesson on high quality code. No matter how…
When I started programming there was a notion that front-end development is easy. At the time it was little more than arranging HTML…
When I was in high school, I would solve problems in math class, wondering when I would ever need to do this in life. Naturally, I was…
Few things have obsessed me throughout the years as much as programming. Maybe the only other activity that held such an important role in…
Another twelve months have slipped by. In recent years I can’t keep up with the calendar’s pace and I finally understand what my grandmother…
I am yet to meet a software developer or a construction worker who is satisfied with the job of the person before them. After more than…
When I first started dabbling in distributed systems, I realized that some things I would have to grasp only theoretically. I understood how…
I can’t even fathom how much code is shelled out on a daily basis. Despite the hot market, putting together a team to deliver your company’s…
The cruelest thing to ever happen in the software industry is the belief that engineers don’t understand and they don’t have to understand…
In the first years of my career, I was fascinated by building products. I could masterfully chain together libraries and integrate third…
I’ve always wanted to write a book. Not sure how those aspirations started, but when I look at the colorful spines, ordered neatly on the…
To get a deeper understanding of a concept we need to detach. To step away and find a new angle of observation. It’s surprising how much we…
I don’t have the traditional programmer’s background. I don’t have CS degree, didn’t do well in math and wasn’t interested in programming in…
What does it take to build a successful open source library? I imagined that most packages have complex structure, layers and abstractions…
I’ve been working with React since 2016 and still there isn’t a single best practice when it comes to application structure and design…
I think that one of the best ways to learn about building software is to explore other code bases. Nothing beats seeing how a successful…
We all started 2020 with the idea that it’s our year. In turned out it’s not. Everything was business as usual until March. Then Europe gets…
A company grows and their now legacy monolithic software doesn’t perform well. Engineers are complaining, features take long to release and…
Something that I was thinking about a lot when I first started working as a developer was why do we use all those complicated design…
After a long break from personal projects, the situation around the virus inspired me to build something on the side again. I’ll spare you…
Comments - a powerful feature of each programming language that we either abuse or avoid as the plague. Undoubtedly one of the everlasting…
The only constant thing about requirements is that they change. As engineers we need to translate the complicated patterns of the real world…
Proper software design is a challenge in which functions play a critical part. They are the fundamental building block that groups and…
Abstractions are used to hide broad and complex concepts behind a single idea which is easier to understand. We use them to remove the…
You join a new team and after a brief onboarding you are given your first task. It’s a simple one - you need to display an additional input…
A team of engineers are sitting in a conference room discussing a new service. They quickly decide on the API and storage. Availability…
The single thing that made me a better software engineer is understanding the concept of abstraction. To illustrate it, imagine this…
What do we mean when we say that something is complex? A system, a module, a class - they can all have that quality. When we talk about…
The choice between being a specialist or a generalist is debated by many engineers. Nowadays, the industry may need something in between…
I don’t remember when I found out about the timeless debate on tabs and spaces. I’m a self taught developer and I’ve missed some of the…
Technical debt - a tool used to negotiate a refactor for the mess you made 6 months ago. It is often mentioned in the company of other…
Ah, legacy code. Two words that can strike fear in the heart of any developer. Two words that if mentioned in front of your developer…
Software development is considered a field ruled by logic. Every decision we make is guided by rules that we can follow and understand…
When I sat down in January I had quite the ambitious goals of where I want to be personally, professionally and spiritually in December…
This is going to be one of those once upon a time articles so buckle up and prepare for a story. When I wrote my first lines of code I wasn…
You may be asking yourself if using TypeScript for a project is a worthwhile investment of your time. The hype around it is high…
When I started my first job I worked with PHP. We built WordPress projects - sites, ecommerce and the occasional plugin. After I did that…
In the scope of this article I will explain what a design system is, how it works and the benefits it provides even for small hobby projects…
In the beginning of each year we start looking back at what we accomplished in the previous one and what we didn’t. We look back at the…