Personal information me.jpg
Name Viktor Ivanov Kirilov
Address Sofia, Bulgaria
Nationality Bulgarian
Cell + 359 889 897 183
E-mail vik.kirilov@gmail.com
Date of birth 08.11.1991
(27 years old)

Talks


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
slides

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

 
Period
Mar
,
2019
- present
Employer NuoDB - elastic SQL database: as a Software Engineer
Activities and responsibilities Reduced C++ build times from 15 minutes down to 3 min (up to 80% faster) by integrated precompiled headers & unity builds - greatly improving the workflow of the 25+ devs and speeding up the CI infrastructure. Implemented memory tracking of client connections + query killing. Worked on various functionality such as aggregate functions in the SQL layer. Cleaned the sanitized builds (ASAN/LSAN). Gave a talk about the architecture at C++ User Group Sofia - slides.
Period
Nov, 2018 - Feb, 2019 (4 months)
Employer Status.im 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 - making it the first and only natively compiled high performance language with that capability. This greatly improves iteration times for developers and paves the way for implementing a REPL on top of it (which could be followed by a Jupyter kernel). 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.
Period
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.
  • - 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: a better object model for the business logic with the help of the dynamix library, no serialization boilerplate (custom automatic reflection built on top of LibClang to keep things DRY), and fast iteration times - with support for reloading most C++ components at runtime (including changes to the memory layout of classes). Also integrated a C++ REPL (RCRL).
Period
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.
Period
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++, Python, Nim, TypeScript, JavaScript, SQL, PHP, GLSL.
APIs, libraries & frameworks STL, Boost, Qt, Kafka, Protocol Buffers, LibClang, Seastar, LLVM, Bison, OpenGL, imgui, SDL and others.
Tools Visual Studio, Git, Maya, CMake, build systems, compilers, Emscripten & asm.js, Clang/GCC tools (formatting, static analysis, sanitizers), Valgrind, perf, Windows, Unix, Continuous Integration (Jenkins, Travis CI), Atlassian stack (JIRA/Confluence/Crucible/Bamboo).
Other Knowledge in compiler development, algorithms, databases, distributed systems, multi-threaded programming, OOP, testing, automation, game development, graphics programming, network programming, network security, TCP/IP stack, software development (mainly Scrum).


Education

 
2019 Center for Economic Strategy and Competitiveness (CESC) in Sofia, affiliated to Michael Porter’s Institute of Competitiveness at Harvard Business School
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


Other

 
Personal site onqtam.com
GitHub profile github.com/onqtam
Linkedin profile linkedin.com/in/onqtam
StackOverflow profile stackoverflow.com/users/3162383/onqtam
Technical books read goodreads list