Vladimir Klepov as a...
The systemic decay of tech hiring
Complaining about tech interviews is the favorite pastime of software engineers. We know they're...
22nd Jun 2026
Complaining about tech interviews is the favorite pastime of software engineers. We know they're broken, we've seen exactly how they're broken, but, despite a decade of collective hand-waving, we haven't fixed them. In fact, we haven't even understood why they're broken:...
Vladimir Klepov as a...
Growing my team 4x has been a pain. Can we do better?
My name is Vladimir, and I'm an engineering manager of a team building a banking app. Following the...
18th Apr 2024
My name is Vladimir, and I'm an engineering manager of a team building a banking app. Following the success of our core banking product, we've decided to expand to other financial services. In the last four months my team has grown 4x, going from a 4-person team to 4 teams...
Vladimir Klepov as a...
From engineer to manager: what I love, what I hate
It's been almost 2 years since I moved to a team lead role, then to a full-time engineering...
16th Feb 2024
It's been almost 2 years since I moved to a team lead role, then to a full-time engineering management position after the expansion of our team. I've been a front-end developer for 7 years before that, and initially I took the "advanced individual contributor" career track before...
Vladimir Klepov as a...
I conducted 60 interviews in 2 months — here's what I learned
It's hard to believe, but, starting mid-october 2023 I conducted 60 technical interviews and hired...
6th Jan 2024
It's hard to believe, but, starting mid-october 2023 I conducted 60 technical interviews and hired 10 people into our team. It's been extremely tiring: around 80 hours of active interviewing, plus writing interview reports, plus screening CVs and take-home assignments, plus...
Vladimir Klepov as a...
Svelte reactivity — an inside and out guide
I've been working with svelte exclusively for a year now, but I still manage to shoot myself in the...
22nd Apr 2023
I've been working with svelte exclusively for a year now, but I still manage to shoot myself in the foot every now and then when using reactive state. Some of the confusion is due to my prior experience with React, but some points are confusing on their own. Today, I dive into...
Vladimir Klepov as a...
How I made banditypes, the smallest TS validation library
I open-sourced banditypes — the smallest runtime validation library for TS / JS. It manages to fit...
2nd Mar 2023
I open-sourced banditypes — the smallest runtime validation library for TS / JS. It manages to fit all the basic functionality into an astounding 400 bytes. For reference, the popular zod and yup libraries are around 11KB, superstruct measures 1.8KB for the same set of...
Vladimir Klepov as a...
Ditch google analytics now: 7 open-source alternatives
I love writing, and I also love data. When starting my blog, I integrated Google Analytics — it's...
12th Feb 2023
I love writing, and I also love data. When starting my blog, I integrated Google Analytics — it's free, easy to set up (just drop a few tags on the page), and that's what I knew back then. I did not enjoy it being run by a big corporation, but I was too lazy to research the...
Vladimir Klepov as a...
Making sense of TypeScript using set theory
I've been working with TypeScript for a long long time. I think I'm not too bad at it. However, to...
23rd Jan 2023
I've been working with TypeScript for a long long time. I think I'm not too bad at it. However, to my despair, some low-level behaviors still confuse me:
Why does 0 | 1 extends 0 ? true : false evaluate to false?
I'm very ashamed, but I sometimes confuse "subtype" and...
Vladimir Klepov as a...
5 coding interview questions I hate
I’ve taken part in well over a hundred tech interviews now, on both sides. Some were fun, and some...
21st Mar 2022
I’ve taken part in well over a hundred tech interviews now, on both sides. Some were fun, and some were pure cringe. I’ve been asked if I have kids (supposedly, people with children won’t have time to job hop), and if “I bet my ass I cost that much”. Fun times.
But today I’d like...
Vladimir Klepov as a...
Using global memoization in React
When our React apps get slow, we usually turn to useMemo to avoid useless job on re-render. It’s a...
9th Feb 2022
When our React apps get slow, we usually turn to useMemo to avoid useless job on re-render. It’s a hammer that often works well, and makes it hard to shoot yourself in the foot. But useMemo is not a silver bullet — sometimes it just introduces more useless work instead of making...