
Viktor Kirilov
Verified Expert in Engineering
Multithreading Developer
Viktor has more than four years of experience developing for the games and VFX industries, but since 2015, he's been mainly working on open source projects and contract work. He's passionate about game engines, high-performance code, data-oriented design, cryptocurrencies, minimizing friction, and incorporating good practices in the software development process such as testing and the use of tools.
Portfolio
Experience
Availability
Preferred Environment
CMake, Git, Visual Studio, Windows
The most amazing...
...project I’ve worked on is Doctest—the fastest feature-rich C++98/C++11 single-header testing framework for unit tests and TDD—also my best open-source work.
Work Experience
Programmer
Chaos Group
- Integrated V-Ray into Maya (scene translator/exporter) using the Maya API; this was the main task.
- Integrated the XGen Maya plugin (a geometry instancer that lets you populate the surface of polygon meshes with an arbitrary number of primitives either randomly or uniformly placed).
- Contributed to the build-system design and implementation; based on CMake.
- Optimized different parts of the Maya-to-V-Ray translator pipeline.
Programmer
Gameloft
- Implemented 3D programming (rendering techniques).
- Developed shaders (shadow mapping written in GLSL).
- Wrote gameplay and network programming.
- Developed engine subsystems.
Experience
Doctest | The Fastest Feature-rich C++98/C++11 Single-header Testing Framework for Unit Tests and TDD
https://github.com/onqtam/doctestRead-compile-run-loop | A Tiny and Powerful Interactive C++ Compiler (REPL)
https://github.com/onqtam/rcrlMix Tests and Production Code With Doctest | Implementing and Using the Fastest Modern C++ Testing Framework
https://www.youtube.com/watch?v=eH1CxEC29l8• Register code automatically before the program enters main()
• Decompose expressions with templates
• Translate exceptions: type-erased user-registerable translators
• Write a header-only library which compiles very very fast not at the cost of runtime performance
• Implement assert macros that don't result in code bloat
• Deal with warnings outside of the framework header—generated by code expanded from macros
Skills
Languages
C++17, C++, C, C++11, C++14, HTML, GLSL, Lua, TypeScript, PHP, Pascal, Java, D, Assembly, Python, JavaScript, SQL
Libraries/APIs
Standard Template Library (STL), SDL, OpenGL
Tools
Microsoft Visual C++, Travis CI, Microsoft Visual Studio, Maya, GitHub, CMake, Emscripten, Subversion (SVN), GCC, Valgrind, Visual Studio, Git, Coveralls, Jenkins, Make, MSBuild, VTune
Paradigms
Agile, Continuous Integration (CI), Object-oriented Programming (OOP), Testing, Unit Testing, Template Metaprogramming, Metaprogramming
Platforms
Android, Windows, Linux, Unix, MacOS
Other
Autodesk Maya, Build Systems, Sanitizers, Static Analysis, Mobile Games, Optimization, IP Networks, 3D Graphics, Debugging, Debugging Tools, Clang, Cisco Networking, Compilers, 3D CAD, Multithreading, Processing & Threading, Mobile Game Development, TCP/IP, 3D Games, Multiplayer, Routing, Network Protocols, Networks, Algorithms
Frameworks
Boost, Google Protocol Buffer, Qt
Storage
JSON, MySQL