Position: Senior/Lead Software Engineer
Category: Golang
Experience: 8 years | English: fluent

By diving deeply into how goroutines and WebSocket libraries work in Golang, was able to improve service performance from 300 simultaneous users to 5000 simultaneous users (for given resources, of course).

On one of the projects there were 3 different ways of communicating between two pieces of hardware. Some of them looked like "manually encode one byte, manually decode none byte". As people tend to make errors and as everything was done in C++, there were a lot crashes happening.
I liked none of existing implementations, so I took a risk and introduced fourth way of doing that... I wrote custom transport and protocol layers for Thrift (which is like gRPC from Apache).
And later on it paid off: all teams found my implementation as the best, removed those old 3 ways and started using my library.

Once I've implemented my own Redis client library for C++, because there was no decent open-source library, which would support both Redis Cluster and Redis Pipelining features. The library was also interesting because it had almost zero dynamic memory allocations.

Developed highly-efficient screen recording library, which was working for both NVIDIA and AMD video cards. The library was working faster than all existing solutions, which our team was able to find.

Implemented SNMP C++ library, which requires almost zero knowledge of SNMP from its user. It has a lot of custom data types already implemented and has code generation to add more implementations of data types.

I've had my own project, which I managed to bring from state of non-existance to the state, when it had payment services enabled, was introduced into real restaurant and was interesting for investors.

Participated in many business trips, where I managed to investigate and solve customer issues in the field.
I love to learn new stuff. 
That's why I have solid experience in broad range of domains:
* Online streaming (live shopping service)
* Pre-pay cards for cryptocurrencies
* Enterprise AI ML platform
* Video encoding/decoding
* GameDev (performance-critical AAA-grade game)
* CMTS (cable internet provision)

I also used many different programming languages throughout my experience. Mainly these were Golang, C++ and Python, but sometimes also other languages like NodeJS, C# and (of course) Bash.

So I'm able to easily learn any new domains and technologies, which are required for the project.

Mostly I was participating in development as a backend engineer. But sometimes life requires you to be more flexible, so I also do have some minor experience as a front-end engineer and even as a designer.

Here is the brief list of tools/technologies I used directly throughout my journey:
* Languages: Golang, C++, Python, NodeJS, ES6, C#, Bash
* Platforms: mostly Linux, some experience in Windows. Also have some experience in web and browser extensions.
* Databases: PostgreSQL, MongoDB, Redis, Elasticsearch, AWS S3, SQLAlchemy
* Message Queues / Event streams: Apache Kafka, NATS, AWS SQS, RabbitMQ
* Communication: Apache Thrift, gRPC / Protobuf, SNMP
* Media: NVENC, VCE, AWS IVS, M3U8
* Auth: AWS Cognito, Ory Keto
* Infra: Docker, Kubernetes, Helm, Argo Workflows, AWS API Gateway, AWS EC2, AWS Lambda, Pacemaker
* Code: git with submodules, svn, perforce, make, cmake
* Crypto: crypto wallet management, OTC exchange
* Fiat: fiat management, double-entry ledgering, issuing and managing payment cards
* Other interesting stuff I can chat about: Temporal, Boost.Asio Coroutines

In addition, I do have some valuable soft skills, which may be useful for the project:
* Leading team of 5 engineers
* Interviewing new engineers
* Taking business trips and solving issues on site with a customer
Although I can work with any programming language, I do prefer projects, whose main programming language is strictly-typed (e.g. Golang, C++, Rust and so on). So although I still absolutely fine with using languages like Python, I would prefer to minimize their use to some utility cases.
 
I'm looking for a position, where I'll be able to express myself as an engineer, meaning I want to have a possibility to propose new solutions and discuss them together with to the team, in contrary to when there is a single person which always has "final word" of how everything should be done. This adds interest to the job, and so 200% performance, so both me and my employer greatly benefit from it.
Nevertheless, when needed I'm still able to just "do as said" and to sacrifice quality over speed, because sometimes it is what it is.