Here I will provide brief description of my past experience. This page is not a resume, my formal resume is available here. On this page I concentrate on general software development and project management issues as I see them.
Practical and realistic approach
When selecting a technology for a new or existing project I do not automatically choose my favorite or the one that I am most familiar with, or the trendiest one. I always try to consider other technical and business challenges, present in the project. It might include for instance:
- Requirements of portability - do we need to support more than one platform (where platform is not limited by just OS or hardware)
- TCO (total cost of ownership) - the money required to acquire and support the technology over the projected lifetime
- Availability of human resources, required to develop, deploy and support the solution
- Security - depending on the project, might be at the top of the list
Programming languages
C++ and Java are probably the software development languages I am most experienced with, C# and the whole .NET platform coming next. However, I feel that no new language would be too difficult for me to master. So far I have used these additional languages and frameworks:
- Perl - mainly for scripting and quick hacks, although I built quite a large log parsing and analyzing product using the language
- PHP - used it, naturally, for web development. Although I was one of the earlier adopters of PHP, starting with version 3, over the years I grew disappointed with its non-existent type system and other drawbacks, which it shares with many other scripting languages
- VB - I created a few small projects in VB6 and VBA (VB for applications - mainly used in MS Office applications, such as Excel, Word etc.)
- OCaml and F# - these are my favourite languages. OCaml is an ML dialect, and, quoting from it's site is a "general-purpose programming language, designed with program safety and reliability in mind. It is very expressive, yet easy to learn and use. OCaml supports functional, imperative, and object-oriented programming styles". F# is a port of OCaml to the .NET platform, bringing together the advantages of strict type checking and general functional programming of OCaml and rich library set and language interoperability of .NET.
- Scheme - another functional language, which I like for its simplicity
Operating systems
I do not engage myself in religious OS wars. As mentioned earlier, I try to match project requirements and selected technologies, so in different circumstances I would choose different operating systems. So far I have used:
- Windows - all flavors, starting from Windows for Workgroups 3.11 and up to Windows Server 2003
- Unix - mainly Linux, starting from RedHat 4.0 more than ten years ago and up to Fedora Core 7. I played with Solaris, AIX and a few others, as well as non-rpm Linux distributions
Software products
During my career I worked with following non-trivial software packages:
- GIS software - ArcIMS, ArcView and other ESRI products. A few of my GIS-related projects: BioGIS, PhotoGIS. Please note, that I wasn't responsible for their graphical design
- Portals and CMS - Drupal, Liferay, Magnolia, Xoops. This site is built with Drupal, which recent releases are rather of high quality and easy to use and customize
- Mozilla/Firefox - I did quite a bit of extension development







