The people who use our boards.
The people who use our boards.
Dmytro IvanchenkoArchitect/Software Engineer
Who are you, and what do you do?
Hey there! My name is Dmytro Ivanchenko. I love life and I love my family very much. Despite their best attempts, all of them are awesome!
I am an architect/software engineer at Onseo with newly rediscovered interest in machine learning and data analysis.
I live in the incredible, diverse, and beautiful country of Ukraine. Outside of work I like playing football and tennis, swimming and bicycling, spending time with my family, and simply doing awesome things with my life. Because if you don’t do awesome things—what are you living for? ;-)
What hardware do you use?
Contrary to what many people think, I don’t believe that a notebook is the way to go for a developer workstation, since the notebook is by design one big compromise. If you want to get the work done on a day-to-day basis, you will start compensating by adding monitors, mouse, speakers, a good desk, etc. And at that point, you can simply use much more powerful PC and have money left over to buy a minimal notebook for mobility or for cases when you want to work outside in the park.
I freely admit that there are cases when a notebook is a must simply because of the type of work you do or because of heavy emphasis on mobility. But way too often I see people use notebooks for work simply to look cool and “mobile,” not bothering with the fact that they compromise on the speed and quality of the work they do.
But less ranting, more hardware :)
My workstation at work is an HP-build workstation based on modern Intel Core i7 with 16GB of RAM with nothing-special specs and dual 23-inch monitors. My keyboard is also an HP-produced QWERTY one, and my mouse is a Logitech MX Ergo, which is really good and any person with hand pains should consider.
My home workstation that I use for some of my main work and most of my side projects is a somewhat old custom-built PC with dual-monitor (Dell U2414H) setup based on a heavily overclocked Intel Core i7-4770K with 16GB RAM, Samsung 860 EVO SSD + WD Red HDD combo with Asus GeForce GTX 1060 ROG 6GB, running Windows 10 inside the Fractal Design Define R5 case. Everything sits behind a Zyxel Keenetic Giga III router and backed up by a dedicated WD My Cloud EX2 Ultra NAS.
My keyboard at home is an Ergodox EZ without any unneeded lights, bells, or whistles.
As for the home PC’s mouse—well , let’s just say it is somewhat of a struggle :) I actually have two mice, a lightweight Razer Viper for gaming, and a second one that’s to be determined. I’ve already tried:
- MAD CATZ R.A.T.7, a great mouse that can adjust in a lot of ways. It shines when you need to figure out what mouse forms are the best for you. But it was too heavy as a daily driver.
- Logitech MX Vertical mouse—a decent mouse, but pressing keys actually moves the mouse, which is a problem. Tried several grips, but to no avail.
- Latest Logitech MX G 518. The original MX518 was great, and I still have it. But the current iteration’s scroll wheel is horrible even compared to the original, and the top side of the mouse sticks to your palm, which is really uncomfortable.
- Logitech MX Ergo, a very solid mouse/trackball which allows a user to switch the tilt from 0 to 20 degrees, so any hand pains can be quickly alleviated by switching the position.
- Now waiting for the arrival of a Logitech MX Master 3. I’ve read and watched a great deal of reviews about it, so we will see! :)
As I said, at work I have a Logitech MX Ergo—and if the Master 3 turns out to be a meh experience, I’ll simply get another Logitech MX Ergo.
Music has been an incredibly important part of my life since my childhood because most of my family played either a piano or a guitar, and music at school was one of my joys. So now I can’t imagine my days without it. I have always tried to get my hands on decent speakers/headphones even when finances were limited, generally preferring Sennheiser products, which are good and are available in Ukraine. After my first daughter was born, I fully switched to headphones. My current setup at home for listening is a DAC/amp Schiit Modi/Magni pair combined with HIFIMAN Sundara headphones and HyperX Cloud Alpha for calls/online gaming. When I’m listening to music at the early morning, which is my usual “alone” time, I use either Earin M-1 or Sennheiser HDR 160 wireless headphones. At work I use a Sennheiser U 320 headset with built-in soundcard since integrated one in my work PC is simply horrible.
My current phone is a BlackBerry Priv with slider keyboard. And I have to say that the typing and writing experience on it is great. The physical keyboard supports all the hand gestures that on-screen keyboards have, so it is a shame that Blackberry (or any other manufacturer) doesn’t have such models in current iteration of its phones.
As for my workplace, I have a custom-made, but not very ergonomic table both at work and at home and typical office chairs. Basically nothing to brag about ;)
And what software?
There are very few tools that I use that are actually OS-specific. Most of them are available for any platform.
First of all, since a lot of people are working from home nowadays, here’s my list of online tools: Jitsi Meet (way too many privacy issues with Zoom) for conference-calls, Twist for solid async communications and remote projects, Telegram + Skype combo for one-on-one calls, Trello for organizing and planning any kind of project or activity.
Most of my work is based around development using TypeScript and/or Python, so for both my preferred development software is WebStorm and PyCharm from JetBrains. I’ve tried Microsoft Code and Atom as alternatives, but to make it efficient you must add a ton of plugins first to make it truly comfortable to use, while the JetBrains products… just… work.
For my endeavors in machine learning it’s either Jupyter Notebook or/and PyCharm.
My day-to-day life tasks, projects, and useful stuff are stored in Dynalist, a powerful cross-platform organizing tool with a tree-view note taking at the base of its functionality. It is a case when all advanced capabilities come from the proper organization and use-cases instead of built-in functions. I have to admit it is a somewhat humbling experience to see that all your current life with all your goals, thoughts, aspirations, and notes can be stored in less than 1MB of compressed text! Lately I’ve also considered Joplin + Nextcloud as a cross-platform and free solution for organizing your work and life, but it has some limitations in functionality and requires time to setup everything properly. Surprisingly I found that Notion—which a lot of people have the hots for— to be too much functionality with too little efficiency in the simplest of operations. To each his own, I guess.
An unexpected result of using the Dynalist for the general planning of my days is that I actually don’t need any calendar app at all. And, while possible, I don’t need to set reminders in the calendar. Seems that when your next day is clearly outlined in front of you in the evening, during the day you concentrate on focused work and async your communications as much as possible; you simply don’t forget things. Truth be told, I never thought that it was possible before.
As for browsers, I generally use two: Vivaldi for its incredible user experience with multiple stacked tabs, mouse gestures, and start page; and Tor browser for its ability to browse cleanly and to read all the articles you need on sites that allow only some amount of articles before paywalling you (Medium is an example).
My file manager of choice is Far Manager. Very old-fashioned and Windows only, I know, but speed- and responsiveness-wise it is still unparalleled.
Another application that I’m still in the process of choosing is an e-mail client. My current favorite is eM Client, but I’m still hoping for a better alternative that is quick, responsive, and user-friendly.
Probably one more worth mentioning is Bitwarden, which is, obviously, for passwords and important stuff.
For protected and big-tech independent mail services I’m currently using ProtonMail (their @pm.me mail domain is awesome to type), thought there’s a whole host of good alternative options.
There are three important tools that make any day much easier: procexp64 since Windows 10’s process manager is simply bad; Ditto, an advanced clipboard manager that saves the day 5+ times a day every day; and Wox, a much better alternative to the Windows “Run” dialog.
A much-needed application that I still haven’t found is a Windows desktop application that can control different windows, align them in different patterns, and switch between specific instances of windows using shortcuts. I’ve found several such apps for Linux and MacOS, but literally nothing even close to good experience for Windows.
What’s your keyboard setup like? Do you use a custom layout or custom keycaps?
Well, first of all, I use a stock-bought ErgoDox EZ. The layout I use is a modified Colemak Thumbshift. And I have to say that those thumbs improve your results greatly—check testing results for yourself. As an input, I’ve used decent amount of source code.
I was not using a Colemak layout before buying ErgoDox, but decided that if I would spend time adapting to a new keyboard, I might as well go all the way into increasing my keyboard performance. At the same time, hindering my ability to do daily work was not an option, so I simply left my standard QWERTY keyboard at work while at home I switched 100% to a Colemak ErgoDox. For those considering the switch—good luck with your initial 40 character/min! Since a post should not go without a graph, here is a graph of my weekly results in a typing test in Colemak Thumbshift ErgoDox against plain usual 101-key QWERTY.
I can say that after three months I was more or less ready to switch. I was still working slower, but I was confident in my skills.
The big plus of the switch is that comfort simply went to another level. Before, my hands were tired after a long day using regular keyboard at work and later at home. I haven’t felt anything like this after the switch to Colemak ErgoDox.
Currently I don’t have any problems with using Colemak at home and QWERTY at work, though I intend to buy another ErgoDox for work. Tried to switch to Colemak at work on a Windows PC using AutoHotkey, but there are too many issues with the implementation.
So if you are contemplating switching from QWERTY to another layout, I believe that it is a good idea, but be prepared for a couple of months of snailing in your chats.
Some of things I’ve tried and found useful:
- “Blue” key combinations in configurator are your true friends. Use them as much as possible.
- Double Enter and double Backspace are there for a reason and make typing simpler.
- Full numpad is useful, so on my layout it’s on the second layer. The important thing is to put it under the non-mousing hand! Think about it! Often you actually need mouse to move between cells that you need to edit, so putting numpad under your “off” hand actually makes a lot of sense.
- Even if you’re using an alternative layout, still put the keys with tactile dots (“F” and “J”) keys on their default positions. They are simply too useful for blind typing.
I’m using my keyboard with Cherry Silent Red switches. The typing experience is a bit less comfortable than on the regular Reds, but my family doesn’t come looking for me with pitchforks and torches when I’m typing at night, which is a great, if somewhat boring, result. Funnily enough, I bought o-rings to make the keyboard even quieter, but rings actually didn’t help. And since the subconscious part of my brain told me to start typing a bit more forcefully to compensate, sound sometimes got even louder.
There are two areas that I’m struggling with the ErgoDox at the moment:
- One layer has issues with holding both 1-9 and F1-F12 keys. And while different modifiers help greatly, they still slow down your work. I’ve tried having 1-9 on main layer and Fs on secondary and visa versa, but during development I simply constantly need both. I know that there is a way to put 1-9 on main layer and F1-F10 on double tap on those keys, but I haven’t found good and simple-to-follow instructions how to do it. If anyone knows how—please, please, drop me a line.
- Gaming. You either create a custom binding for each game or a dedicated layer for QWERTY gaming. The problem with it is some of the games I play (EVE Online, anyone?) need a big chunk of the keyboard and 1-9 and F1-F10 keys on the same layer. Another issue is that in fast-paced games I tend to accidentally switch to the other layers, which is not very good for your in-game health, as you can understand. So definitely playable, but not exactly top experience.
What would be your dream setup?
It’s probably easier to divide the list into two parts.
Software-wise I’d like to finally figure out how to make “double-tap to type F1-F12” work on ErgoDox and find an application that can create, control, align, and switch between windows for Windows.
Hardware-wise the most pressing things would be to buy another ErgoDox for work and get a third monitor, since for the last couple of months I have felt that two monitors are simply not enough. Then I fully intend to use crowd knowledge on ErgoDox EZ Users to do something with my work desks and chairs. I’ve already seen a lot of great options.
As for the big dream thing. Weeeell, I recently listened to a concert remastered for Dolby Atmos in a dedicated room with 20+ speakers… All that I can say is that there is a saying from one great film: “Men don’t cry—they simply get upset.” Let’s just say that I was very, very upset that day. :)