Latest Posts
For the past few weeks I've been thinking about how hard it is to develop software.
Let's blame the dev who pressed "Deploy"
#2 post (38.4K views)
Following the CrowdStrike outage, I've stumbled upon an articles that claims that developers should have consequences. Do they?
The day of the blue screens of death
Earlier today, an update from CrowdStrike caused global outages in Windows powered machines. Among impacted industries are: medicare, healthcare, home-land security, aviation, and transportation.
Tips for improving your CV
Recently, I've seen a lot people online asking for CV improvement tips. I decided to share my knowledge in this article.
Why your team might be holding you back
A tale on why software engineering might not be a team sports after all, despite what eveyrone wants us to believe
xz backdoor
A malicious backdoor was discovered in xz library that implements LZMA compression.
xz, among many other places, is used, indirectly, in sshd.
My attempt to explain what happened.
The Curse of the Senior Software Engineer
#1 post (48.1K views)
While looking for a job recently, I stumbled upon an interesting phenomen that I consider to be a curse for senior software engineers.
Serving Astro with Rust
Featured post (9.4K views)
I wanted to turn one of my side projects into a statically generated website. But the backend was written in Rust. So I decided to combine them.
Rendering emails with Svelte
Join me on an adventure to build a superb email preview and rendering for MJML and handlebars using SvelteKit.
How to stay junior forever
A step by step guide for staying junior forever
The Bloat in Software Engineering
An evening rant about the unnecessary bloat in Software Engineering
I spent €200 on Google Ads so you won't have to
For the past month I was running a Google Ads campaign for the first time. In this article, I'll cover everything I learned by doing this.
Using AsciiDoc to write my two books
In the past six months, I wrote and self-published two books related to Software Engineering. Let me share with you the workflow and tools I used to do so.
6 lessons from building 6 projects, while nomading for 6 months
For the past 6 months, I've been nomading in Central America. During this time, I built 6 side projects. Here is everything I've learned from this incredible experience.
Web app localization. In Rust.
Doing localization is complicated. Many websites, even big ones, get it wrong. Let me share how I did it. In Rust of course.
Building a Web App in Rust
Featured post (5.8K views)
After more than 6 years of building web applications in NodeJS, I finally published one in Rust. Here is what I learned in the process.
Typescript Monorepo with NPM workspaces
Featured post (8.3K views)
During the development of my recent project, I decided to split some components to their own packages, and used npm workspaces for that.
On APIs and their responses
Since the dawn of the web, humans created CRUD APIs. And we were instructed that modification verbs should return the modified resource in response. But, should they?
On types and JavaScript drama
Earlier this week, the entire JavaScript community was in shambles over a controversial decision in a popular open-source project.
Own your content
For the past years, we've witnessed a rise of new type of social media platforms.
Platforms that compete for the ownership of your content.
And the attention of your consumers.
How to auto-generate OpenGraph images
OpenGraph metadata is an important part of your blog or website. It can affect whether users will open your website or not.
Why engineers should focus on writing
#3 post (30.8K views)
All engineers are good writers... of code. But I believe that in order to a become better engineer–you should improve your writing skills.
An Essay on Burnout
I denied burnout as a concept, until life decided to teach me the hard way. So here I am, burnt out. How did I get there?
The need for a more semantic web
The web has come a long way. From the early static pages, through the evolution of reactivity, and towards the biggest knowledge pool for all of humanity.
Inheritance, Composition, and everything in–between
There are many concepts in the OOP paradigm. Inheritance is the most known, and it allows us to model software as relations between objects.
How to get into programming in 2023
New year is a good time to create a resolution. What if your resolution is a career change to software engineering?
The missing ingredients from your monitoring alerts
There is one thing engineers hate the most—waking up at night and troubleshooting production incidents. What if I told you I know how to make it less painful?
Living side-by-side with an AI
2022 is, undoubtedly, the year of the AI. It started with DALL-E, then GitHub Copilot, and now—ChatGPT. AI is here to stay, whether you like it or not, and we ought to find a way to live with it.
Cursor based pagination
Traditional pagination existed for many years. But it’s not useful for platforms with huge amount of user generated content. Luckily, there is an alternative solution for such systems.
ChatGPT, AI, and the future of tech
Unless you’ve been living under a rock, you probably heard about OpenAI releasing ChatGPT for a free research preview.
How technology affects our day-to-day lives
During this time and age, we default to technological solution to every problem. Often times - without taking into considereation what effect those solutions might have on our day-to-day lives.
Why you should adopt Makefile in all of your projects
GNU Make. A software that is, most likely, older than you. It’s so simple, so standard, and so ignored. I’m here to provide a case in favor of make and Makefiles.
4 Ways to Minimize your Dependencies in Node.js
We all know the joke about how node_modules is the heaviest object in the universe.
Implementing Promisable setTimeout
setTimeout() is the most powerful execution control function. Sadly - it's not async. Lets turn it into one.
Legacy is where companies go to die
Legacy. The one word engineers cringe when they hear. Nobody wants to work with legacy code or legacy systems. And yet someone has to. Can we do something about it?
It's better to be (type)safe than sorry
Take a good look at the following function and try to understand what it's doing.
function do_magic(a, b) {
return a + b;
}
The Software Industry is Broken
The dire state of the software industry, leaves us with hopes for a better future. Why we ended up like this?
NodeJS Native Module vs WASM
In my previous post about [[supercharge-nodejs-with-rust|Native Rust Modules for NodeJS]], people asked me how neon bindings would compare to WASM. Let's check!
JetBrains Fleet Preview - First Impression
Last week JetBrains launched their new Fleet IDE and I've been lucky enough to get the Preview version. What do I think about it?
How to be a Great Technical Interviewer
The path to becoming a great technical interviewer is full of doubts, tough decisions, and self-discovery. But I believe every engineer should try to walk it.
Supercharge Your NodeJS With Rust
Node isn't the fastest framework out here. It's not the slowest either, v8 is doing wonders to its speed, but nevertheless, if we setup an unfair battle between Node and say Rust; Node will lose.
Wrap your gifts not your dependencies
We’ve all been there. Its time to introduce a new package / dependency to our code base, be it a HTTP request library, a logger or something else, and the question we ask ourselves “Should I wrap it?”
Context Switch - The only operation that kills productivity
In computing, a context switch is the process of storing the state of a process or of a thread, so that it can be restored and execution resumed from the same point later. This allows multiple processes to share a single CPU, and is an essential feature of a multitasking operating system.
— Wikipedia
React.JS Localization v0.2
In my last post I've discussed ReactJS localization. Now lets find the proper way to do localization.
Validating Requests With a Simple Middleware for Express
There are two aspects of good API design: (1) a control of what it accepts, and (2) taking a brief look will help you understand what it does.
The land of undocument react.js: The Context
A different approach for localizing react.js app
Using jquery/globalize to localize your React.js applications.