Resume

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.

Alexander Tsvyashchenko

1  Personal Data

Date of Birth:15 May 1980
Location:Greater Zürich Area, Switzerland
LinkedIn:http://www.linkedin.com/in/ndlmaker
Website:http://endl.ch

2  Objective

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.

3  Profile

  • 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

6  Education

1997 - 2003Master 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).

8  Languages

Russian, Ukrainian:Mother tongues
English:Fluent
German:Intermediate

User login