I am a seasoned software designer, developer and consultant. In business since 1998. Having worked for many years in public and private sectors in different countries, I have gained deep understanding of various approaches to software development processes. Exposure to multiple cultures, work with demanding clients in fast paced environments developed my communication and business skills. My approach is result-oriented, constructive and pragmatic.

My long term goal is to work remotely writing software for clients located anywhere in the world. Take a look at my CV to see my past experience in detail. In short, I have vast knowedge of backend development (C++/Java+Scala/Python/C#) in finance and general areas, loads of web development experience (Java/DJango/JavaScript), some GUI (C#/Java) and Android (Scala/Java), GIS development (ArcIMS). Please do not hesitate to contact me, if you have any questions.

Muting conversation threads in Google's new Inbox

I wrote earlier regarding the new product from Google - the Google Inbox. GI is still work in progress, so some features present in the familiar GMail are absent or broken. I counted the "mute" functionality among them, because there was no obvious menu for it. Mute allows you to ignore conversations, which you don't particularly care about. This can be very useful when you are subscribed to various mailing lists.

Praise to Idea (and to hell with Eclipse)

I gave Eclipse its fair chance. To be honest, I gave it more than one chance over the years. Each and every time it was a disappointment. It is actually amazing how broken the beast is. I tried various version and every time I tried to do anything that was even slightly out of simple Java editing using Eclipse' own project format, the thing failed in the most miserable way. For example, I tried repeatedly to install Android plugin so that I could write code for the platform.

More on multi-platform mobile development

All software engineers hate to write the same thing twice. However, at the moment it seems unavoidable when one wants to support both iOS and Android. Some strategies exist to avoid them, however none is perfect. For example, Phonegapp allows to develop your application in HTML/JavaScript, but the look and feel is not as native as one could wish, performance is bad for anything complex and your code is at the mercy of hackers. There are some commercial platforms which allow you to write in C# and then deploy on both iOS and Android.

DSL in Scala

DSL (Domain Specific Languages) are, as the name implies, software development languages created for a specific niche or limited domain. Where could one use a DSL? For example, when writing a library to evaluate highly complicated financial products, it might be very beneficial to have a language designed to describe such products. The language will check correctness of a new product, will allow sharing of common pieces of definition, will be able to generate output that can be fed into other systems (risk calculation, trade processing, graphic representation).

Scala developer's dependency on Java

Scala is a great language. One of its strengths is the effortless interoperability with Java. However, given the fact that the language is still evolving, some compromises are needed in order to facilitate cooperation between Scala in Java. In effect, sometimes you can't write 100% pure Scala solutions. Sometimes you have to add some Java code to your project, even if very simple one. There are two common examples of this: enumerations and annotations.

Mobile multi-platform development

Again I find myself thinking about how to write as little code as possible when developing applications for various mobile platform. I do find it annoying in the extreme, that iOS, Android and Windows Phone all have mutually incompatible technologies. As if they were doing it on purpose. But maybe they just do? It helps the companies to lock in software developers as well as end users, doesn't it? Maybe they hope, that the developers won't bother to write code for all the platforms and will just stick with one.

New Google Inbox - first impressions

Yesterday I received an invitation to Google Inbox - a new mail service from Google on top of the famous GMail. I wanted to use it because it provided reminders and allowed you to snooze emails in the inbox until later. I find these features extremely useful. However, the current versions of both Android client and the web interface are not without issues. Here are some of them I have noticed so far:


Black on white in Chrome

Using Stylish extension, you can have the following style on a web site, which colour palette is too bizarre for your eyesight:

/* Black on white */
html, body, * {
background: #FFF !important; color: #000 !important; background-image: none !important;

This is just a basic example, you might want to refine it to suit your needs. Possible options: change the appearance of visited links by changing the style of a:visited; remove images by setting display:none on img elements etc.

Android and .NET - what does the future hold?

Recently Microsoft made a major move and decided to make .NET platform open source as well as compatible with Linux. I personally has always thought, that .NET is much better platform in the long run than Java. Unfortunately, until recently it lacked support on other platforms aside from Windows. However, after the announcement, things will change. I wonder, if among other developments, someone will be kind enough to port the Compact.NET to Android.