Developer
Max Kryuchkov
Senior Software Engineer
20 Newmark Street, Bishopdale, Christchurch 8053, New Zealand
C++
Python
C++17
MSSQL
C# .NET
JavaScript
CSS
HTML5
Git
Algorithms
Multi-threaded systems
Qt
Oracle SQL
About
I am a senior developer who has worked in both back-end and full-stack roles. I have worked primarily on payment gateways, where I contributed to robust, reliable, scalable, and performant systems. The technologies I have worked with have been C++, Python, C#.NET, and front-end technologies (HTML/CSS/JavaScript).
Skills
Languages
C++, C++17, Python, C# .NET, MSSQL, JavaScript, Python 3
Frameworks
.NET (C#), Qt (C++)
Libraries/APIs
boost (C++), STL (C++), Chart.js
Paradigms
Object-oriented programming, Functional programming, Event-driven programming, Microservices
Platforms
Unix, Linux, Redhat Linux, Windows
Storage
MSSQL, Oracle SQL, MySQL
Tools
GCC, clang, MSVC, valgrind, GDB
Other
x64 Assembly, SIMD, SSE, AVX, AVX-512
Experience
C++.Net
7 years
Python
5 years
MS SQL
6 years
Hightlight Projects

Transaction Visualization

Full-stack project to add real-time visualization to billions of merchant transactions.
Payment Express
Payment Express

Payment Express is a major payment gateway in Oceania and other parts of the world. It handles over a billion point-of-sale and e-commerce transactions every year. I developed a full stack workflow that:

  • Utilized event-driven programming to bucket transactions (running totals) which allowed for fast aggregated queries. This allowed many complex queries to execute quickly e.g. a major merchant (with 100+ million transactions a year) could make a request to get a monthly breakdown of their transactions for 5 years, and get a response in milliseconds.
  • Created a service that specifically handles bucketed requests.
  • Developed a front-end using Chart.js that allowed merchants (and Payment Express itself) to visualize their transactions with graphs in the browser.

Major code modernization

Fixed major issues with the primary transaction processing service, allowing the company to grow/scale.
Payment Express
Payment Express

When I arrived at Payment Express the company's primary transaction processing service would periodically crash, primarily due to many race conditions. Due to a good fail-over mechanism, the company got away with this for a long time with minimal customer interruption. However, as volume increased, it became more of an issue and I was tasked to solve these problems.

  • Refactored large parts of the code base to use safer multi-threaded mechanisms, specifically this meant using RAII around caches.
  • Improved cache performance with slim read-write (SRW) locks (before it was write-only, even though most threads only ever read the caches).
  • Further improved cache performance by using boost::multi_index_container, allowing caches to be indexed on multiple keys and composite keys.
  • Made the code much more scalable, and safe to work with, primarily by making used of many C++ language features e.g. RAII, smart pointers, and template metaprogramming.
  • Fixed many memory leaks, partially due to refactors (using plain objects and smart pointers), and partially by inspecting memory dumps taken from production and finding patterns/leaks

After my changes, the service could easily go an entire three-month release cycle without crashing or needing to fail-over due to increased memory consumption.

CPDLC support in the front and middle tier

Added support for Controller-Pilot Data Link Communication (CPDLC).
Airways New Zealand
Airways New Zealand

Airways is New Zealand's only civilian air-traffic service provider. I was tasked to develop CPDLC support in the middle layer and front-end (Qt framework) of the new Air Traffic Management system that they were developing as a partner of Leidos. I successfully added support for all the different CPDLC message types.

C++ Knowledge Questions

I developed modern C++ knowledge questions to be used on the Karat interviewing platform.
Karat
Karat

Karat is a company that specializes in conducting technical interviews on behalf of many companies. While I am primarily an interviewer on their platform, I've done some content development work. In particular, due to my extensive C++ skills and experience, I developed some knowledge questions that were centered around testing a candidate's knowledge of best practices in modern C++.

Map Layer Rendering

I developed map layer rendering using Qt's Graphics View framework.
Airways New Zealand
Airways New Zealand

I was tasked to develop map layer renderering to be used by the new Air Traffic Management system that I was working on. This was done using Qt's Graphics View framework. The framework was expected to be able to parse the custom CSV format that existed in the old system, convert it to QGraphicsItems, and render it on a QGraphicsScene. I also added support for new features that were not supported by the old system e.g. custom fill patterns.

Work Experience
Senior Interview Engineer, Quality Control, and Content Developer (freelance)
Karat
|
Jun 2019 - Present

Karat is a company that specializing in conducting technical interviews on behalf of many companies. My tasks included:

  • Conducted around 350 technical interviews.
  • Acted as a quality controller for over 1700 other interviewer's interviews.
  • Developed content for C++ knowledge questions.
  • Reviewed content for new coding questions, focusing on time/space complexity analysis of possible approaches to the questions (leetcode), and reviewing the test cases.
Python 3
Algorithms
Data Structures
C++
Time/space complexity analysis
Leet code
Software Engineer (contract)
Airways New Zealand
|
Apr 2018 - Apr 2020

Airways is New Zealand's only civilian air-traffic service provider. I developed many features for the new Air Traffic Management system that they were developing. My tasks included:

  • Support for CPDLC (Controller Pilot Data Link Communication).
  • Support for map layer rendering.
  • Wrote a generic C++ library that wrapped many legacy components of the back-end system and adapted them for use in the middle layer.
  • Code reviews.
C++
Qt
Senior Software Engineer (contract)
EML Payments
|
Sep 2018 - Mar 2019

My tasks included:

  • Changed pin validation method to use pin offset (using an HSM). Thus allowing pin change.
  • MDES support (MasterCard digitization). Allowing customers to digitize their credit cards on their smart phones.
  • Developed a web API for allowing customers to send test transactions in JSON format. Translating to ISO-8583 in the background before forwarding on to the host.
  • Code reviews.


C# .NET
Microservices
C++
Oracle SQL
Software Engineer
Payment Express
|
Jun 2015 - Sep 2017

Payment Express is a major payment gateway in Oceania and other parts of the world. My tasks included:

  • Building data visualization tools for merchants.
  • Major internet technology improvements to the main host, improving reliability, scalability, and performance.
  • Several new features for front-end rendering engines.
  • Code reviews.
C++
MSSQL
JavaScript
HTML5
Software Engineer
Pebble Beach Systems
|
May 2014 - Jun 2015

Pebble Beach Systems is a major broadcast automation systems provider. My tasks included:

  • Many bug fixes for the main host service.
  • New features for device drivers e.g. support for new commands.
C++
MSSQL
Software Engineer (one year internship)
Game and Wildlife Conservation Trust
|
Aug 2012 - Aug 2013

The GWCT is a wildlife charity in the UK. My tasks included:

  • Migrating a multivalued DOS database to a modern SQL database.
  • Software solutions to assist with classifying biological data e.g. camera-trap photographs.
  • Migrating a statistical analysis program for analyzing compositional data. The migration was from DOS-BASIC (ran in DOSBox emulator) to C++11.
C# .NET
Python
C++
MSSQL
Code Reviewer
Geektastic
|
Jun 2019 - Present

Part time role doing C++ code reviews on the Geektastic platform.

C++
Education

City University

London
|
Sep 2010 - Sep 2014
First class degree in Software Engineering (with one year spent working in the industry).