ndl@home

The PDF version is built from the same source as the page below and is the one to print or send on.

Alexander Tsvyashchenko

Personal Data

Location
Greater Zürich Area, Switzerland
LinkedIn
https://www.linkedin.com/in/ndlmaker
Website
https://endl.ch

Contact details are in the PDF version. To reach me directly, use the contact form.

Objective

Use my talent, knowledge and experience in R&D of challenging, ML and “algorithm-rich” projects to help the companies succeed. Learn new things and grow along the way.

Profile

  • Perform and guide practical and results-driven research for complicated problems.
  • Architect, design and implement complex systems using multiple technologies and languages.
  • Comprehend and work with large-scale software projects (millions lines of code).
  • Work with huge (= literally Google-scale) data sets, optimize local and distributed software.
  • Manage teams, establish or enhance management and development processes.
  • Acquire new problem domains, technologies and languages quickly and thoroughly.
  • Efficiently work both highly autonomously and in the team.
  • Explain complex technical matters in simple words to customers and upper management, present the most relevant results, support decision making.
  • Own projects end-to-end, handle full software development life cycle both for “conventional” and ML projects.
  • Communicate with customers and stakeholders in all areas related to SDLC.
  • See the “bigger picture” to ensure long-term advantages for the company.

Skills Summary

Recent Skills

Top skills used through the last year.

Domains
Autonomous Flight, Machine Learning, Computer Vision, Images & Videos Processing, Cloud Computing, Visual Simulation, Certification and Formal Verification, Hardware (Embedded Devices, GPUs, FPGAs).
Languages
C++, C, Python, OpenCL, various IRs.
Frameworks & Platforms
TensorFlow / Keras, TVM, Determined AI, Unigine, LLVM / Clang, Nix, Docker, GCP, Yocto, Xilinx Vivado.
Libraries
ONNX / ONNX Runtime, Z3, OpenCV, Pandas, scikit-learn, Matplotlib, Dash / Plotly.

Past Skills

Examples of the skills used in the past. Can pick most of these back up in a matter of days if the need arises, as well as very quickly learn the new ones.

Google
Multiple internal technologies and products for machine learning, parallel processing / cloud computing, remote storage & data analysis.
“Soft” skills
Navigating organizational complexity, managing relationships with other teams, performing full lifecycle of machine learning projects, teaching ML classes.
Domains
machine learning, advertisement & traffic quality, CAD/CAM, computational geometry, images & videos processing, computer vision, networking, rapid prototyping, wire bending, instant messaging.
Paradigms
Object-oriented, generic, structured, functional, logical, actor model.
Languages
C++, C#, C, Python, Kotlin, Erlang, VB.NET, Ruby, Perl, SQL, Java, Haskell, Lua, Tcl, Pascal, Assembler (x86), Lisp, Prolog.
Technologies
TensorFlow, TFX, Apache Beam (Google Flume); 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
Linux (multiple distributions + embedded), Android (AOSP), Windows, 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, GCC and Clang toolchains (native and cross-compilation to multiple embedded platforms), NetBeans (Erlang), Qt Creator.
Administration
Networking services on *nix platforms, IDS / monitoring. Maintain my private server (SMTP / webmail, WWW, IM, storage, calendaring, project management, etc) since 2007.

Professional Experience

Staff Software Engineer

Nov 2020 - present

Google / Google AI team, Zürich, Switzerland

  • Large-scale ML system research and development.

Autonomous Flight Specialist / Machine Learning Researcher

Dec 2019 - Oct 2020

Daedalean AI / Detect and Avoid team, Zürich, Switzerland

  • Research and development of the visual traffic detection system to detect uncooperative airborne obstacles:
    • Conducted a comprehensive survey on the available models and algorithms for ML-based object detection + tracking and led further experiments with the most promising approaches.
    • Led the research and development of multiple approaches for incorporating the temporal information into object detection ML models to increase the accuracy of the system.
    • Set up and integrated the Determined AI platform for distributed training, as well as optimized the training pipeline.
    • Designed and implemented the simulation of camera imaging pipeline to reduce the gap between the simulated and real data.
    • Co-designed and co-developed, with Simulation team, the full pipeline for specifying, modelling and generating the large volumes of the aircraft collision encounters.
    • Co-designed and co-developed, with Data team, the processes, data formats and tooling to ensure fully traceable data flows that are required for the system certification.
  • Domains: Detect and Avoid, Machine Learning (ML Object Detection and Tracking), Visual Simulation, Cloud Computing.
  • Skills: Tensorflow / Keras, Determined AI, Unigine, GCP, OpenCV.

