From 3ae92fe625b20c187fde9534af468d0b63234f50 Mon Sep 17 00:00:00 2001 From: Konstantin Nazarov Date: Sun, 22 Oct 2023 22:02:26 +0100 Subject: [PATCH] Update CV and remove obsolete about page --- content/pages/about/note.md | 10 ------ content/pages/cv/note.md | 70 +++++++++++++++++++++++-------------- 2 files changed, 44 insertions(+), 36 deletions(-) delete mode 100644 content/pages/about/note.md diff --git a/content/pages/about/note.md b/content/pages/about/note.md deleted file mode 100644 index 0d4ad25..0000000 --- a/content/pages/about/note.md +++ /dev/null @@ -1,10 +0,0 @@ -Subject: About me - -Hi, -My name is Konstantin. I'm a software engineering professional with 15 years of experience. During my career I worked with a diverse set of technologies, ranging from RTOS kernel development to highly loaded web services. - -Currently I work at Facebook in London. - -Some of my work: - -* Open source tools and projects: [git.sr.ht/~knazarov](https://git.sr.ht/~knazarov/) diff --git a/content/pages/cv/note.md b/content/pages/cv/note.md index 0581a3b..25fbbe9 100644 --- a/content/pages/cv/note.md +++ b/content/pages/cv/note.md @@ -4,59 +4,77 @@ I'm currently based in London, UK. I have a talent visa that allows to work with ### Mar 2023 - Present: Engineering Manager @ [=nil; Foundation](https://nil.foundation) -Supporting a team that builds a custom BFT-tolerant database. +Joined the company to build a distributed BFT database. In this role, I'm fully responsible for the product, its technical design, infrastructure, user-facing tooling and security. + +Since the time I joined, I've built a diverse team of engineers, and together we delivered the initial prototype version. + +As this is a startup, in addition to management I do a fair amount of technical work as well. ### Apr 2021 - Mar 2023 (2y): Infrastructure Engineer @ [Meta](https://meta.com) -Building MySQL control plane solutions for Meta's database clusters. +As part of the Core Data PE team, I was responsible for maintaining and developing MySQL orchestration solution that is used to control the MySQL fleet at Meta. This is the largest data storage cluster that I've seen and worked with in my career, with a fair deal of challenges related to differing use-cases, rolling maintenances, upgrades, topology changes and others. + +The biggest impact that I've made in this role is helping with transition of database runtime environment from bare-metal to containers. + +My other areas of work included database-related security and troubleshooting at scale. ### May 2016 - Jan 2021 (5y): Engineering Manager, Director @ [Tarantool Database](https://tarantool.io) -Designing and building a suite of high-performance Enterprise products based on Tarantool in-memory database and application server: +Tarantool is a hybrid in-memory and on-disk database, that is highly extensible and programmable. It's been around as an open-source project for more than 15 years at this point. -- In-memory data grid to help reduce latency of enterprise IT systems, and collect diverse data into a distributed in-memory storage -- Agent-based application development framework on top of tarantool to simplify general application development -- Master Data Management system that gathers and normalizes data about clients in one distributed storage -- Channel control system that helps to distribute client communications (email, sms, messengers, etc) basing on events and flexible rules +I initially joined to build a SaaS database-as-a-service offering that intended to monetize the product. After initial experiments didn't play out well, I pivoted to custom enterprise engineering, and this is where we gradually reached success over a few years. -Managed teams that deliver those products, controlled the product scope, and participated in key design decisions. +I started building custom solutions for big telecoms and banks, mainly in the field of customer data processing (data caching, CDC, multi-tier storage, etc.), and after we realized that our solution has an edge over competition (programmability, stable engine) - I started hiring engineers and building teams around individual solutions that we shipped to the customers. + +My personal engineering contributions: +- designed and built initial version of our database clustering solution called "Cartridge", that eventually became open-source and allows to run and scale the product both on bare-metal and in kubernetes +- designed and built initial version of our enterprise "data grid" product, which ended up quite successful and was deployed to serve real production workloads at multiple large enterprise companies (and still makes money to this date) + +Management-wise, my team has grown to 45 people, including engineering managers, product managers, marketing and technical writers. ### Jul 2012 - May 2016 (4y): Engineering Manager @ [Parallels](https://parallels.com) -Helped increase reliability of Parallels' internal systems and processes. +Parallels is a virtualization product, that allows to run Windows on a Mac. -Managed a team of 5 Developers/SREs. +I joined as an engineering manager with one explicit goal - to reduce the time it takes the product to go from the developer committing the code to getting the functional product "image" from 10 hours to 1 hour. +This was a challenging problem, because virtualization products contain parts compiled for all popular operating systems, including drivers / guest tools. And often components require very specific versions of compilers and build environments. +Having multiple parallel versions of the product means that older build environments need to be maintained exactly as they were originally set up. -Helped to split company's IT assets and systems during the separation of Consumer business from Service Provider business. +Together with the team, we ended up building a system of reproducible packaging of OS images for Windows, MacOS and Linux based on Chef and Packer. This was then deployed to our custom distributed build mesh, that consisted of heavily tuned Jenkins and build actors on our own server virtualization platform. -Migrated IT systems from physical hardware to fully virtualized internal cloud and a reliable distributed filesystem. +To make the process of working with images easier, we've built a custom Vagrant provider for Parallels Desktop which was open-sourced and still used by the community. -Migrated critical cross-platform products (Parallels Desktop and Parallels Access) from an in-house build scripts written in Python to a multi-stage CI/CD pipeline based on Jenkins. - -Introduced configuration management and automated deployment based on Chef. - -Implemented centralized monitoring, log collection and on-call shifts. - -Migrated a large 10-year codebase to git and helped 50+ developers to transition to it. +As part of the infrastructure team, I also contributed a lot to how the product's C++ codebase is structured, and to the team's feature workflow. ### Mar 2012 - Jul 2012 (3m): Software Engineer @ [VK](https://vk.com) -Implemented asynchronous LDAP authentication library in C, including the partial implementation of LDAP protocol. -Implemented authentication forwarding in a high-performance mysql proxy +Mail.ru was the biggest email provider in Russia at the time. +During this short employment, I was working on integrating LDAP authentication to the email service, so that internal corporate users could log in to email with their corporate credentials. -A relatively short stay there, left for a management position at Parallels. +I wrote an efficient async LDAP client implementation in plain C, that could authorize against a domain controller and wasted negligible amount of compute and memory resources. This required implementing a subset of the LDAP protocol from scratch, just enough to perform the authentication handshake. + +After completion of this project, I joined Parallels as an engineering manager. ### Nov 2009 - Mar 2012 (2.5y): Software Engineer @ [Deutsche Bank](https://db.com) -A member of development team of an algo trading project. The project is a universal algorithmic asset trading platform consisting of a DSL compiler, execution engine and a large set of market connectivity libraries. The platform is written in C++ with heavy use of boost and multithreading. +During this employment, I worked on two projects: + +Arina - traditional equity trading system. +In this project I mostly was responsible for maintenance and bug fixing, as it didn't need any major development at that time. + +Auto Hedger - automated algorithmic trading. +Here I was responsible for writing market connectivity adapters in C++ (mainly FIX-compatible). ### Mar 2007 - Feb 2009 (2y): Systems Software Engineer @ [Auriga](https://auriga.com) -A member of LynxOS-178 development team. LynxOS-178 is a hard real-time POSIX-compatible OS with support for time- and space-partitioned containers. +This was my first serious "corporate" job after the university. +I joined the company after successfully completing their systems programming courses and passing interviews. -Mainly worked on kernel bugfixing, and verification of time/space guarantees. +I was a part of the team that was developing a custom RTOS called LynxOS-178, which is primarily targeting avionics and satellites. +In this team, I worked on the OS kernel, mainly in bug fixing, debugging, testing, validating time and space guarantees, and certification. ### Jan 2002 - Mar 2007 (5y): etc -Internships, small gigs. +Since the time I finished learning C++, I started offering my services to companies that needed simple financial or asset tracking software. +This was most of the time project-based employment, where I would get a fixed amount of money for shipping a project and then move on to the next company.