Here is some kind of CV, which i’ll try to keep actual.
You can download CV: as PDF.
PROJECTS / WORK EXPERIENCE
2015-NOW, MBT, Russia. At the moment I’m developing next-generation trading platform using my own unique cross-platform engine for mobile devices, web and desktop systems. Based on C++14 and OpenGL ES it delivers unmatched design and quality, and works fantastic even inside web environment thanks to emscripten cross-compilation into JS. Also I’m working on distributed architecture of micro services which are aimed to improve client experience with a lot of new features.
2012-2015, I’m developing various mobile applications for Android and iOS using my own custom cross-platform app engine for both desktop and mobile devices (slides). Using single C++11 you can create apps for various platforms without any need to write platform-specific code. Engine has custom declarative layout for UI views, customizable UI components and solid foundation to create complex applications. Besides main applications there are some practical examples (my pet projects) are already on the markets: TripBudger – fast and stylish planner/logger of trip’s expenses, Synctimer – timer for mobile devices with cloud synchronization, Alive Numbers 2 – customizable live wallpaper with embedded widgets.
As for server side solution i’m working on distributed system inside Docker containers, which uses socket transport to implement messaging infrastructure (using nanomsg / C++11). The aim is to build applications with instant communication between devices (build truly distributed client apps).
2010-2011, Infinitech, Russia. I was arch / core developer of large russian social network and implemented there unique fast C++ server (in couple with MongoDB). Special memory cache approach for social graph gave very fast response times. I also introduced client-side web solution to handle everything at single page using custom JS-JQuery client engine for async requests (this is common practice for social networks today but at the time that was quite new approach) .
2007-2010, ALLMEDIA, Russia. As main “playing” architect i worked on high-load system of video advertisement, which was constructed on cluster of IBM servers based on my C++ Linux demons. Solution used hand-tuned cluster of VMWare virtual machines with high-availability support. System performed well even for runs within ICQ, mail.ru, etc with bandwidth more than 6Gbit/s. (link)
2007-2008. My own old project written in C# (WPF 3.0) – PerfectPhotos – good-looking software for photo processing (including raw formats and unique filters). Unfortunately, now I’m interested in cross-platform solutions and don’t have enough time to develop it further.
1997-2007, I developed a lot of windows software (at university / as freelance / as part job / as self projects) and a lot of minor web solutions.
Here is the short list of main technologies/languages i use: C++, C++11, Java, Objective-C, C#, PHP, SQL, NOSQL, Docker, JS/JQuery, WPF, QT, OpenGl, Mongo, NDK/JNI, HTML/CSS (i skip here a lot of old stuff i will not use anymore)
Strong OOP, functional paradigm, design patterns, cross-platform development, mobile development (iOS, Android), multithreading, high-performance solutions, distributed systems, security aware code, UX, virtualization/containers, complex testing, bugtracking, svn, etc.
- Experience of architecting and implementation complex network distributed systems (created several hIgh-load systems as main arch/dev).
- Ability to design and maintain structure for large-scale solutions (high-load systems, cross-platform engines, etc).
- Ability to use proper modern technologies to execute given tasks the most elegant way.
- Experience of full cycle of solution development from prototyping to post-production continuous integration.
- Skills of creating full stack of web service solutions including server-side, client-side, ui, tcp-transport.
- Skills of mobile development for both iOS and Android using self-made cross-platform solution based on C++, NDK, OpenGL ES.
- Coding in business and security aware style (trying to minimize the cost of development/hardware/support of real solutions while maintaining decent security to avoid potential architecture problems).
- Experience of using virtualised environments for server-side distributed linux solutions.
- Ability to write non-blocking multithreading algorithms for high-performance realtime flow.
- Database experience: traditional SQL and sharded NOSQL databases.
- Ability to create modern design-aware solutions to deliver the best possible UX.
- Collaboration and team-managing skills (planning, bugtracking, svn, confluence, etc).
- Friendly with agile methodologies.
Saint-Petersburg State University, PhD, 2000-2011