Alexander Tsvyashchenko
Personal Data
- Location
- Greater Zürich Area, Switzerland
- 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.
- 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 - presentGoogle / Google AI team, Zürich, Switzerland
- Large-scale ML system research and development.
Autonomous Flight Specialist / Machine Learning Researcher
Dec 2019 - Oct 2020Daedalean 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 2019Daedalean 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 2020FAIRTIQ, 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 2019Google / 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 2016Google / 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 2011Deebmedia, 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 2011Automated 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 2007Atoms 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 2007Materialise, 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 - presentMultiple 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 - 2003Kiev 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