Autonomous Flight Specialist / Software Engineer

Jul 2019 - Dec 2019

Daedalean AI / Platforms team, Zürich, Switzerland

  • Research and development of the production ML inference stack for flight-compatible hardware:
    • Gathered the input from stakeholders then researched, designed and implemented the full training-to-production models conversion and execution stack that targeted multiple deployment platforms.
    • Researched and implemented the proof-of-concept for ML kernels software verification to support both optimized execution and DO-178 certification goals.
    • Developed the proof-of-concept inference for ML models using FPGA-based Versatile Tensor Accelerator stack.
  • Domains: Machine Learning + Inference, Compilers and Optimization, Certification and Formal Verification, Hardware (Embedded Devices, GPUs, FPGAs).
  • Skills: Tensorflow, TVM, ONNX / ONNX Runtime, LLVM / Clang, Z3, Nix, Bazel, Yocto, Xilinx Vivado.

Machine Learning Consultant

Oct 2019 - Oct 2020

FAIRTIQ, Zürich, Switzerland

  • Consulting FAIRTIQ’s research department on multiple ML-related questions.
  • Skills: Tensorflow / Keras, sequence models, time series, features engineering, imbalanced datasets.

Staff Software Engineer

May 2016 - Jun 2019

Google / Google AI team, Zürich, Switzerland

  • Responsible for the full lifecycle of machine learning projects for multiple Google products:
    • Establishing and maintaining working relationships with the product team.
    • Scoping the problem and setting the goals with the relevant stakeholders.
    • Analysing the data and refining data collection processes.
    • Performing models research and experiments, evaluations and productionization.
    • Teaching product team members multiple aspects of ML in the process.
  • Domains: ARCore (Tango), YouTube, Abuse, Ads.
  • Skills: TensorFlow, TFX; multiple Google-internal technologies, languages and products; teaching ML classes inside and outside of Google.

Senior Software Engineer

Aug 2011 - May 2016

Google / Ad Traffic Quality team, Zürich, Switzerland

  • Traffic analysis to detect abusive / fraudulent patterns.
  • Traffic quality signals, metrics and filters development.
  • Tech lead for 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 (remote)

  • Responsible for the whole video processing and algorithmic stack: architecture and design, algorithms selection, implementation.
  • In particular, R&D 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 (remote)

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.
  • The system allows debugging wire bending programs in simulator which avoids costly / dangerous experiments on the real hardware.
  • 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 (remote)

  • 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 and maintained them in Materialise libraries (≈ 1.5 million lines of code project), 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; CruiseControl.NET, Subversion, VSS.

Software Engineer

1998 - present

Multiple open-source projects

Developed multiple stand-alone projects and contributed patches to existing ones, some examples are below:

mod_archive2

Sep 2009 - Dec 2009
  • 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
  • Figured out the way Broadcom Wi-Fi chipsets implement master mode using incomplete documentation and experiments.
  • Implemented and submitted the set of patches to Linux kernel and hostapd.
  • Skills: C, IEEE 802.11, Linux Kernel.

More information on projects is available here: https://endl.ch/projects

Education

Master of Science in Computer Science, with distinction

1997 - 2003

Kiev National University of Taras Shevchenko, Kiev, Ukraine

Cybernetics Faculty, Department for Theoretical Cybernetics

Trainings & Certifications

  • Multiple Google-internal trainings both on technical and non-technical matters.
  • “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.

Languages

Russian, Ukrainian
Mother tongues
English
Fluent
German
Intermediate (TELC B1 Certificate, 2017)
Swiss German
Beginner

Downloads