It’s recommended to read PDF resume version, HTML version below may lack some formatting present in PDF and does not include contact information to prevent spam bots from mining it.
1 Personal Data
|Date of Birth:||15 May 1980|
|Location:||Greater Zürich Area, Switzerland|
Apply my talent, knowledge and experience in research and development of challenging, “algorithm-rich” projects to meet or exceed customer expectations and ensure further self-growth.
- Able to perform and guide practical and results-driven research for complicated problems.
- Can architect, design and implement complex systems using multiple technologies and languages.
- Have practical experience processing large data sets, performing complexity analysis, optimizing performance and memory usage, parallelizing algorithms.
- Can comprehend and work with large-scale software projects (millions lines of code).
- Have broad experience with end-to-end ownership / full software development life cycle.
- Managed teams of up to 6 people, strove for establishment or enhancement of management and development processes whenever that supported company goals.
- Able to acquire new problem domains, technologies and languages quickly and thoroughly.
- Can efficiently work both highly autonomously and in the team.
- Able to explain complex technical matters in simple words to customers / upper management, present the most relevant results, support decision making.
- Have successful experience in communication with customers in all areas related to SDLC, met or exceeded expectations in most projects.
- See the “bigger picture” to ensure long-term advantages for the company.
4 Skills Summary
|Domains:||Advertisement & traffic quality, CAD/CAM, computational geometry, images & videos processing, computer vision, networking, rapid prototyping, wire bending, XMPP.|
|Paradigms:||Object-oriented, generic, structured, functional, logical, actor model.|
|Languages:||C++, C#, C, Python, Erlang, VB.NET, Ruby, Perl, SQL, Java, Haskell, Lua, Tcl, Pascal, Assembler (x86), Lisp, Prolog.|
|Technologies:||OOD, DDD, UML; OpenMP and “generic” multi-threading; .NET Framework (incl. WPF, LINQ); OpenGL; RDBMS (MySQL, PostgreSQL, SQLite); Ruby On Rails; HTML, CSS, XML; LATEX.|
|Operating Systems:||Windows, Linux (multiple distributions, including embedded), Mac OS X, FreeBSD.|
|Libraries:||Boost, Loki; Bullet; CGAL; GTS, OpenMesh; Infragistics NetAdvantage, Qt, wxWidgets, Tao; ITK, VTK; OpenCASCADE; OpenCV; QuickGraph; WildMagic; Wt.|
|Code quality:||CCCC, CppCheck, Vera++; ClockSharp, FxCop, StyleCop; PMD (CPD), Simian.|
|Tools:||AQTime, CodeAnalyst, DevPartner, Rational Quantify; Doxygen, Sandcastle; Gallio; IncrediBuild; QEMU, VirtualBox, VMWare; SWIG; T4; Wix.|
|SCM:||CruiseControl.NET, Hudson; Git, Subversion; CMake, MSBuild, Make, Jam, Automake / Autoconf; Redmine, Trac.|
|Environments:||Microsoft Visual Studio 98 - 2010, GCC and Clang toolchains (native and cross-compilation to multiple embedded platforms), NetBeans (Erlang), Qt Creator (VS 2010 & GCC).|
|Google:||Multiple technologies and products for parallel processing / cluster computing, remote storage & data analysis.|
5 Professional Experience
Software Engineer Aug 2011 - present
Google / Ad Traffic Quality team, Zürich, Switzerland
- Ad traffic analysis to detect abusive / fraudulent patterns.
- Ad traffic quality signals, metrics and filters development.
- Led ad fraud botnets fighting efforts, including external information sharing and collaboration (e.g. BotConf-2014 presentation).
- Skills: C++, Python; multiple Google-internal technologies, languages and products.
Chief Scientist Feb 2010 - Aug 2011
Deebmedia, Amsterdam, Netherlands
- Responsible for the whole video processing and algorithmic stack: architecture and design, algorithms selection, implementation.
- In particular, research and implementation of robust, online algorithms for video background reconstruction in complex scenes and highly accurate object tracking.
- Skills: C++, Lua; multi-threading; boost, ITK, OpenCV, Qt; SWIG; Redmine, Subversion, CMake, Hudson, Simian, Vera++; Mac OS X.
Senior Software Engineer / Project Manager (independent contractor) Nov 2005 - Jul 2011
Automated Industrial Machinery, Inc, Chicago, IL
End-to-end ownership of the following projects:
Specialized photogrammetric system Oct 2009 - Jul 2011
- Researched and made all the decisions on system design, hardware components and algorithms to be used.
- Constructed hardware system prototype.
- Designed and implemented universal camera communication layer and camera calibration procedure.
- Researched and implemented photogrammetric reconstruction algorithms.
- Skills: C#, C++; .NET / WPF; boost, CGAL, ITK, OpenCV, OpenMesh, Loki, WildMagic; Gallio, T4; Hudson, Redmine, Subversion.
- BenderCad project: CAD system for wire bending industry Aug 2007 - May 2009
- Designed and implemented data-driven, flexible and extensible CAD framework suited for wire-specific CAD tasks.
- Performed seamless OpenCASCADE integration with C# project for rendering and import functionality.
- Designed and implemented uniform WinForms UI that is well separated from core functionality.
- Managed the team of 3 sub-contractors.
- Resulting system allows to cut model design times from days (when using conventional CAD packages) to typically less than one hour.
- Skills: C#, C++; Infragistics NetAdvantage for WinForms, OpenCASCADE, Loki, QuickGraph, WildMagic; Subversion, Trac.
- WireAnimation project: bending machines simulation Jan 2007 - Jul 2011
- Designed and implemented highly configurable single code base that provides support for all different models of AIM bending machines.
- Implemented support for complex wire-bending scenarios.
- Managed to achieve real-time calculations, including collisions detection.
- Resulting system allows avoiding costly / dangerous experiments on real hardware and replacing them with debugging wire bending programs in simulator.
- Skills: VB.NET, C++; OpenGL; bullet, Tao; Subversion, Trac.
- CAD Wire Import: STEP/IGES wire models import Nov 2005 - Mar 2006
- Implemented reliable centerlines extraction, including work-arounds for import problems of semi-broken CAD files.
- Resulting system greatly simplifies modeling workflow by allowing to import models prepared in traditional CAD packages directly to bending machines control software.
- Skills: C++, VB.NET, VB6; OpenCASCADE, wxWidgets.
Algorithm Consultant (independent contractor) Sep 2007 - Nov 2007
Atoms Optical Measuring, Locarno, Switzerland
- Consulted developers on numerical algorithms best suited for customer’s needs.
- Researched and implemented algorithm prototype for highly accurate image segmentation.
- The developed algorithm was used as one of the key components to achieve micron-level measurements accuracy.
- Skills: C++; OpenMP; ITK, OpenCV, WildMagic; Subversion, Trac.
Senior Researcher / Team Leader (full-time employee) Aug 2000 - Jul 2007
Materialise, Kiev, Ukraine
- Researched and implemented complex, high-performance algorithms and data structures in computational geometry and rapid prototyping domains that formed the core of Materialise DigitalCAD kernel.
- Integrated resulting algorithms to Materialise libraries (≈ 1.5 million lines of code project), performed their maintenance, significantly improved libraries design.
- Guided research and managed research team of 6 researchers.
- Introduced multiple processes improvements in research team, including automatic testing introduction, autobuild system, code quality measurements, projects communication and documentation policies.
- Conducted trainings on Materialise libraries for the developers of Materialise products.
- Performed technical evaluation and made hiring decisions on candidates to the research team and other teams.
- Algorithms developed by research team served as the basis of principal Materialise products: Magics, Mimics, Simplant, 3-matic.
- Skills: C++; OpenMP, multi-threading; boost, CGAL, GTS, VTK; IncrediBuild; in-house bug-tracking system, CruiseControl.NET, Subversion, VSS.
Software Engineer 1998 - present
Multiple open-source projects
Developed multiple stand-alone open-source projects and contributed patches to existing ones, some examples are below:
mod_archive2 Sep 2009 - Dec 2009
- Integrated the necessary components to produce full development environment for Erlang-based projects, including autobuilds, automatic tests with code coverage and code quality checks.
- Designed and implemented server-side XMPP messages archiving based on Erlang actor model.
- Implemented universal storage access layer interfacing both RDBMS and Mnesia.
- This project is the only complete open-source solution supporting current version of XEP-136 archiving specification.
- Skills: Erlang, SQL; Mnesia; Dialyzer, ejabberd, NetBeans, MySQL, PostreSQL, SQLite; Hudson.
- Linux bcm43xx driver master mode support Apr 2006 - May 2006
- Learned IEEE 802.11 standards deeply enough to understand the way master (access point) mode works.
- Recovered the way Broadcom Wi-Fi chipsets handle master mode using available incomplete documentation and experiments.
- Implemented the necessary changes to bcm43xx driver to support master mode using OpenWrt-running router as target platform.
- Fixed issues in related software components - hostapd, Linux d80211 stack.
- Submitted and followed up the patches until they were integrated in the corresponding projects.
- The patches became the basis for master mode support in Linux drivers for Broadcom Wi-Fi chipsets.
- Skills: C, IEEE 802.11, Linux.
More information on projects is available here: http://endl.ch/content/projects
|1997 - 2003||Master of Science in Computer Science with distinction, Cybernetics Faculty, Department for Theoretical Cybernetics, Kiev National University of Taras Shevchenko, Kiev, Ukraine|
7 Trainings & Certifications
- “Project management” training by Institute for Business Development, 2007.
- “People management” training by Synerguy BVBA, 2007.
- “Leadership and Managerial Skills”, “Team Building” trainings by Axioma Consulting, 2003.
- Master BrainBench certificates, most scores are above 98% of other test takers: C#, C++, Project Management (2008), RDBMS Concepts, Network Security, Linux Administration (General).
|Russian, Ukrainian:||Mother tongues|