Position: Software Engineer
Category: Rust
Experience: 5 years | English: upper

At the State University of Telecommunications, I invented, developed, and deployed a remote computer supervision solution for teachers using the Go programming language. A central server would receive updates from agents running as headless Windows service on computers in the classroom, and allow issuing remote commands like to make a screenshot, or shut down the computer, or show a text message to a student - and so on. 

At Telecard-Prylad Ltd., as the sole young administrator in my department, I created a solid virtual infrastructure with PKI for remote work of 2 distinct departments during CoVID-19. As a developer, I wrote a distributed (w/o blockchain stuff) content-addressed file storage site in Go and did some low-level network programming for Software-Defined Radios with a very low bandwidth-delay product metric. Had major contributions to the project architecture design and development. 

At Elastio Inc., I designed and developed a relatively simple but sufficiently generic and mockable user interfacing library to decouple other libraries from specific implementations of user interfacing logic as provided by the application code, allow automated responses to interactive queries, and have statically typed response variants. Introduced support for ARM architecture to our product, which includes relevant CI/CD changes, modifying code and build scripts, and introducing changes to product packaging and distribution (supply chain) process. Made foundations for Linux (systemd) and Windows (SCM) agent service, had experience using both Linux and Windows system APIs.
5 years of experience with a wide range of tasks, going from low-level system programming and ad-hoc networking to cloud-native applications and edge computing. My preferred programming languages are Rust, Go, Python, C, and some C++ (familiar with Qt). Have experience with Java, C#, Kotlin, and Lua. Good understanding of Git version control system, slight DevOps skills, and interest in cybersecurity. Expertise with both Linux and Windows software development. Known natural languages: English (almost fluent), Ukrainian (native), and Russian (native). Have solid self-teaching (autodidactic) skills and a high level of patience. 

- 1+ year of part-time employment at my alma mater - the State University of Telecommunications, Kyiv, where I used to perform some help desk tasks and did some Go development in 2018. 

- 2 years of rich, full-time experience in Telecard-Prylad Ltd. (specialized in military and industrial tech development) as a Software Engineer and System Administrator. Extensive Go programming and occasional C; on-hands experience with both Linux and Windows; hosting and reverse proxying Node.js and Java web servers with Nginx and Caddy, including use of Docker; Bash scripting and helping out Python (PyQt) developers; research and development of networked solutions and experiments with various network protocols and message queuing - MQTT, CoAP, HTTP/QUIC, mDNS, bare UDP multicast, and so on. 

- Almost 2 years of full-time remote employment at Elastio Software, Inc. (via Polytech Software outstaffing) - low-cost, cloud-native backup solution for AWS and on-premise alike. Being in the data plane team, I did system programming mostly - but I also had experience with some AWS services like CloudWatch, EC2 and EBS volumes, and ECR registries. In addition to programming, I had DevOps experience around GitHub Actions CI/CD infrastructure with self-hosted runners, running virtual machines built using Vagrant and Packer for both automated and manual code testing, and Docker for static (musl-based) builds.
Long-term employment opportunities are most welcome. 

Quite often, to comprehend tasks I get, I need to understand from the end user's perspective scenarios in which particular features would be used. I frequently think in terms of user experience (or developer experience if it is about some refactorings) and it is not uncommon for me to comment and reiterate on the UX of various parts of the product. 

I prefer smaller groups working on solid technologies with weak time frames, rather than careless prototyping with stressful deadlines. I expect my team to be actually interested in the product they are working on - and I do dedicate myself to the job.