Frequently asked questions

Knowledge

What would you recommend reading?

I already wrote about this topic in the The true cost of knowledge, but the main idea is to read about the things that you personally find interesting. I could list a number of books here, but I don’t subscribe to the idea that everyone should read this giant list of books that I liked. You want to read something for a good reason, a sensible reason, and not just because reading has become popular and is touted as the solution to all of our problems.

Still, you may be interested in my collection of interesting articles.

Personal

Are you open for business opportunities?

Yes. Send me an email and if the company/project sounds interesting we may discuss it further.

Officially I am working as the tech lead, but I consider myself more as a roaming problem fixer - I move from a project to project and fix complicated problems. In the past, I worked mostly on a mission critical backend software used in:

  • Space (testing system for satellites)
  • Astronomy (control system for a telescope)
  • Science (control system for a particle accelerator)
  • Medical (control system for a cancer treating machine).

I am a generalist, therefore my day job consist of various activities depending on the project needs:

  • Architecture and code reviews
  • Performance tuning (mostly JVM related)
  • Backend programming in various languages (Java, C++, Go, Python)
  • Desktop and web GUI programming (JavaFX, Javascript, React)
  • Gathering requirements and task estimation
  • Software quality and process improvements on the company level
  • Mentoring

I don’t want to travel and I only work remotely (Europe, GMT+1 timezone), but my work hours are not set in stone; I am fine with an occasional meeting in the evening if the company I work for is in a different timezone. I worked with some companies abroad (USA, PST timezone) and this setup worked just fine.

My perfect job would probably consist of a mix of research and development, similar to what an Ink and Switch is doing. Until then, I will keep writing backend systems.

If that sounds good to you, you can find my email on the Contact page.

Am I allowed to translate your posts?

Yes, as long as you don’t present the article as your own - you should always link back to the original post. When you are done with the translation, please send me an email, so I can add it to the blog.

I would still urge the programmers to learn English, however hard that may be. English is the lingua franca of the software world and that is unlikely to change in the future. See also: I wish I could write this well.

I like the style of this blog and I would like to know more about it

This blog is statically generated with a Hugo framework. I picked a random theme that sort of fitted my vision of how such blog should look like, but I ended up rewriting it entirely. In other words, I am using a custom theme that grew organically over time.

The theme’s css is written from scratch in order to keep the page size small. Javascript is written from scratch as well and it is only used for switching between the light and the dark theme, therefore this website is readable even if one has Javascript disabled. Yes, it’s a lot of work to create such a theme. No, it’s not open source for reasons described in I am giving away the pancakes and I am still broke article. Considering how many poorly written themes are out there, perhaps this is a niche market opportunity for more business oriented people. Who knows?

Deploying a statically generated website is fairly simple. I wrote a deployment script that is using ‘rsync’ to push the generated html files to a server. You can read more about the server setup in the How much traffic comes from the front page of Hacker News article.

But why go through all this hassle of writing a custom theme and setting up a server when you could just use XYZ service and it would be faster, easier and cheaper? Well, if you are trying to build something that lasts more than just a few years, you have to be in control of your project. Relying on 3rd party tool or service means that you are not in control of your project, since at any point that service might go away. Since I don’t want to think about this problem at all, I prefer to develop and host things myself.

How much time does it take you to write a blog post?

In the beginning, I used to track time (I am using SlothTracker) for every post I wrote and it consistently ended up being 1 hour for every minute of reading time (cca. 220 words). If a blog post states 10 minutes of reading time, it probably took me around 10 hours to write it. More complicated posts and posts that needed lots of research beforehand took me even longer.

I guess I am a pretty slow writer.

Is there an offline version of this blog?

Yes. Press CTRL+P on the article of your choice and the print dialog will pop up. From there, you can chose between printing an article or saving is it as a pdf. If you would like to disable the urls appearing in the margins of the page, you can remove them by selecting “Print headers and footers” option in the browser’s printing dialog.

How do you create illustrations?

Illustrations are created with Inkscape and a graphic tablet (Huion H610Pro v2). I am not a big fan of drawing in Inkscape since it’s fairly laggy for hand drawn illustrations that consists of a lot of small nodes. The only reason why I stick with Inkscape instead of going with the standard raster graphic editors (e.g., Krita, Gimp) is because I want my illustrations to be in a vector format.

In case you didn’t notice so far, this blog supports both light and dark theme. If you draw in black and white style (the old school comics style) and you use the raster graphic editors, you will end up with a png image that has a white background and black lines. Such illustration looks fine when a reader is using a light theme, but as soon as they switch to a dark one, the white background of the illustration sticks out like a sore thumb.

To avoid the white background drilling holes into your eyes, I’ve decided to draw everything in a vector format that is inlined directly into the html page which allows me to style the illustration via css. Depending on the selected theme, the lines will change automatically to the color of the text and the illustration will blend nicely with the rest of the article. Pretty neat, huh?

There are lots of blogs out there with hand drawn illustrations, but so far I haven’t seen anyone else messing up with vector drawings and recoloring them on the fly. Hey, ho, I am a pioneer.

Some illustrations were also drawn by hand, via the old school comic book process: drawn in pencil, inked with India ink, scanned and retouched in Krita.

How did you learn how to draw?

I am still learning and I am still a beginner. Drawing is a skill like any other; keep practicing and just draw as much as possible (related article: I wish I could write this well). You can try drawing items on your desk like cups, pencils, mouse, keyboard, laptop, etc. I personally find drawing from still-life extremely boring, therefore I prefer to draw from imagination.

The problem with drawing from imagination is that I can imagine something in my brain, but when I start drawing it, I realize my drawing skills are not up to the task. The solution to this problem, however, is to try and find a good reference picture and “copy” (draw while looking at the image) the part that is causing you troubles. If your drawing still looks odd, you can always trace the image in order to see exactly where you made a mistake.

But, hang on a minute! Ain’t copying from a reference picture considered cheating? No, not at all. Professional artists are using reference pictures all the time. Do you debug your software without a debugger? I guess not.