Several times I saw someone on LinkedIn post something along the lines of: Why won’t they hire me, a senior engineer with 15 years of experience, for a position that requires language X, but I’ve written in languages Y and Z — don’t they know a true software engineer can learn languages quickly on the job? I have attempted to learn and write...
Dmitrii Kovanikov writes posts about enterprise software development and functional programming, both entertaining and serious. I never used a functional programming language (such as Haskell or OCaml) at work, but several ideas from functional programming have become popular in mainstream general-purpose programming languages such as Swift...
The CI pipeline takes an hour to run and it’s getting longer every month. There are five slightly different implementations of the same thing in the codebase. The docs for the network module were last updated two major versions ago. The project has a few thousand warnings. “It is what it is.” The project you work on may not be as bad as this, but...
I like to find things out to add them to my mental intuitive decision-making framework. These “factoids” bring more data points and evidence to the surface to strengthen the result. The big “but” is while learning new facts is enjoyable, the result is not as much improved as I’d like to believe. While the knowledge-gathering activity is useful...
Writing, for me, is a process ripe for distraction. As William Zinsser said in “On Writing Well”: A writer will do anything to avoid the act of writing. I can testify from my newspaper days that the number of trips to the water cooler per reporter-hour far exceeds the body’s needs for fluids. Everyone deals with it differently. I like to...
I’ve read a couple of books by Pema Chödrön this year and it got me thinking that good coding is Buddhist coding. Hear me out. One of the core practices in Buddhism is staying in the present moment. In software development terms it would mean that the current snapshot of a codebase works how it is implemented, and your goal as a developer is to...
Before starting “Million Dollar Weekend” (MDW going forward) I thought it would be similar to other business books: a lot of fluff and a couple of takeaways. There is nothing inherently wrong with that, it’s a proven formula, and if you don’t like the fluff either find a summary (no shortage of them for any popular book) or (my solution) just...
We tech people love our domains. A domain is your stake in the world, a physical token of something that might exist, an exciting project waiting to be developed. Cool domains are cool. Buying a new domain for an idea you have is nice, but what I like even more is to look through expired domains. I find it romantic in a way: someone had an idea,...
I came across a post on LinkedIn where the author said there was a lot of fluff in many software and business books, however some books were tiny and useful. People in the comments made a case that it could be good for tech books to be on the longer side. On more pages they could give more examples and you would become more familiar with the...
Welcome to the first development log of Hayaku, attempt number six! (I explain why it’s the sixth attempt in my post on the history of Hayaku.) Half the game jam time is past, and while the project is nowhere near releasable, it’s playable and in much better shape than it has ever been over the past six years. To start, check out this video of me...
If you want to do deep work, you need to reach a state of deep focus. You can get halfway there by eliminating distractions. A typical modern workplace in “digital”, however, is what I call a high distraction environment — the opposite of what is required to do great focused work. The company encourages collaboration by expecting you to be...
I haven’t done much I can share since the last devlog back in March. I’m working on dynamically suggesting words based on your ability and that proved to be a non-straightforward algorithm. I’ve made some progress but it’s not ready to show yet, sorry!
Hayaku is my longest-suffering project by far. Most, I stop working on after a couple of weeks; some, months. Yet I’m starting to work on Hayaku again six years after I came up with the idea. At the time of writing (June 2024), I haven’t touched the project in two years. Even that has been a half-hearted attempt at revival, and actually I haven’t...
After the rush to get the first playtest demo out, I spent the first two weeks of February writing some overdue posts on what got me into keyboards, what was interesting about touch typing and how getting away from the keyboard and writing by hand could help move the side projects along: Don’t spill tea on your keyboard (Re)learning touch typing...
In the past few months I made good progress on my side projects (DDPub, Typingvania) compared to the previous period of drought. What changed? I started writing about them by hand. (Every journal is 140 A4 pages and I’m halfway through my third.) I’ve been following a practice called “morning pages” created by Julia Cameron. I learned about it by...
Jump directly to “How did I get started with Godot?” if you don’t care about me and just want the info. At the end of 2023 I worked on DDPub, the publishing engine that runs this and several of my other websites. (I just noticed I didn’t really write anything about it since I put it in production…) While it was a tool I needed, it lacked public...
Previous: “Don’t spill tea on your keyboard.” With the new ortholinear keyboard it was evident that I needed to relearn touch typing, because the rows were not offset against each other and there was now a space between QWERT and YUIOP. I set a baseline on a regular tenkeyless keyboard and typed at a speed that felt “fast” to me and I did not...
Almost exactly a year ago in early February 2023 I managed to finally kill my main keyboard that I had since 2014, a Noppoo Nano 75-S. It had Cherry MX Red switches and was one of the cheapest mechanical keyboards I could find at the time because I wanted to “try” one before committing to something better and more expensive like a Matias Ergo...
In January 2024 I picked up Godot for the first time and started working on a typing game project. I didn’t yet have a name and simply called it “type2.” The idea has been brewing for a while because after doing some typing practice on a new keyboard last year I wasn’t happy with the options I had in the typing trainers. They all either had a set...
Advent of Code is a collection of delightful (or infuriating—depending on how you look at them) programming puzzles. A new set is released every year on December 1st by the creator Eric Wastl. The puzzles can be done in any programming language or even with pen and paper, because the answer is always one line of text (usually a large number)....
The “curse of knowledge” is a common term when we hear about teaching beginners. The experts expect the newcomers to the field to know way more than they actually do. The professionals have forgotten what it’s like to be new. To have the curse of knowledge, then, is to consider simple what many people find hard or impenetrable. You’re stricken...
I followed my own advice from “How to get back into C++” and read two books from the list, Bjarne Stroustrup’s “A Tour of C++” and Jason Turner’s “C++ Best Practices.” Both are short (256 and 130 pages) and concrete. I managed to read both in a day. I list both of these books together since they complement each other well: one shows what is...
Historically all my side projects are in different languages since I either learn a new language to do a side project, or that language is particularly suitable for the task. Apple Swift has been my main working language for many years—unfortunately it isn’t useful outside the Apple ecosystem. Besides, learning new languages is fun. In the recent...
SwiftUI is Apple’s new(ish) “cross-platform” UI framework becoming dominant for new development on iOS, and now viable on macOS. I started writing Swift in 2014 when it just came out (here’s my first non-toy app on GitHub), but I didn’t yet use SwiftUI. It was too new for commercial work in early 2020, and later I was learning other languages....
Junior software engineers receive many comments on their pull requests—often about how their code looks and other minor issues like having unused imports—and have to do additional fixes before the team does a “real” code review. Developers who are more experienced, newly assigned to unfamiliar teams and projects, have trouble making the reviewers...
Jeroen Leenarts, the host of the AppForce1 podcast, invited me to record a special episode in early November, while I was still writing my book. We recorded the interview in late December 2020, when the book just came out, and Jeroen published the episode (after much editing—sorry!) in late January 2021. That was a long wait! You can listen to...
I created a blank document on November 2nd and published my book “Junior to Senior: How to Level Up as a Software Engineer” on December 21st 2020, exactly 50 days later. This initial version of the book is 52,660 words (the PDF file is 135 pages). Here’s why and how I did it. Why write a book? Writing a book is a rite of passage. I was always a...
An attempt to design an interactive input control for a text-based game. Given a question, fill in the blanks in the correct order by selecting parts of the answer from cards. “Hayaku” is a kana speed-reading mobile game that I’m (slowly) making. I’m studying Japanese again after a five-year break, and this time a thing I’ve noticed is that none...