Changes, Challenges And Resilience: Looking Back at 2024

Changes, Challenges And Resilience: Looking Back at 2024
Photo by Danil Aksenov / Unsplash

As another year draws to a close, I find myself reflecting on what has been one of the most transformative periods of my life.

While 2024 brought its share of challenges, it also delivered meaningful personal and professional progress that I'll carry forward into the new year.

One of my proudest achievements this year was maintaining a consistent writing practice.

I published 24 articles, exploring topics that are interesting to me and hopefully providing value to my students and readers.

Here is the list of this year's articles:

Productivity killers and boosters for software engineers
I have to admit that the first working week after the Christmas and New Year holidays is the hardest. You are rusty, slowly getting into shape for work, and less productive than usual. The first week after the holidays you feel like Gandalf: So, I decided to write something about
What is CORS? 5-minute explanation
You coded a backend and now you want to connect your frontend app to your backend, but then you get this weird error: What the hell is CORS? CORS is an abbreviation for “Cross-Origin Resource Sharing”. This is a mechanism enabling a website at one URL to request data from
Easy Peasy? When Easy Becomes Complex and How to Tackle It
Have you ever been in a situation where you thought that task would be easy peasy but it turned out different? I remember once I got the task to fix some warning messages in our React Native app. It was a warning caused by the web view library we used.
What is CDN and how does it work?
CDN (Content Delivery Network) is a network of servers. Those servers are spread across different geographical locations. CDN servers act as a middleman between the origin server, where your application is hosted, and the clients who send requests to your server. Imagine clients are sending requests to your server hosted
How to detect clicks on any element on the React page?
React is very flexible with event listeners. You can use: * clicks events when a mouse click event occurs, * mouse over events when the mouse pointer moves over an element. * scroll events when the user scrolls in an element, * keydown events when a keyboard key is pressed., * change events when the
What is hydration and why it’s important?
Staying well-hydrated is super important for your body. Drinking lots of water keeps your body running smoothly and helps it do its job properly. Water in our bodies is crucial for lots of important stuff. It helps our blood carry important stuff like glucose and oxygen to our cells. It
How to scale Node.js applications?
To understand the scaling of Node.js applications, we first need to understand what problem scaling is solving. You know that Node.js is single-threaded, it has its main thread. So instead of serving every incoming request to the server on a separate thread, it serves every request through the
Step-by-Step Guide: Creating Selectable Image Sections in React
Knowledge of basic image editing is one of the best nice-to-have skills as a software engineer, especially in the frontend domain. In specific situations, you will work with vectors and other image types where this knowledge pays off. A couple of weeks ago I had to implement a React component
Clean code - React API calls
React is a library that is easy to use but hard to master. It offers flexibility to software engineers to structure their projects in any way they want. This can sometimes be a double-edged sword. In almost every React project you need to make some API calls to fetch data
React coupling, decoupling and composition explained
When working in React, you want to separate logic from your components, reuse those components as much as possible, and do that by writing as little code as possible. This is easier said than done, but knowing how to separate business logic code from your presentation code is extremely important.
Git guide I wish I had when I was a student
When I was a student, we learned nothing about Git in college. Instead, we uploaded our coding practices to Moodle. Back in the days of my first job as a junior software engineer, I didn’t know a single Git command or how it worked. I had to learn it all
What Is Debouncing?
Let me tell you a story. Years ago, I was holding an exam for my students. The exam was a task in JavaScript where they needed to implement a search input that would display songs returned from Apple’s iTunes API endpoint. I prepared everything for them and they started coding.
3 ways to optimize conditional rendering in React
In this short article, we will talk about optimizing conditional rendering code in React and some general good practices. Through the years I have seen some bad examples that make your code buggy, but also unreadable. So we can start with first good practice. Avoid unnecessary ternary operators Let’s say
What Are JavaScript Generators?
One of the less-known, but cool JavaScript features are generators. Added in ES6, generators provide a different method for handling loops and asynchronous tasks. You can think of generators as functions with a pause button. They yield values on demand, unlike the normal functions that run to completion. This unique
The Senior Engineer Illusion: What I Thought vs. What I Learned
As a junior engineer, I had some wild ideas about senior engineers. I thought they were like coding superheroes - able to debug any issue, always knowing the next step, and walking tech encyclopedias. I used to think that leveling up your career to senior would grant you unlimited knowledge
All About Events - Event Bubbling, Propagation and Delegation
In the world of programming, events serve as catalysts for action. Like many languages, JavaScript leverages this concept to execute code in response to specific triggers. Whether a user interaction or a system occurrence, events provide a mechanism to initiate predetermined processes. While the implementation may differ between client-side and
Beyond the Hype: My Honest Reflections on Gen AI
It’s been more than a year since the AI crazy hype and now that the dust has settled, we are seeing some clear signs where AI is. We witnessed smart chat platforms like ChatGPT and Claude, services for generating images and videos like DALL-E and Midjourney, GitHub Copilot, writing assistants,
JSX Evolved: The React Server Components
React’s journey over the last ten years has been nothing short of revolutionary. This popular library has been in a constant state of growth, with each new version bringing fresh ideas and performance boosts. Some updates have even changed how we think about building web applications. The latest big shake-up
From Stylish to Sluggish: The Hidden Costs of CSS-in-JS
If you’ve used modern web frameworks like React, Angular, or Vue, you’ve probably encountered CSS-in-JS tools like Styled Components, Emotion CSS, or JSS. These tools let you write CSS using JavaScript, which can be handy. However, CSS-in-JS has a big drawback: it’s slower than regular CSS. This isn’t just an
Conquering the Digital FOMO
Back in ancient Greece, a well-known philosopher named Heraclitus said something that still rings true today: “The only constant in life is change.” Numerous software engineers find this statement deeply relatable. Imagine you’re a software engineer. You’ve just gotten comfortable with a particular set of tools and frameworks. You feel
Tailwind: Because Life’s Too Short for !important
CSS frameworks have become a hot topic in front-end development in recent years. Tailwind CSS has emerged as a noteworthy contender, separating the developer community from either love or hate for Tailwind. In this article, I will talk about the advantages of Tailwind CSS compared to traditional CSS, focusing on
Why is typeof null === ‘object’ in JavaScript?
In the mid-1990s, the web rapidly evolved, and the need for a more dynamic and interactive browsing experience became increasingly apparent. Netscape, the company behind the popular Mosaic web browser, recognized this shift and wanted to stay ahead of the curve. Brendan Eich was then a young programmer with a
Code Clarity: Why Every Function Needs One Job
Let’s say we’re building an employee profile page. When someone visits a profile, three key things need to happen: 1. We need to grab their data from our backend (things like name, bio, profile pic) 2. While that data is loading, we should show a nice loading spinner or skeleton
My New Favorite IDE: Cursor
In the world of AI-powered development tools, one question is currently a hot topic on tech forums and subreddits: AI-powered IDEs Like many skeptical software engineers, I initially brushed off Cursor IDE as just another AI coding tool. Introduced to it by a colleague in October 2023, but it just

According to analytics, the most popular article was The Senior Engineer Illusion: What I Thought vs. What I Learned.

Professional Evolution And Creating a Home

Apart from writing, this year marked a significant shift in my career journey as I started a new professional challenge.

Changing companies wasn't just about switching offices but pushing myself out of my comfort zone.

While the transition had its demanding moments, it has already proven to be a decision that aligned with my long-term goals.

Apart from my professional career, one of the year's major milestones was finally settling into my new flat.

Together with my girlfriend, we weathered the chaos of moving and slowly breathed life into our new space.

While others might find moving straightforward, it was extremely stressful for me and the process challenged me in unexpected ways.

Looking Forward to 2025

I won't sugarcoat it – 2024 tested me in ways I hadn't anticipated.

There were moments of doubt, stress, and uncertainty. Yet, looking back, I can see how each obstacle contributed to my individual progress.

As we enter into 2025, I will carry the lessons learned from the past year. While 2024 wasn't always smooth sailing, it shaped me in meaningful ways.

I'm grateful for the obstacles that made me more patient and wise, the changes that pushed me forward, and the accomplishments that reminded me of what I'm capable of.

Happy holidays!