Check out my latest book: Technical Writing for Software Engineers - A Handbook

Dmitry Kudryavtsev

Senior Software Engineer / Tech Lead / Consultant

Hey, I’m Dmitry, a senior software engineer from Israel who is currently nomading the world. I have more than 12 years of professional experience in web development, as well as some experience in low level and game development. Apart from writing code, I write two blogs (this one and Jiko Kaizen). I give occasional talks, and mentor about software engineering.

My favorite languages are TypeScript and Rust, and favorite technologies are NodeJS and Astro. This blog is a platform to share my knowledge and experience as well as write about Software Industry, Software Engineering, and Productivity.

On the interweb, I’m known as @skwee357.

Want to turn your Tweets into LinkedIn Carousel images? Check out my tool.

Consider subscribing to my newsletter to stay updated when I publish new articles, as well as getting occasional curation of interesting news from the industry. Feel free to reach out to me or read more about me.

If you are interested in partnership, hiring me, or using my skills—please refer to my consulting page.

If you like my content, and have the financial ability, please support me on Patreon.

Dmitry Kudryavtsev

Latest Posts

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

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, just like in real life.

How to get into programming in 2023

It’s 2023 already, you’ve been a responsible individual and created a new year’s resolution. One of the items in your resolution is a career change to become a software engineer. So how do you start?

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

It's that time again. You come to your Toyota dealership to buy a new Toyota Corolla. You've been waiting to upgrade your old, fuel inefficient and slow model, with this year's new model. But the new model is more fuel inefficient! Wait! What?!

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

A key to a good API design is good control of what data your controllers or API end points accepts. Another important key to a good design — is that you can take a brief look at your API end point and immediately understand how your request should look.

The land of undocument react.js: The Context

A different approach for localizing react.js app

Howdy! I’ve heard you use ReactJS? Good! I also heard you want to localize your application? That’s great! Well proper localization is hard, there are many js libraries for client side localization as well as yahoo/react-intl that provides localized react components based on JavaScript Intl API.