There are 2 terms you will hear a lot in programming, client-side and server-side rendering. Many people talk about it, but it can be a bit confusing for beginners. Especially, the server-side rendering.| Mensur Duraković
A blog for software engineers, sharing tips, tricks, and best practices for writing clean, maintainable code and building great software while also honing essential soft skills| Mensur Duraković
I started my first software engineering job as a student in my last college year, in August 2010. Years passed by, and since the 7th year of my work, I have always wanted to write this article. Today is August 2025, which marks 10 years of my professional journey. As| Mensur Duraković
When making your React application accessible in multiple languages, i18next and its React companion library react-i18next offer a very robust set of features and tools. The libraries work together very well to offer specialized React hooks and components that allow internationalization simply and effectively. In this article, I will discuss| Mensur Duraković
I've worked in startups, midsize companies, and big corporations. Through my experience, I realized that technical skills are just one part of what makes a great engineer. The human element - how engineers approach problems, interact with team members, handle pressure, and maintain professional growth - often determines their true| Mensur Duraković
Every software engineer hits that familiar barrier. You've mastered your daily tasks, learned the codebase, and become a reliable team member. Yet something's missing. That nagging feeling that you could be doing more, achieving more, and growing faster. I recently had this exact conversation with a friend who was struggling| Mensur Duraković
Many years ago I played League of Legends for about 2-3 years. If you have ever played it as well, you know that there is a champion called Caitlyn. Caitlyn is straightforward to play but hard to master. You need to use her abilities aggressively early in the game otherwise| Mensur Duraković
As a junior engineer, I had that classic arrogance many of us start with - spitting at any code I hadn't written myself. I'd scroll through the codebase, commenting about the "idiots" who'd created this "legacy mess" I now had| Mensur Duraković
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| Mensur Duraković
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| Mensur Duraković
Let's say we're building an employee profile page. When someone visits a profile, three key things need to happen: We need to grab their data from our backend (things like name, bio, profile pic) While that data is loading, we should show a nice loading spinner| Mensur Duraković
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| Mensur Duraković
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| Mensur Duraković
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| Mensur Duraković
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| Mensur Duraković
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| Mensur Duraković
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,| Mensur Duraković
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| Mensur Duraković
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| Mensur Duraković
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| Mensur Duraković
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| Mensur Duraković
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.| Mensur Duraković
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| Mensur Duraković
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.| Mensur Duraković
Last weekend I had a chance to talk with some students who just got their degree. They are pursuing their first software engineer job. In conversation with them, I learned that they have a pretty wrong perception of this job. This is because the reality for these new kids is so skewed.| Mensur Duraković
I sometimes get asked about the software, hardware, and tools I use, so here is the full list. Hardware * Coding laptop - M4 MacBook 14" 2024 * Keyboard - Das Keyboard 4Q * Mouse - MX Master 3S * Monitor - LG 27UL850 Accessories * Laptop stand - Roost V3 * Glasses - Gunnar Optiks| Mensur Duraković