Personal information me.jpg
Name Viktor Ivanov Kirilov
Address Sofia, Bulgaria
Nationality Bulgarian
Date of birth 08.11.1991
(27 years old)


Title: code::dive 2019: C++ as Assembly 2.0 - Hello Nim
slides, other conferences: OpenFest 2019

Title: The architecture of a modern SQL engine - query compilation, optimization and execution

Title: ACCU 2019: Nim - the first compiled language with full support for runtime hot code-reloading
slides, other conferences: C++ User Group Sofia

Title: CppOnSea 2019: The Hitchhiker's Guide to Faster Builds
slides, other conferences: NDC TechTown 2019, C++ Russia 2019, C++ CoreHard 2019, code::dive 2018, MeetingC++ 2018, Total Chaos 2018, in Bulgaria: C++ User Group Sofia

Title: CppCon 2018: Interactive C++ Compilation (REPL) Done in a Tiny and Embeddable Way
slides, other conferences: C++ Russia 2018

Title: CppCon 2017: Doctest - Implementing and Using the Fastest Modern C++ Testing Framework
slides, other conferences: code::dive 2017, Cpp-Summit 2017, in Bulgaria: CG2 2016, OpenFest 2016

Work experience

- present
Employer - a secure messaging app, crypto wallet, and Web3 browser: as a Software Engineer
Activities and responsibilities • Working on Nimbus beacon chain - a research implementation of the beacon chain component of the upcoming Ethereum Serenity upgrade, aka Eth2.
• Implementing the REST API of the Ethereum 2.0 beacon node & validator client.
Mar, 2019 - Mar, 2020 (1 year)
Employer NuoDB - elastic SQL database: as a Software Engineer
Activities and responsibilities • Reduced C++ build times from 15 minutes down to 3 (up to 80% faster) by integrated precompiled headers & unity builds - greatly improving the workflow of the 25+ devs and the CI infrastructure.
• Implemented per-statement memory tracking of client connections in the SQL layer + query killing.
• Worked on various functionality such as aggregate functions in the SQL layer.
• Introduced the sanitizers (ASAN/LSAN) to the codebase.
• Gave a talk about the architecture at C++ User Group Sofia - slides.
Nov, 2018 - Feb, 2019 (4 months)
Employer sponsorship of the development of Nim: as a Contractor
Activities and responsibilities On a 4 month contract - implemented hot code-reloading for the Nim programming language - paving the way for implementing a REPL on top of it. The technique is based on compiling each source file into a shared object and hotswapping them at runtime - all function calls and globals go through pointers which are initialized with a custom dynamic loader - the entire technique is implemented in the code generation of the Nim compiler which emits C/C++ code. Gave a talk about it on ACCU 2019 in Bristol, UK.
Jan, 2016 - Oct, 2018 (2 years 10 months)
Employer None - wrote open source
Activities and responsibilities
  • doctest - The fastest feature-rich C++11 single-header testing framework for unit tests and TDD. Gave a talk about it at CppCon 2017 and at code::dive 2017. Responsible for marketing, support, documentation and testing in addition to engineering. Got published on the JetBrains blog and ACCU - user growth.
  • RCRL - Read-Compile-Run-Loop: tiny and powerful interactive C++ compiler (REPL) - blog post.
    Also had a talk about it at CppCon 2018 and C++ Russia 2018.
  • game engine - With a focus on improved workflows: object composition using dynamix, custom automatic reflection built on top of LibClang to keep things DRY, and support for reloading most C++ components at runtime (including changes to the memory layout of classes). Also integrated a C++ REPL (RCRL).
July, 2013 - Dec, 2015 (2 years 6 months)
Employer ChaosGroup: as a Software Engineer
Activities and responsibilities Integration of V-Ray into Maya - worked on CMake, the scene translator, exporter & integration of XGen.
July, 2012 - June, 2013 (1 year)
Employer Gameloft Bulgaria: as a Game Developer
Activities and responsibilities Gameplay/3D/UI/network programming. Engine structure - level/object management.

Technical skills

Programming languages C/C++, Nim, Python, TypeScript, JavaScript, SQL, PHP, GLSL.
APIs, libraries & frameworks Vue.js, STL, Boost, Qt, Kafka, Protocol Buffers, LibClang, Seastar, LLVM, Bison, OpenGL, imgui, SDL.
Tools Visual Studio, Git, CMake, build systems, compilers, Emscripten & asm.js, Clang/GCC tools (formatting, static analysis, sanitizers), Valgrind, perf, Autodesk Maya, Continuous Integration, Atlassian stack.
Other Knowledge in blockchains, Ethereum 2.0, compiler development, algorithms, databases, distributed systems, multi-threaded programming, testing, automation, game development, graphics programming, network programming, network security.


2019 Center for Economic Strategy and Competitiveness (CESC) in Sofia, affiliated to Michael Porter’s Institute of Competitiveness at Harvard Business School - see the syllabus
2010-2012 University of Sofia "St. Kliment Ohridski", Faculty of Mathematics and Informatics - studied "Informatics"
2005-2010 Technology School Electronic Systems (TUES), associated with the Technical University of Sofia
Specialty: “Programming and information technologies”
Diploma serial No.К-10, No.011172, reg. No. 749-68/24.06.2010
Thesis: “Development of a 2D Worms clone with SDL under Linux” - link
2006-2008 English language course
Level achieved – C1
‘Europe Schools’ – Sofia
Certificate “CAE”(C1), ESOL
2008-2010 CISCO CCNA 1-4 courses
‘LCA-ELSYS TU’ - Sofia


Personal site
GitHub profile
Linkedin profile
StackOverflow profile
Technical books read goodreads list