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

People

It is amazing to observe, how many times the subject of the work force is ignored, although if asked explicitly, every manager would admit that the people, carrying out the actual work are ultimately the most imporant key to success of any project.  There are many issues and questions, that need to be addressed, when considering a new project.  Failure to address all of them might be disastrous.  For instance:

  • Can we find the right people to design and develop the product?
  • Can we motivate them sufficiently to stay and do this job?
  • How long do we expect all/some of them to be around?
  • How do we organize the development process, so that the departure of one of the key people in the project does not jeopardise the whole outcome?
  • Once the project has been delivered, will we have the right people to support and maintain it?

And many more of the same kind.  I tend to consider these issues carefully before engaging in a project.  It is obviously impossible to find the right answer to all of them before the actual work begins and certain amount of fire fighting is simply a part of project manager's way of life, but giving such things consideration in advance can really save your day.

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