Date of Birth: | 15 May 1980 |
Location: | Greater Zürich Area, Switzerland |
E-mail, Matrix: | ndl@endl.ch |
LinkedIn: | https://www.linkedin.com/in/ndlmaker |
Website: | https://endl.ch |
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.
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.
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. |
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. |
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
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
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
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
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:
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
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: 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 |
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.
Russian, Ukrainian: | Mother tongues |
English: | Fluent |
German: | Intermediate (TELC B1 Certificate, 2017) |
Swiss German: | Beginner |