<!-- =================================================================== --> <!-- === YOU ARE WELCOME TO WATCH THE FULL VERSION OF MY CV HERE! === --> <!-- === It is written using Markdown and rendered using JS. === --> <!-- =================================================================== --> <!-- full printable CV: ?show_photo=1 --> <!-- full printable cover letter: ?content=cover_letter&show_photo=1 --> # Sergey Kolomenkin <!-- =============================================================== --> <div id="basic_info_id" style="float: left; width: 100%;"> <div style="float: left;" id="main_photo_div" hidden> <img src="" id="main_photo_img" alt="photo" style="margin-top: 12pt; margin-right: 12pt; height:144pt;"/> </div> <div class="desired_specialization"> **<nobr>C++ / Python</nobr> <nobr>Senior Developer</nobr>** </div> | | | |-|-| | Loca&shy;tion | Tbilisi, Georgia | | Reloca&shy;tion | I am ready to move | | Email | <span id="my_mail"></span><!-- ; Skype: <a href="skype:kolomenkin">kolomenkin</a> --> | | Expe&shy;rience | 20 years in software development | </div> <!-- =============================================================== --> <div id="cover_letter_content" hidden> <!-- fix Markdown rendering for <H> header below --> <div style="display: none;"></div> ## Cover Letter <p class="about_me"> During **20 years in C++** I was working on various projects including system programming, computer networking, multithreading, interprocess communication for destop applications, mobile apps, backend services. </p> <p class="about_me"> I'm looking for a challenging innovative position, where I can design technically complex software solutions and develop new cutting edge products. </p> <p class="about_me"> Positions in the following areas are of special interest for me: **C++, research, high-performance systems, high load, multithreading, interprocess communication, asynchronous programming, low-level speed optimization, cross-platform compilation**. </p> **General Strengths** - deep knowledge and understanding of used technologies - system design - helping, training colleagues - striving for stable CI/CD process, internal tools, unit tests </div> <!-- <div id="cover_letter_content"> --> <!-- =============================================================== --> <div id="cv_content" hidden> <!-- =============================================================== --> ## Major Technical Strengths | | | |-|-| | Expert | **Cross-platform, multithreading, multiprocessing, async, networking**, MySQL, Bash, C++, STL, CMake, Win32 system level and high-level programming | | Very Strong | Software design, Windows file system filter drivers, Docker, Linux administration, <nobr>Python 3</nobr>, Django, DRF, OpenVPN | | Strong | Kubernetes, Boost, WebRTC, x86 assembler | <!-- =============================================================== --> <!-- <div style="page-break-after: always;"></div> --> ## Experience ### Gaijin Enter&shy;tainment, Hungary | <nobr>Senior Software Engineer</nobr> | <nobr>June 2022 - now</nobr> | | | |-|-| | Re&shy;sponsi&shy;bilities | Design and implement high-load infrastructure web service written in C++ using asynchronous programming, WebSockets, NATS messaging broker. Writing code, code review, interviewing candidates, build engineering (CI/CD), unit tests. | | Skills used: C++ | C++ 20, Boost.Asio, Boost.Beast, coroutines, STL, CMake, multithreading, networking, cross-platform | | Skills used: other | Docker, Bash, Linux administration, Jenkins CI/CD | <!-- ### <nobr>August 2021 - May 2022</nobr> | | |-| | I quit my job to focus on relocation, preparing for interviews, spending more time with my family. | --> ### N-able (ex-SolarWinds), USA | <nobr>Principal Software Engineer</nobr> | <nobr>March 2018 - July 2021</nobr> | | | |-|-| | Partici&shy;pation | Technical leadership in two internal startups (4-7 people). Created cross-platform web services using C++. Leaded the development of Windows kernel-mode driver and archieved impressive results in the use of C++ STL in kernel mode.<br /><br /> Designed an ensemble of web services. Designed and implemented backend REST services using Django, Python. | | Re&shy;sponsi&shy;bilities | System design, mentoring colleagues, writing code, code review, interviewing candidates, build engineering (CI/CD), unit tests. | | Skills used: C++ | C++ 17, STL, CMake, Windows kernel mode (file system filter driver), multithreading, networking, Boost | | Skills used: Python | Python 3, Django, DRF, JSON API, OpenAPI, type hints, pytest, flake8/mypy/&ZeroWidthSpace;pylint, pip-tools, uwsgi | | Skills used: other | Docker, Bash, Linux administration, TeamCity DSL, SQLite, MySQL, AWS | ### Rakuten Viber, Israel | <nobr>Senior Software Engineer</nobr> | <nobr>August 2015 - February 2018</nobr> | | | |-|-| | Partici&shy;pation | Development of a cross-platform C++ engine for the Viber messenger (Windows, MacOS, Linux, Android, iOS). Improved automated builds. Introducted unit tests. I was involved in system administration and monitoring. | | Re&shy;sponsi&shy;bilities | Research, writing code, interviewing candidates, build engineering (CI), unit tests. | | Skills used | C++ 11, STL, CMake, WebRTC, multithreading, networking, Docker, Bash, Linux administration, Boost, unit tests, Jenkins | <!-- <div style="page-break-after: always;"></div> --> ### Optimal Software, Czech Republic | <nobr>Senior Software Developer</nobr> | <nobr>January 2012 - July 2015</nobr> | | | |-|-| | Partici&shy;pation | Design and development of a VPN solution with custom VPN client for Windows. | | Re&shy;sponsi&shy;bilities | A wide range responsibilities, from implementing a VPN client using C++ and C#, passing web services to Linux server administration and implementing custom Nginx modules. | | Skills used | C++, STL, Boost, multithreading, networking, WinAPI, Nginx, HTTP, OpenVPN, Linux administration, Inno setup | <div style="page-break-after: always;"></div> ### Web crawler startup, Belarus | <nobr>Owner, Software Developer</nobr> | <nobr>January 2008 - January 2012</nobr> | | | |-|-| | Partici&shy;pation | System design, development, unit tests, system administration and monitoring | | Skills used | C++, STL, HTTP, regular expressions, multithreading, WinAPI, Sqlite, MySQL, PHP, unit tests | ### Artezio, Belarus | <nobr>Senior Software Developer</nobr> | <nobr>February 2007 - January 2008</nobr> | | | |-|-| | Partici&shy;pation | Software development, refactoring legacy, writing unit tests | | Skills used | C++, COM, ATL, STL, WinAPI | ### Applica, USA | <nobr>System Software Developer</nobr> | <nobr>April 2004 - August 2006</nobr> | | | |-|-| | Partici&shy;pation | <ul><li>Development of various low-level tricks with Windows: Gina replacement, API hooking, kernel debugging.<br /> <li>Tricks with tcp/ip stack on Windows: NDIS, TDI, LSP filtering.<br /> <li>Reverse engineering.<br /> <li>Manual decoding of high-level network protocols from an Ethernet packet flow. | | Skills used | C++, MFC, WinAPI, ASP, IDA, WinDbg, SoftIce, NSIS | ### Ispirer, Belarus | <nobr>Software Developer</nobr> | <nobr>June 2003 - April 2004</nobr> | | | |-|-| | Partici&shy;pation | It was a part-time job in my last year at university. I was engaged in development, improved SQL parsing, improved SQL syntax conversion between different database providers.<br /> I have proposed and developed a special metalanguage over XSLT to simplify the transformation of syntax trees. | | Skills used | C++, MFC, WinAPI, ADO, COM, ATL, MS XML, Xslt, Yacc, Lex, NSIS | <!-- =============================================================== --> <div style="page-break-after: always;"></div> ## Portfolio | | | |-|-| | Educa&shy;tion | Master's degree, Computers, Systems and Networks, Belarusian State University of Informatics and Radio&shy;electronics, 2004 | | Lan&shy;guages | English - fluent (B2, IELTS 6.5), Russian - native | ### Web Site Accounts | | | |-|-| | Linked&shy;In | [linkedin.com&ZeroWidthSpace;/in/kolomenkin](https://www.linkedin.com/in/kolomenkin/) | | GitHub | [github.com&ZeroWidthSpace;/kolomenkin](https://github.com/kolomenkin) | | Stack&shy;Over&shy;flow | [stackoverflow.com&ZeroWidthSpace;/users/739731/sergey](https://stackoverflow.com/users/739731/sergey) | ### Coding Contests | | | |-|-| | Leet&shy;Code | [leetcode.com&ZeroWidthSpace;/kolomenkin](https://leetcode.com/kolomenkin/) | | Google Code&shy;Jam | participation: [2011](https://www.go-hero.net/jam/11/name/Kolomenkin), [2012](https://www.go-hero.net/jam/12/name/Kolomenkin), [2013](https://www.go-hero.net/jam/13/name/Kolomenkin), [2014](https://www.go-hero.net/jam/14/name/Kolomenkin), [2015](https://www.go-hero.net/jam/15/name/Kolomenkin), [2016](https://www.go-hero.net/jam/16/name/Kolomenkin), [2017](https://www.go-hero.net/jam/17/name/Kolomenkin), [2022](https://codingcompetitions.withgoogle.com/codejam/certificate/summary/0000000000877249) | ### Examples of code 1. Here you can find some of my completed C++ interview test tasks: <https://github.com/work-examples> 2. [Limbo](https://github.com/kolomenkin/limbo) is a lightweight single page application written in Python with the simple ability to upload, download, list, delete files without authentication. All files are automatically deleted 24 hours after upload. 3. Task Manager Extension is a powerful open source utility that hijacks the standard Windows Task Manager and extends it with a ton of new features. The program is not working after Windows 7, alas! In 2007 I wrote an [article on Codeproject.com](https://www.codeproject.com/Articles/10462/Task-Manager-Extension) about the Task Manager Extension. <!-- =============================================================== --> </div> <!-- <div id="cv_content"> --> <!-- =============================================================== --> <br /> Updated on: 01 of November 2023