Andrei Stepanenko

You can use your browser’s «Print» feature to export this page as a PDF.

andrei (at) ftvkyo.me github.com/ftvkyo linkedin.com/in/ftvkyo ftvkyo.me

I am a Software Engineer with a diverse skill set and a passion for innovation. My technical interests include software architecture, UI/UX design, game development and embedded systems, among other things. My journey in software development is shaped by a relentless pursuit of knowledge and a drive to push the boundaries of what’s possible.

My curiosity extends beyond conventional boundaries, as I delve into the intricacies of low-level programming with languages like Rust and C++, while also exploring the nuances of high-level languages like TypeScript and Python. Through personal projects and professional endeavours, I continually seek to refine my skills in problem-solving, collaboration and organisation.

Work experience

Software Engineer at Spectral Compute

August 2021 - present Edinburgh, United Kingdom

General-purpose GPU software solutions

C++, CUDA, LLVM, CMake, CI/CD

Developing a web interface for custom hardware

TypeScript (Angular, Jasmine & Karma), Node.js, Electron, C++, CI/CD

Software Engineer at Dreams AI

October 2019 - July 2021 Hong Kong

Distributed online gaming platform

TypeScript, Node.js, ZeroMQ, GraphQL, PostgreSQL, Redis, Kubernetes & Terraform, CI/CD

Extensible fraud detection system for a legacy online gaming platform

Rust, Elasticsearch, Logstash & Kibana, Python, CI/CD

C++ Software Engineer at 1C Juniors Developer Centre

June 2019 - September 2019 Moscow, Russia

Customizable Java application launcher

C++, Java, Java Native Interface, CMake, WinAPI, Linux system calls

Technician at Innovations Laboratory, Moscow Institute of Physics and Technology

December 2018 - August 2019 Moscow, Russia
VMWare ESXi, pfSense, Samba, Clonezilla

Personal projects

I have worked on many personal projects – they are my favourite way to learn new things. Here are some projects I would highlight:

Obsidian ftvkyo

TypeScript (React), Electron, CSS (SASS)

Obsidian ftvkyo is an Obsidian plugin that accommodates my workflow. The development process allowed me to reflect on the workflow and improve it greatly, and this project helped me achieve a huge productivity boost on a day-to-day basis.

Hovert60

Autodesk Fusion 360, CNC Router, 3D printer, Soldering

Making something physical, something you can touch can be very exciting. More so, making something interactive, and what’s more interactive for a software developer than their keyboard? So, I decided to design and make a wireless, split & hardwired (no PCB) keyboard from scratch. Learn more in the devlog posts with the Hovert60 keyboard tag.

Lazy Keymap

Rust, ZMK, X Keyboard Config, SVG

Lazy Keymap is a generator of keyboard layouts and their reference cards. My keyboard has an irregular shape and custom firmware, and the OS keyboard layouts are also non-trivial. This project reduces the burden of configuring that all by hand by providing a unified configuration format that expands into the firmware sources, OS configuration and a compact reference card.

Tekutonu

Rust, Vulkan (vulkano.rs)

Tekutonu is a simple voxel engine written in Rust and aimed at learning Vulkan. It’s not the first time I’ve experimented with voxels, and this project is interesting because of the lessons in engine architecture and the development process I learned.

Other personal projects

I have many more personal projects, they include:

Activities

I also have hobbies outside of tech:

Leading Student Council’s IT department at DIHT, MIPT

March 2018 - May 2019 Moscow, Russia
Python, Django, FFmpeg

This role was my first big step in the profession. I gained some experience in Project management, Full-stack development and supporting legacy systems. I also learned soldering and modified and assembled multiple custom door Access Control Systems that used campus cards and integrated with our website.

Member of Edinburgh Hacklab

Apr 2024 - present Edinburgh, UK