Tools I work with

Main tools

In my professional activity as a developer, I work mainly in the Microsoft Visual Studio suite of tools. I work with the main Visual Studio IDE most of the time, and occasionally with Visual Studio Code.

I have worked with Visual Studio since Visual Studio 6, and quickly adopted Visual Studio .NET when it became available. Initially reluctant to switch from C/C++ to C#, the transition became extremely smooth once I started to look for more structured languages. I briefly forayed in the Java landscape, finding it mostly hideous, then settled on C#.

Besides Visual Studio, a great deal of help comes from JetBrains' dotUltimate suite. I am especially fond of ReSharper as an IDE aid, and dotPeek as a disassembler for .NET. On some occasions, I use Rider as an IDE, and I find it to be powerful and interesting at the same time.

For database work, besides what the database suites offer, I use DataGrip.

Extensions to Visual Studio and ReSharper

For extensions, I use the great suite of extensions by Mads Kristensen, which are too many to count and name, and which all work like a charm. At the moment of this page's last update, they were available here.

I also use GhostDoc by SubMain for documentation purposes, usually in conjunction with some form of XML doc parser like Sandcastle Help File Builder or XMLDocMarkdown.

Apple vs. Android

I currently use Apple devices.

My first phones were all rather cheap Android devices, and I was disappointed by their lack of quality, as well as the poor OS experience (which was most likely due to poor hardware).

When my wife bought her last Android phone, a Samsung phone, thinking that it was probably time to stop trying out brands and go with a brand everybody was praising, we were both disappointed to learn of a few disadvantages of Samsung phones (at that time):

  • All but the top-of-the-line series had serious lacks in terms of hardware, and lacks that could not (and should not) have been part of the phone tange for that price range; for example, my wife's phone lacked NFC, in an age where that feature was available even on the cheapest mid-range phones and on quite a few of the low-range ones
  • All but the flagships did not get major software updates, and even the flagships got one or two; Coming from an environment where it was commonplace to believe that Apple was the Cthulhu when it came to corporate penny-pinching, it came as a total surprise to learn that their phones did, in fact, have a long-time support plan. It threw a wrench in the idea of "planned obsolescence", which we had previously thought to be an Apple thing, to make us realize that it was pretty much an Android thing

Searching for a new phone, once in a phone shop belonging to one of the network providers, I could see display cases for both the new (at the time) Samsung Galaxy S-series, and the previous generation iPhone. I could see them side by side, and I could run benchmarks on them.

Having come with the idea that new Samsung flagship phone will beat, hands down, a previous generation iPhone, I set my expectation that the iPhone would be good enough as an experiment for my wife, if it could get half the scores of the Galaxy. So I ran the first benchmark, and the iPhone got a 50% higher score than the Galaxy. Intrigued, I ran another benchmark, and then another, and for about half an hour I was running around the phone shop setting both phones to run various benchmarks.

Since the previous-generation iPhone had pretty much blown-out the newer-generation Galaxy in terms of performance, while having half the RAM, we decided it was a worthy experiment to perform, and my wife bought her first iPhone. Her frustration with her phone vanished immediately, and the quality of her digital life improved greatly.

A few months later I was also buying my first iPhone, and we remained on the Apple platform ever since.

Development machine

My main development machines are listed here, in approximate chronological order. Please note that these do not involve machines that have been provided specifically for the project, or that have a pre-defined "corporate standard" configuration.

In the past (decommissioned now)

  • Various custom-built machines
  • A Compaq ProLiant ML350 G3 tower (out of production)
  • An Acer Aspire R7 laptop with a twisting touch-screen and stylus (out of production)

Currently using

Localization

I use all my software in English. It is the only truly global language in use in software development, and I think that anyone who opposes that statement is either developing locally, or is simply trying to delay the inevitable.

( 🚧 under construction 🚧 )