My Current Focus
Since a few years ago, I’ve been trying to apply my skills and knowledge to the real world. What it means is, I’m making attempts to find problems that touch me and that people I can empathize with have—and trying to build a profitable online business around some of them.
Alongside this main track, I am trying to be helpful and inspirational. I share things I build and write about my experiences at work, in learning and life with software engineers and internet entrepreneurs.
This site is my main platform, but I also participate in other communities and publish stuff on the Internet.
As you may tell from my current occupation, I have not fully succeeded with becoming an entrepreneur yet—mostly due to the fact that it’s hard to switch gears once you’ve got such a momentum in career. It’s been about 15 years for me in the profession after all.
Nonetheless, achieving personal freedom is the main driving force for me, and I believe that building and scaling a business around something I care about is the way to go in the long term. Not working 9-to-5 and retire puzzled about what all of these efforts were for.
Follow my journey on Twitter to be the first to know about my thoughts and projects.
I've been paid for doing software engineering for more than a decade, although this isn’t the only thing that I am interested in.
In fact, it’s nowadays maybe the last thing I am actively learning about because in order to build a business, or succeed at a startup (corporate jobs aren’t my thing at all), you need a much broader set of skills than just programming.
My personal projects and job require particular skills and knowledge—some of which I even have to some extent. I know and learn ways of building robust software systems, have a solid grasp of computer science fundamentals, as well as basic understanding of data science and statistics to be able to perform an experiment or study and conclude that it’s statistically insignificant 😜
Most importantly, after being a professional programmer for many years, I’ve developed an intuition towards understanding what a good application design and robust codebases are like.
If you like the look and feel of this site and my other projects, you may conclude I am good at visual and interaction design too. I am definitely not bad at it—and surely, not exceptional either.
Could I Be of Any Help to You?
Depending on what you do and what your goals are, I may or may not be able to help.
Participating in Start-ups
If you’re looking for a technical and product-minded co-founder for your startup, this is something I may help with. Given that I'm trying to excel at both building systems on the web and doing this for a worthwhile cause, I'll be glad to help you validating ideas and building prototypes to prove they’re useful for someone else.
✅ I am available to help you with a startup. Contact me at
[my-first-name] at [this-site's domain] or via LinkedIn.
Coaching Software Engineers
As an engineer who's got accepted to many notable international companies, I am glad to help with coaching you on how to steer your career in the direction you'd like it to go and pass interviews.
This includes everything from understanding what you like and want to the interview preparation: coding assignments, spoken, and other types of interviews.
✅ I am available to help you with your career. Contact me at
[my-first-name] at [this-site's domain] or on Twitter.
Consulting Software Companies
Have you got a project or team you need help with? I may contribute to your success using my extensive experience of building and maintaining systems and processes, as well as establishing a working team culture.
🚫 Currently, I am not available for hire as a consultant.
How I Learn and Work
Not sure about you, but I was never good at memorizing things. I learn by building things and this is the only approach that’s both working and enjoyable to me.
Ultimately, I feel the best when I work on a project of limited scope for a fairly long sprint (weeks to couple months long to be more specific) and then rest and reflect on the results. Then do it over again until some meaningful result is reached.
It’s useful to look at things by contradiction when you describe them. What I am definitely not good at, is monotonous repetitive work with no end in sight. Also large teams and companies aren’t my thing, which has been the most frequent reason for me to leave some of the companies I worked for.
I love books and adore the idea of Antilibrary by Nassim Taleb (describing Umberto Eco):
The library should contain as much of what you don’t know as your financial means, mortgage rates and the currently tight real-estate market allows you to put there. You will accumulate more knowledge and more books as you grow older, and the growing number of unread books on the shelves will look at you menancingly. Indeed, the more you know, the larger the rows of unread books. Let us call this collection of unread books an antilibrary.
Unfortunately, I only have about a couple hundred books yet—not 30 thousands—but I hoard them as crazy whenever I can.
Top-down approach to learning, from understanding high-level concepts to learning specifics, is the one I usually take.
I enjoy modeling the world and its aspects by looking at things from a distance. I do understand the importance of knowing details and operating at the low level and usually am quite detail-orientated, although this isn’t something I truly enjoy doing. For me, doing the right thing is much better than doing something in a right way.
Sometimes ideas and models I come up with are small enough to be understandable and internally consistent. Much more rarely, they’re useful and helpful. In such cases, I try to share what I know with the readers of my website and on the Internet. Or build products around them. Or both.
Things I am currently learning & practicing
- Understanding and managing myself to feel right and be productive
- Bootstrapping internet businesses
- Winning people’s attention by doing things that help them
- Promoting my projects and writing texts about them
- Building robust systems operating on the web, including back-end and front-end engineering
What I Know and Use
Here should go a large list of different keywords such as React, Python, PostgreSQL, analytics, managing teams, etc.—but I think it’s mostly useless unless you want to offer me a job.
In case you want to hire me, assuming I am open for a new employment, which I am most likely not, better have a look at my previous experience 😎
In any other case, you should know that over the past 15 years I’ve used lots of existing web technologies. Even though, learning a framework or library has never been my main focus. I prefer building things that are useful in a lean way that assumes I don't understand many aspects of what's going on over getting lost in the tech.
I am a full-stack developer, and my skills span over a large area—from marketing and product development to the actual software engineering with its low-level activities such as writing code and tests, doing code reviews, fighting regressions and bugs, and all that.
I use Mac and mostly enjoy it, as well as various distributions of Linux for my servers. The languages I use most are TypeScript and Python, but I really miss strong static typing—so the next thing I build may be written in Go or some other simple and fast compiled language. Most likely it won’t be in C++ or Rust though.
As for platforms, I used to hate the web for its early quirks but nowadays I mostly love it. I think the concept of having a direct link to any resource is really powerful, as well as the ubiquitousness of it is. You only need a browser to access anything on the web—just think about it.
I believe that ideally, the web should be open and distributed, not centralized and censored as it is in many ways now.
- Sourcegraph, November 2021 — present
- Hook, June 2021 — November 2021
- Facebook, February 2020 — June 2021
- Toptal, April 2018 — February 2020
- Klarna, November 2017 — April 2018
- Yandex, March 2014 — March 2017
And a few other places before that—overall, employed full-time with only short breaks since 2007.
Interestingly enough, in 2017, I left my job at Yandex to make a leap of faith. I went to the US to study English for half a year, sort of a sabbatical. It has paid off greatly—I will tell the story one day.
I was too lazy to even copy the detailed descriptions of what I've done at these companies from the previous version of the site — so have a look at my LinkedIn profile or come back later. I promise to update this section as soon as I can.
How It All Started
Wow, you made it so far! 🥳
When I was about 6 years old, my family got a Cyrix 5x86 based PC with 8 megs or RAM and a 250 Mb HDD. And a 3.44” floppy drive. No sound card, no CD drive, nothing. And all this was instead a Nintendo console I dreamt about. You can imagine how upset I was.
However, after failing hard levels of Heretic and Doom 2, I got successful at making the computer fail. Formatting the hard drive from the CMOS setup, removing win.exe, and stuff like that. I started learning about hardware while making attempts to upgrade the old machine so that it could run modern games. Fun times.
By the time I turned 10, I was already programming. First, creating a text-based adventure game using DOS batch files (never finished it), then QuickBasic, and eventually the king of all languages—C. I believe I used Borland C for DOS, but I don’t remember this well enough. Of course, my C/C++ projects were mostly for fun but I once built a hairy cross-platform UI with Qt in C++ and multi-threading so that the UX is decent (this is what browsers do for you behind the scenes). And even got paid for it!
I hardly understood anything well enough back then but was deeply fascinated by computers and especially the fact that I was knowing something that my peers had no idea about.
Fun fact: I never thought I’d become a professional programmer. Instead, I wanted to be a hacker, smart and rich. Being frank with you, I still do. At least to be smart and rich.