NIKOLAY KOROVAIKO
OBJECTIVE
- Enthusiastic Compiler Engineer seeking for challenging positions & projects
SUMMARY
- Experienced Compiler Engineer
- Master’s degree in Computer Science (Recommendation Systems)
- Proficient in C/C++, Java
- Bachelor’s degree in Mathematics and Computer Simulation
- Java/PHP/Oracle DB/DB2 Certified Professional/Database Administrator/Developer
TECHNICAL SKILLS
- Programming Languages: Java, C/C++, C#, PHP, SQL,
PL/SQL, SQL PL, LINQ, JavaScript, Python, Perl, Shell, x86 Assembly,
Erlang, Delphi (Object Pascal), HTML, XML/XSLT, DHTML, CSS
- Frameworks/Methodologies: OOP, Design Patterns, Refactoring, Agile Development, Web services (SOAP/REST), Struts 2.x, Hadoop, Lucene/SOLR, Windows Forms, WPF/Silverlight 4, Symfony 2.x, Zend Framework 1.x, CodeIgniter, Joomla 1.5, Bitrix 4/5, Mambo 4, jQuery/jQueryUI, Dojo & Dojo Widgets, ExtJS, MooTools
- Testing: JUnit, STAF/STAX, Selenium
- Databases: MySQL 4/5, Oracle 9i/10g, DB2 9.1/9.5/9.7, SQL Server 2005/2008, Mnesia
- IDEs: Rational Application Developer, Zend Studio, Eclipse, NetBeans, Visual Studio 2008/2010, Dreamweaver 8/CS3
- Tools & Utilities: LAMP, Tomcat/Jetty/WebSphere, FireBug/YSlow/Web Developer, SVN/CVS/Git, ClearCase/ClearQuest, CMVC, Ant/Make, SQL*Developer, PL/SQL Developer/TOAD for MySQL/DB2, Adobe Photoshop CS2/CS3
WORK EXPERIENCE
Staff Engineer 11/2022-01/2025
Apple Inc. is an American multinational technology company, best known for its consumer electronics, software and online services
- Collaborating with HW teams to help designing new AI features for Apple GPUs
- Adding support to the Apple GPU LLVM backend for new AI features
Staff Engineer 11/2022-01/2025
Nuro Inc is an American robotics company. Nuro develops autonomous delivery vehicles
- Building and optimizing training and onboard inference infrastructure for Pytorch models.
- Co-developed a graph compiler for integrating vendor deployment solutions (e.g. TensorRT, XLA, torch inductor) and peephole graph optimization passes.
- Re-oriented the team towards data-driven optimization processes and designed the features roadmap to meet memory and latency deployment requirements.
Senior Compiler Engineer 1/2019-11/2022
Meta, Inc. (previous, “Facebook, Inc”) is an American social media and technology company
- Led the project to enable dynamic shapes support in PyTorch to enable the next-gen compilers.
- Developed the next iteration of graph execution engine, profiler, several code-specialization optimizations based on profiling information used for serving the majority of Facebook’s ML models.
- Implemented function calls and an Inliner optimization for TorchScript.
- Added a host of small frontend features and python primitive operations. (e.g. list and tensor comprehensions, slicing, etc)
- Technical Environment: C/C++/x86 assembly, LLVM, CUDA, Python, Pytorch
Senior Compiler Engineer 10/2017-1/2019
Intel Nervana Systems is an American multinational corporation and technology company, Hillsboro OR
- Developing an infrastructure including pattern matching and graph rewrite for graph optimizations and number of graph optimizations such as horizontal and vertical fusions, CSE, algebraic simplifier, no-op elimination, copy elimination, zero dimension tensor elimination, arithmetic fusion, in-place computation optimization, etc.
- Participating in IR extension to support multiple-output operations.
- Adding reference and/or optimized implementations for a number of DL primitives.
- Technical Environment: C/C++/x86 assembly, LLVM, Eigen, MKLDNN, Python, TF, MxNet.
Senior Compiler Engineer 03/2016-10/2017
Intel is an American multinational corporation and technology company, Hillsboro OR
- Prototyping and productizing new optimizations for Optimizer and Code Generator (Lowerer). Adding new features and support for new types to existing optimizations including Inliner, Value Propagation, CFG-based (Loop) optimizations, Peephole optimizations.
- Implementing Web Assembly instructions and features in Chakra JavaScript engine.
- Developing microbenchmarks, workloads, and demos to demonstrate performance impact of implemented prototypes.
- Participating in projects exploring leveraging new hardware features in compilers
- Technical Environment: Improving/Extending an optimizing JIT compiler for Microsoft Edge with C/C++/x86 assembly, Shell, Perl, Python, git, vtune.
JIT Optimizer Compiler Developer 01/2012-03/2016
IBM Canada ltd/Java JIT Optimizer team is one of the largest technology, services and consulting organizations in Canada, Toronto ON
- Was responsible for Inliner optimization of IBM’s Testarossa compiler (known as Open Management Runtime compiler in open-source).
- Implemented a new generic dynamic-programming-based Inliner supporting multiple frontends via a pluggable cost/benefit model.
- Implemented context sensitive inlining framework based on partial callstack traces collected by an interpreter profiler and argument propagation via
- static callstacks. Explored the integration of Value Propagation into inlining process vs multiple low-cost control flow insensitive type propagation analyses.
- Worked on decoupling and modularizing Inliner components
- Explored the concept of inlining profiles to ensure that Inliner performs optimally in a variety of scenarios such as a standalone optimization, service used by other optimizations, inlining in auto-parallelizable methods
- Extended existing optimizations such as Value Propagation, Loop Versioner, Simplifier and implemented a large number of intrinsics in Code Generator(Lowerer). Implemented new optimizations.
- Enabled more optimizations for ahead-of-time compilation.
- Extended the interpreter profiler to record callstack traces consumed by Inliner. Prototyped a simple JIT Profiler.
- Was involved in performance analysis of various SPEC benchmarks and customer scenarios.
- Technical Environment: Improving/Extending an optimizing JIT compiler for IBM Java VM with C/C++/x86 assembly, Shell, Perl, Python, CMVC, git, RTC, perf, tprof, oprof, jprof, arcflow.
DB2 C++ Software developer 01/2011-01/2012
IBM Canada ltd/DB2 Query Compiler Group is one of the largest technology, services and consulting organizations in Canada, Toronto ON
- Designed the SQL Query Generator programming language and implemented the subset of the language constructs. The language delivers a complete control of various aspects of a query generation process, which allows a user to generate queries targeted at testing a particular optimization or functionality.
- Implemented various components to support the SQG programming language including the parser and interpreter components with C/C++, flex, yacc.
- Designed and developed the set of tools that constitute the larger part of the infrastructure for delivering SQG as a SaaS with C++, Java/JSP, shell, DB2 CLI tools, and jQuery.
- Performed problem investigations and delivered various optimizations to Query Rewrite.
- Developed various components for the testing framework, TestHub. The framework delivers intelligent search capabilities and is tightly integrated with existing automated testing tools.
- Designed the additional structures extending Lucene indices in order to enable high- performance search (e.g. aggregated views, partitioned indices, etc)
- Designed the data model for collecting various user interactions. Created various database objects for the model including tables, indexes, XML schemes and stored procedures.
- Designed and implemented a hybrid data framework to manipulate relational and XML/hierarchical data in a OO fashion in Java.
- Participated in design and development of the front-end for TestHub with Dojo/DojoUI and javascript.
- Technical Environment: Developing Sql Query Generator, improving/extending an optimizing SQL compiler for DB2 in C/C++, Java/JSP, Web Services, Lucene, JS/Dojo/Dojo Widgets, PHP, Perl, Shell scripting, DB2
Teacher Assistant 09/2010-12/2010
The University of Victoria offers over 100 programs to 18000 students in day, evening and distance-education classes. It is recognized for its commitment to research, scholarship, Victoria BC*
- Provided various academic assistance to the students attending
Java/C/Assembly/Algorithms classes (e.g. ).
- Tutored on various topics in Computer Science and best practices in Software Engineering.
- Resolved technical issues students experience including installation/configuration of various software, simple hardware troubleshooting
- Technical Environment: Java, C, Python, ARM Assembly
Software developer/ Web UI developer 11/2008-3/2009
MDIT Innovations provides a comprehensive software package for “clinics’ simply management”; Vancouver BC
- Created the front-end components for the Clinical Management System
(CMS) with jQuery/jQuery UI/ExtJS.
- Performed the partial migration of the front-end components from jQuery to ExtJS.
- Redesigned the layouts of the components, added the new functionality to deliver an enhanced user experience.
- Re-factored and optimized the source code.
- Technical Environment Erlang & Mnesia, jQuery, ExtJS, Eclipse, KDE SVN
System analyst 03/2008-08/2008
JSC BTA Life is one of the largest life insurance companies in Kazakhstan; Almaty Kazakhstan
- Developed new modules for the Life Insurance Information System
(LIC) with PL/SQL.
- Closely worked with actuaries, underwriters, accountants and
partners to develop standalone desktop applications with Java (Swing)
that tightly integrate various information systems inside and outside
the company.
- Designed various reports for accountants and actuaries.
- Researched the market of Life Insurance Information Systems, analyzed requirements and advantages of migration.
- Implemented various consistency checks throughout Police
Life-Cycle.
- Technical Environment: Oracle 9i, MySQL 5, Java JDK 1.4/5,NetBeans, SQLDeveloper, SVN*
Web developer 10/2007-03/2008
Megapolus Media Group is a media agency; Almaty Kazakhstan
- Experienced in Full-Cycle Web Development including requirements analysis, marketing strategies, and support.
- Created web solutions ranging from web-brochures to intranet web-applications.
- Developed the following projects:
- is an established world leader in the home electronics market; -A massive selection of funny, cool and crazy T-shirts plus the ability to have your own design printed; -The online beauty contest over Kazakhstan; - Web hosting, domain registration and quality customer support; -Company compounds of workshops: electric-mechanical, power equipment repair, electrical, fabrication of the polygon electric special equipment.
- Technical Environment: MySQL 4/5, PHP (OO), CMS
PHP developer 1/2007-10/2007
Wellcomm is a leader in providing GPS/tracking services across Kazakhstan; Almaty Kazakhstan
- Delivered an online service enabling customers and partners to activate and manage maps with GARMIN API.
- Developed report generation tooling for the service.
- Developed the calendar web-application for managing technicians’ schedules.
- Developed the for Geocaching() with built-in Google Search services
- Redesigned and maintained the web-sites ,
- Technical Environment: MySQL 4, PHP (OO), Bitrix, Java/JSP
EDUCATION
| Degree | Year |
|---|---|
| Master’s Degree in Computer Science The University of Victoria, Victoria, British Columbia | 2010 - 2011 |
| Bachelor’s degree in Math and Computing modeling The Kazakh National University, Almaty, Kazakhstan | 2004 - 2008 |
ADDITIONAL TRAINING/CERTIFICATES
| Certification / Course | Year |
|---|---|
| MindShare x86 Instruction Set Architecture | 2016 |
| French Language Studies | 2013- 2019 |
| IBM Certified Database Associate - DB2 10.1 Fundamentals | 2013 |
| Oracle Certified Professional, Java SE 7 Programmer | 2013 |
| Advanced Compiler C++ course | 2012 |
| Compiler Optimization course | 2012 |
| IBM Certified Database Administrator - DB2 9 DBA for Linux, UNIX and Windows | 2011 |
| IBM Certified Application Developer - DB2 9 | 2011 |
| IBM Certified Academic Associate - DB2 9 Database and Application Fundamentals | 2011 |
| IBM Certified Database Associate – DB2 9 Fundamentals | 2011 |
| Oracle Certified Associate Developer | 2010 |
| Teacher Assistant Workshops | 2010 |
| Zend Certified Engineer for PHP 5.0 | 2009 |
| Sun Certified Programmer for the Java Platform, Standard Edition 5.0 | 2009 |
References available upon request