Sergey Mikhanov  

If you need to handover the shorter version of this document nifty printed to your boss, then PDF version of my CV is what you need.

  • Of programming languages I have worked professionally with Java, Objective-C, Python, C#, and Haskell (sorted by the time spent with each.) I tried much more of them. I value maturity of the language itself and the libraries used (JVM languages are in unbeatable position here), expressiveness, absence of excess verbosity (because of that I honor Python above Ruby), and capability of detecting programmer’s mistakes early (the reason why I enjoy the rigid type system of Haskell.) I am quite sure that the silver bullet (should one appear) will not be just a novel language
  • I mostly dislike frameworks, but use them in my everyday work. Frameworks usually appear for weird reasons. Say, J2EE was an attempt to divide programmers into good ones (those who write application containers) and mediocre ones (those who develop things to be run in those containers.) Spring framework is an elegant approach to the ugly problem (if wiring your application requires a framework, there’s something wrong with your language or subject domain.) This does not stop me from enjoying good frameworks like Twisted or Apache Wicket
  • Agile methods are a great discovery; they do work and are enjoyable to practice. There are some fields where it is almost impossible to follow an agile approach because of the intrinsic properties of the subject domain. Telecom is a good example of this: new version deployment is almost always very expensive, making fast iterating hard. Despite those exceptions I try to practice agile in every project where it is possible

You might also be interested in the projects I have been working on.