I'm a full stack developer from the JVM/JS land since 2005, working currently with Telia Norway, in Oslo, Norway. Until 2015 I was a member of the great Iterate AS family and for a couple of years before that I had also the pleasure to work with IBM Austria and IBA CZ. During the years I've worked on large and long-term international projects as well as small local ones and both on new and maintenance projects in various positions.
I enjoy working with people, sharing knowledge, being creative and exploring new stuff. I don't like tedious, repetitive work (though it really is sometimes necessary) and am thus a big fan of automation and tools that can take it over. Having maintained a lot of old code, I really appreciate high-quality, well-written code and good and automated unit tests. I am especially interested in developer productivity, DevOps, testing, and performance.
I'm also very fond of the lean thinking and agile principles, especially feedback-based development, focus on creating true value ASAP, and respect for people. I am fascinated by post-taylorist organizations that value autonomy and human needs over command & control, such as Zappos. The longer I work in IT, the more I see software development as a human, not a technical problem.
A while ago I fell in love with Clojure[Script] and functional programming and the productivity it offers. I've summarized crucial aspects of my approach to development in Frustration-Driven Development – Towards DevOps, Lean, Clojure.
You can learn more at my LinkedIn profile.
Bio & personal
I was born in 1980. For the second time I was born on November 17, 1989, when the communist regime of Czechoslovakia begun to collapse. For the third time I was born in august 2005, when a thin branch, invisible in the total darkness, saved me from a fast and fatal fall. I studied software engineering at the Czech Technical University and humanities at the Charles University, both in Prague. I also spent two enriching terms at the Linköpings University in Sweden. After the studies I ended up working with IBA CZ, which turned out to be a warm and friendly place, full of great - nice and smart - people, with challenging tasks and a lot of flexibility. In 2011 I've moved to Norway to broaden my views by living in another country and culture. I'm married and live currently in Oslo, Norway. (Before that, my Czech home towns have been Ostrava and Prague.)
In my free time I like to hike, practice martial arts, meditate, read fantasy, and play pen&paper Role-Playing Games. I like books by Andrzej Sapkowski and (unrelated:)) admire Mahatma Gandhi. I'm vegetarian because I couldn't find any moral justification for killing other beings.
The world around us
The motto of our police is "Help and protect". I believe that this is actually the mission of every human, to help and protect others and especially the weaker ones, including not only other humans, but all living beings and the nature itself. Unfortunately too often is this maxim superseded by an attitude that could be summarized as "Take money and run". If there was more altruism and compassion than egoism and limitless desires accompanied by wretchlessness, the world would be a much better place. I'm glad there are some people who care, such as R. Stallman, those in Amnesty International and Greenpeace, or a boy in the neighbourhood helping an old lady.
Thoughts on development
My early experiences in commercial development brought me on the quest for productive development of a software of high inner and outer quality. By productive development I mean that most time is spent bringing real value to the customer and not writing plumbing code, doing mindless and repetitive "monkey coding" or fighting with the environment and tools. Inner quality means good documentation and high-quality, maintainable code. Outer quality covers especially (an acceptable) performance, but also the often neglected usability and doing what the customer actually needs.
I learned that however technical our profession is, the essential skill necessary for success in IT is a non-technical one - communication. This is best illustrated by the following picture from blogcmmi.com, which I like a lot (though it omits the equal importance of intra-team and personal communication):
As mentioned above, Frustration-Driven Development – Towards DevOps, Lean, Clojure summarizes well what & why I am trying to do.
My professional interests
- Build great, self-motivated, self-organizing teams of happy people
- Empower people to find solutions
- Autonomy, mastery, purpose (<- Drive)
Build the right thing
- Find out what the client really needs and if she really needs it - see Impact Mapping
- Create the maximal business value possible at minimal costs, stop when enough reached
- Empirical process control, feedback, agility
- MVP, Specification by example, Evo, the 80:20 rule (80% value gained from 20% of the SW, > 50% never/so rarely used that not worth having)
Build it right
Clean code, software craftsmanship => maintainable, evolvable software
- TDD, simplicity, "build the quality in," continuous deployment, ...
- Performance, security etc.
Build it quickly
My open source projects
Having received so much from the open source community (Linux, Firefox, OpenOffice and countless others), I feel obligated to give something back. I prefer to contribute to existing projects (for example Node.js, Clojure, ...) but have also some projects of my own at my GitHub account.
Some of my old projects live at SourceForge, such as J(2)EE Utils.