Skills
Lately, I mostly work on web applications written in Python in CherryPy framework, using Firebird as database backend.
- Development techniques
- Programming languages
- Databases
Programming style
Lately, I begun to write almost exclusively object-oriented code. I somehow feel that code is more forward-compatible then classic procedural programming and more readable then functional programmming.
I tend to use open-source software and for most jobs, I'm using Python+CherryPy+Cheetah+Firebird combo.
As Python is dynamically typed, unittesting became neccessarity. Where I can, I also prefer test-driven development, using standard pyunit and Selenium for webapplications.
Design patterns
I'm familiar with most basic design patterns and fluently using them in my programs. TDD prevents me from overengineering and "overpatterning".
Extreme Programming
Althrough I knew XP concepts, I haven't experienced most of them (i.e. pair programming) in use. I'm also not fragile about "Do the simplest thing that works" and my programming style lies between agile and classic development.
Database design
I'm able to go through whole cycle and design databases from ERA through CDM to generated database. Especially with Firebird, I also knew optimalization and denormalization techniques.
Python
I have come in touch with Python in spring of 2005 and it quickly became my first programming language. I'm now using it almost exclusively, for webapplications as well as libraries and simple programs.
Reference projects: PyArticle, DBClass, ISIFA synchronization
PHP
Popular language for creating websites was originally my first programming language as well. I was using it for almost 5 years and I'm still able to write with it well. However, I hit limitations of this language (bad language design, OOP limitations, no module concept) and except for very simple things I prefer Python over PHP.
Reference projects: NET WRS, DraciDoupe.cz
Java
I have become familiar with Java in two courses in my University studies. I created six small programs in Java and I'm familiar with SDK.
XML-related technologies
With XML everywhere, it's neccessary for me to be able to work with XML technologies. I'm familiar with W3C DOM, XSD and RNG/RNC, XPath and XQuery; I'm able to write XSLT and knew basics of XSL-FO. I also write almost every documentation in DocBook and I can do it's processing.
Reference projects: NET WRS (SOAP communication with Muzo Payment System), PyArticle, RPGStandard
Firebird
InterBase open-source successor become my favourite RDBMS and for small to mid-size applications I'm preferring it over other solutions. I'm working with Firebird actively since 2003 and I'm familiar with most of it's specific features and oddnesses.
Reference projects: DBClass, NET WRS, Communication Centre
MySQL
Most popular OSS database I'm using when needed. I use both MyISAM and InnoDb engines when needed, althrough I prefer SQLite for easy things and Firebird for others.
Reference projects: DraciDoupe.cz
Oracle
I knew Oracle from a university course and I have also worked with oracle during my work for ISIFA. I can work with it without problem from "user" perspective, but I'm not (yet) skilled with administration.
ZoDB
I have expermented with ZODB and IndexedCatalog for over a half year and used it in two applications. However, due to customers requirement and database limitations, I haven't expected it in use.

