Experience

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

Follow the updates to the site - subscribe with your favourite aggregator:

Feed Icon | XML Icon | Google | Yahoo! | Bloglines | Newsgator | MSN | AOL | Monitor This