| Name | Yurii Cherkasov |
|---|---|
| Birthdate | 21.05.1982 |
| yurii.cherkasov@protonmail.com | |
| Phone |
|
| Current location | Bangkok, Thailand (UTC+7) |
Overview
I am a dedicated software engineer, having more than a decade of experience in software design and development, with the passion for creating good programs and products. My biggest expertise is in C++, as well as Java/Python as secondary languages, separately or together. I supported legacy systems, implemented new systems, and designed them from scratch. I have experience both in enterprise and in startups, setting up development processes and workflows, Agile/Scrum, code review, Continuous Integration, and task tracking, and providing technical leadership to a small team of Software Engineers, DevOps and QA. You can take a look at my projects on Github, including but not limited to following software projects
Projects
- Advanced C++ by Example
I create educational material for the Advanced C++ course
- Comprehensive C++ Books Catalog
I’m a creator and maintainer of the most Comprehensive C++ Books Catalog
- Probabilistic Calculator
Probabilistic calculator, checking whether the file of other binary data is encrypted or not
- MD5 Bruteforcer
Simple multi-threaded MD5 password bruteforcer for MD5 hash (with educational purpose only!)
- Code Generator
Generator of program code and reports supporting C++, Java, HTML5 and Markdown. This CV has been generated with the help of this exact generator
Professional Skills
-
Strong experience in С/C++ (incl. C++14/17, STL, Templates)
- Boost (general purpose libraries, Networking, Metaprogramming)
- Qt5, QtLinguist, Qt Installer Framework
- Cross-platform Development, which I consider my valuable asset
- Concurrency, lock-based and lock-free techniques, IPC, distributed computing
- Educational content
-
Smaller but still good experience in Python
- Django REST Framework
- PyQt5, PyQML, developing desktop applications with Python
- CI/CD pipeline automation
- In general, I can automate basically everything with Python, and like to do so
-
Working experience in Java
- Core Java and JavaFX for cross-platform desktop development
- High-load blackbox testing platform for REST API
-
Unix development
- Traditional Unix Toolchains: Scripting (bash), Building (gcc, Makefiles), Debugging (gdb)
- Modern Unix Toolchains: Profiling (perf, Valgrind), Containerization (Docker), Virtualization (KVM, Xen)
- POSIX, pthreads, high-performance techniques like CPU affinity or kernel bypassing
- Experience of developing for Linux, BSD family and proprietary Unix systems
-
Windows development
- Windows API, multithreading, services, COM and RPC
- Low-level development, exploit guards, system hooks
- WinDbg usage and crash-dumps analysis
-
Database development
- Use SQL queries, stored procedures, triggers, views, and indexes
- Working experience with large relational databases: MS SQL, Oracle 11g, Postgres
- Use NoSQL (MongoDB, Redis) in a variety of projects, from design to optimizations
- Using embedded databases on a regular basis: SQLite, UnQLite
-
DevOps skills
- Continuous Integration and Delivery: TeamCity, GitLab CI, GitHub Actions
- Git(Hub): Version control, Branch and Release Management
- Docker, Ansible and general workflow automation on Linux
- AWS, deployment and management tools, AWS CLI and Boto3 API
- MS Server-Side Technologies: Active Directory and LDAP, Hyper-V Server, Docker for Windows
-
General skills
- Common tools for version control, issue tracking and documentation: Git, Jira, Confluence, Doxygen
- Modern Object-Oriented Analysis and Design
- XML/XSL/XSD libraries and XPath Queries
Experience
12.2019 - 04.2022
Vektor T13 Technologies, LLC - IT-Security Startup
| Position: | Lead C++ developer |
|---|---|
| Description: | We were a small startup, attempting to create a line of privacy-related products, including protection against fingerprinting, surveillance and tracking, and had plans of a hardened VPN service |
| Projects: |
|
| Programming languages, products and technologies: | C, C++, Qt5, Python, PyQt, Django REST Framework, CMake, TeamCity |
09.2019 - 12.2019
Massive, LLC - Distributed computing service provider
| Position: | Senior Software Engineer |
|---|---|
| Description: | Working on cross-platform Windows/macOS SDK for alternate application monetization platform, giving developer much more freedom of earning on his free applications, than just adding annoying ads. |
| Projects: |
|
| Programming languages, products and technologies: | C++, Python, JavaScript, CMake, AWS API, Google Test |
10.2014 - 07.2018
WebGear Services, LTD (Trademark CyberYozh) - Internet Privacy Startup
| Position: | Consultant, Lead C++ developer |
|---|---|
| Description: | From this point, I turned from large corporations to small startups. With my enterprise experience, I defined basically everything from architecture to process from scratch, including Continuous Integration and QA, but still, it was still mostly technical, not a management position. |
| Projects: |
|
| Programming languages, products and technologies: | C++, Boost, Qt5, Python, Windows RAS API, REST API, CMake, TeamCity |
11.2012 - 09.2014
Deutsche Bank AG - Global Investment Bank
| Position: | Associate Software Engineer |
|---|---|
| Description: | |
| Projects: |
|
| Programming languages, products and technologies: | C++, Boost, MS Excel/VBA, Python, XML/XSL/XPath, CppUnit, Oracle 11g, TeamCity, REST API |
07.2011 - 08.2012
Numerix, LLC - Analytics Provider for derivatives and financial products
| Position: | Senior Software Developer |
|---|---|
| Description: | |
| Projects: |
|
| Programming languages, products and technologies: | С/C++, Python, Excel COM API, WinAPI, POSIX API, Valgrind |
01.2010 - 07.2011
Wärtsilä (former Transas), Corp. - World-Leading developer and supplier of marine and aviation onboard equipment
| Position: | Software Developer |
|---|---|
| Description: | |
| Projects: |
|
| Programming languages, products and technologies: | С/C++, Java SE, Python, Autotools, CMake, XML/XSL/XPath, Google Test |
07.2006 - 07.2009
DoctorWeb, LLC - Provider of anti-malware and security solutions
| Position: | Junior Software Engineer |
|---|---|
| Description: | Here’s where my Software Engineer career has started. I wanted to touch as much as possible, but also I wanted to participate in a whole cycle from design analysis to release. Kind of success in it. |
| Projects: |
|
| Programming languages, products and technologies: | C/C++, Lua, MFC, WTL, Watcom |
Education
Saint-Petersburg State Polytechnic University
BSc in Software Engineering, 2010
The best average grade in the group, experience in student conferences and publications