Distributed systems · Data platforms · Go & C++

Staff / Lead Software Engineer

Software engineer with 18+ years of experience, from C++ systems to Go data platforms. My work spans distributed storage, messaging, and data processing, combining architecture and technical leadership with implementation and performance analysis.

  • Remote worldwide
  • B2B preferred
  • UTC+4 · US/EU overlap
Vladislav Troinich

01 / Experience

Work experience

Oct 2020 — present

Industrial edge and data systems

Lead Software Engineer

Litmus Automation

At Litmus, I lead technical work across industrial data collection, processing, storage, and delivery, combining architecture reviews with hands-on implementation and performance analysis. Litmus reported throughput of 1 million tags per second and 2 million internal broker messages per second in 2023.

Established AI-assisted code review in GitLab with project-specific policies, linters, CI tests, and performance and security gates. Required checks block significant issues before my final review. The process has helped improve code quality and reduce bugs.

Use Claude daily for AI-assisted planning, implementation, debugging, and testing, with custom skills, policies, and MCP integrations.

Lead technical work for a data engineering group of up to 10 engineers, including two technical leads. Review architecture and data models, design internal gRPC and external GraphQL APIs, and implement changes across collection, processing, storage, and delivery services. Conduct technical and system-design interviews for software engineers and give hiring recommendations.

Designed and built independent cloud connectors with disk buffers that recover after outages, replacing centralized delivery while keeping older deployments compatible. Implemented MQTT clustering, redesigned and implemented distributed message delivery, and migrated embedded storage from BoltDB to BadgerDB with schema and index changes.

Investigate CPU, memory, startup-time, and throughput problems in device polling, OPC UA, analytics, and connectors. Standardized Go service structure and shared libraries across the group and introduced container-based integration testing, later adopting Testcontainers.

Lead the response to urgent technical problems, deciding when to patch a system and when to replace its implementation based on risk, deadlines, and team capacity. Implement or delegate fixes and validate them with integration tests before release.

Nov 2017 — Oct 2020

Industrial connectivity and storage

Senior Software Engineer

Litmus Automation

I designed and built the original Go controller and Go/C++ worker architecture in 2018, replacing the Python device-collection stack and implementing the initial drivers to establish and validate the framework. Other engineers subsequently expanded the driver library to 250+. The architecture remains in production, and I continue reviewing and validating changes as the collection service evolves.

Designed and built the OPC UA server using a Go controller and C++ workers to use established OPC UA libraries.

Designed and implemented time-series ingestion for industrial device data. It supported both the original Python controller and the new Go controller during migration. Tuned InfluxDB indexes and queries to keep memory use within edge-device limits. The component started with internal InfluxDB storage and later added external databases, including different InfluxDB versions and TimescaleDB.

Built external access through a NATS reverse proxy with TLS, custom authentication, and configurable topics. Customers could connect with standard NATS clients, avoiding the performance cost and custom client code required by the gRPC option. I designed and built device-data publishing and the early analytics components. Their core analytics architecture remains in use as the module has grown to include more than 30 statistical functions.

Aug 2015 — Nov 2017

Financial risk calculation

Senior Software Engineer

Sberbank Technology

Developed C++ financial calculation software with domain specialists and reworked the surrounding service architecture. Replaced Jenkins-based job execution with a Python/Tornado backend for orchestration, authentication, and APIs, using MongoDB/GridFS for files.

Migrated the calculation engine from Windows to Linux, reworking platform-dependent and parallel-processing code to fit the department's infrastructure.

Mar 2012 — Aug 2015

Distributed medical imaging

Software Developer

NIPK Electron

Contributed to a distributed C++/Qt medical-image archive deployed with X-ray equipment in hospitals. Worked on DICOM/HL7 services, replicated writes, node coordination, and authentication, alongside administration, testing, and deployment tools for Linux and Windows.

Aug 2008 — Mar 2012

Banking applications

Junior Software Engineer → Software Engineer

Bank Otkritie

Started in part-time development and progressed to a software engineer role, building C++/SQL banking applications, client messaging systems, and internal tools.

02 / Expertise

Technical expertise

Languages

  • Go
  • C++
  • Python

Distributed systems

  • Distributed messaging and data pipelines
  • Replication and coordination
  • Fault tolerance and recovery
  • Storage and API migrations

Data & storage

  • PostgreSQL
  • TimescaleDB · InfluxDB
  • Redis · MongoDB
  • BoltDB · BadgerDB · LMDB

APIs & messaging

  • gRPC · REST · GraphQL
  • MQTT · NATS · Kafka

Observability

  • OpenTelemetry · Prometheus
  • Grafana · Jaeger · VictoriaMetrics

Infrastructure & testing

  • Linux · Docker · Kubernetes
  • AWS · GitLab CI/CD
  • Integration testing · Testcontainers

Independent AI projects

My independent AI work includes designing and training PyTorch models, with pipelines for data preparation, experiment management, and GPU training. I also run local LLM inference and experiment with private coding-agent workflows.

Local LLM experiment: reimplementing NATS Core in Rust

AI-assisted development and automation

Built issue monitoring tools and an experimental AI agent that turns tickets into merge requests for one repository. Generated changes go through code review, linters, and unit and integration tests before approval.

03 / Contact

Roles and collaboration

Open to fully remote Staff, Lead, and Senior roles in distributed systems and data infrastructure. Worldwide B2B work is preferred, with around six hours of overlap with US or EU teams.

Discuss a role or project