The Most Important Things I Did
I became the first employee of Acunote - startup based in Silicon Valley founded by Gleb Arshinov. Gleb had and idea for a online project management and Scrum software. I implemented that idea: designed the architecture, coded prototypes and the first release myself. When our startup got momentum and our Ukrainian team grew, I became the one to direct the team and oversee the development. After becoming a Director I got stock and attended Y Combinator as a co-founder.
"Ruby Performance Optimization" Book
I'm proud that Pragmatic Bookshelf gave me a chance to become part of their family and write this book with them. I've been managing Ruby teams since 2008. My experience is that even otherwise brilliant developers regularly produce slow code. Why? It turns out their expectations of code performance are wrong. For most people Ruby is not the first language. They do not expect that algorithmic complexity and IO performance matter much less than dataset size and memory consumption. This book explains what really matters to performance. Readers will learn how to write Ruby code that has adequate performance without any further optimization, identify potentially slow parts of the code during development, optimize memory consumption that is often responsible for 80% of performance degradation, set up performance-oriented coding practices and processes, use optimization tools.
KDevelop is a free open source IDE for Linux, Max OS X and other Unix systems that supports multiple programming languages. I am the co-author of current KDevelop core architecture and implementation (together with Andreas Pakulat). I designed and implemented KDevelop user interface for two recent 3.x and 4.x releases. I also wrote many plugins for KDevelop, including Ruby language support.
Computational Linguistics Course Site and Book
Computational Linguistics course helps non-technical linguistics students to understand what computers can and cannot do with the natural language. Students learn both linguistic (Chomsky) and statistic (Norvig) ways to do NLP. I developed syllabus, created all course materials and wrote a book for my students.
PhD Dissertation: Enhancement of open source software project management efficiency
Dissertation solves two problems of inefficient management of open source projects in the commercial companies. Even today most open source projects that originated in commercial setting are poorly managed. They also often fail. I identified two reasons for that. First, companies do not understand how open source teams work. To solve that, I created a model of open source software development lifecycle, studied self-organization in open source teams and developed a strategy to form and manage self-organizing teams. Second, companies do not understand how to estimate time and cost of open source project. To solve that, I developed an analog model for time and cost estimation.