Vasil Velikov
Verified Expert in Engineering
Software Developer
Sofia, Bulgaria
Toptal member since November 5, 2019
Vasil is a curious software engineer with in-depth knowledge of algorithms and mathematics. He has over ten years of experience writing high-performance software in C++. His expertise includes design, architecture, estimation, implementation, testing, integration, deployments, and documentation.
Portfolio
Experience
Availability
Preferred Environment
Git, Visual Studio, Visual Studio Code (VS Code), Vi, Linux
The most amazing...
...software I have developed is a set of complex computational geometry algorithms used for photorealistic rendering.
Work Experience
Technical Lead Product Development Manager
PROS
- Led a 10-member team of developers, QEs, and DevOps.
- Contributed to RESTful API design.
- Designed deployment procedures.
- Automated the deployment process using Jenkins.
- Implemented core product features using C++.
- Performance-tested REST services.
Core Software Developer
ESI Group
- Developed various features in C++ 14.
- Developed a generic C++ reflection framework.
- Implemented geometry processing algorithms and visualization with OpenGL.
- Developed the front and back end of a PoC of a web-based CAE data management system.
- Developed the continuous integration system.
Software Developer
INCOM Storage GmbH
- Designed and implemented a standalone Linux software for recording to CD, DVD, and Blu-Ray.
- Implemented an extensive test coverage.
- Created documentation with Doxygen.
- Owned all stages of the development - design, architecture, estimation, implementation, testing, integration, and documentation.
Software Developer, Scientific Computing
Fraunhofer Institute for Algorithms and Scientific Computing
- Designed and implemented a module for molecular potential fitting.
- Applied local and global optimization methods.
- Researched optimization algorithms from various research papers.
- Contributed to the parallelization of the computations with non-blocking MPI calls.
- Created documentation with Sphinx.
Software Developer
Chaos Group
- Implemented and optimized rendering and computer graphics algorithms in C++.
- Owned all geometry processing modules.
- Integrated with third-party libraries and frameworks.
- Contributed to detailed profiling with a focus on fine-tuning the algorithmic and memory performance.
- Implemented Python binding for the C++ API.
Experience
Search Engine for Airline Tickets
I oversaw the delivery of the project.
My responsibilities included:
- building the project roadmap and ensuring its delivery
- resource allocation
- definition of and adherence to the internal Agile processes
- release and deployment management
- active participation in technical and architecture designs
- active participation in code reviews
- delivery of core features
The technologies used were:
- modern C++, Python
- several SQL and NoSQL databases
- Linux, Git
- virtualization and distributed computing
Framework for Generic C++ Reflection
My responsibilities included:
- automatic serialization and deserialization
- automatic building of API bindings for other languages
- in-depth code analysis
The purpose of this project was to create a generic framework for C++ reflection that can be run on any code base without any modifications of the code. The implementation of the framework was based on a two-pass compilation; the purpose of the first pass was to gather and store the class meta information. The framework was written in C++ and exploited heavily modern C++ features - variadic templates and template trait techniques.
My responsibilities in the project were to design, implement, and document the entire framework, as well as provide proof of concept implementations of the aforementioned applications.
Subdivision and Displacement Geometry Algorithms
I worked on this project and the V-Ray rendering engine. I had ownership of the dynamic geometry modules.
My responsibilities included:
- design and implementation of new dynamic geometry generation algorithms
- maintenance and improvement of the existing algorithms
- in-depth profiling, performance, and memory optimization
- integration of third-party geometry libraries
- documentation
The technologies used were C++ and several profiling tools.
Molecular Potential Fitting
Education
Master's Degree in Scientific Computing and Numerical Mathematics
University of Bonn - Bonn, Germany
Bachelor's Degree in Mathematics
Sofia University - Sofia, Bulgaria
Bachelor's Degree in Computer Science
Sofia University - Sofia, Bulgaria
Skills
Libraries/APIs
Standard Template Library (STL), jQuery, Node.js, NumPy, SciPy, Open MPI, OpenGL
Tools
Git, CMake, Jira, Confluence, Visual Studio, VTune, Jenkins, Gerrit, Buildbot, Apache JMeter, Postman, Vagrant
Languages
C++, C++14, Java, JavaScript, Bash, Python, HTML, PHP, CSS, GLSL
Paradigms
Generic Programming, Design Patterns, REST, Concurrent Programming
Frameworks
Boost, Bootstrap, Swagger
Platforms
Linux, Windows, Visual Studio Code (VS Code), Intel, NVIDIA CUDA, Docker
Storage
MySQL, MongoDB, MariaDB
Other
Algorithms, Mathematics, Data Structures, Software Architecture, Processing & Threading, Profiling, Debugging, Performance Tuning, Data Science, Full-stack, Numerical Methods, Computational Geometry, Vi, Cloud, SaaS, Rendering
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring