Ivan Tsyganov

AI Platform Architect  ·  Principal Backend Engineer

Software Architect with 15 years of experience spanning cybersecurity and distributed systems, now applied to building secure, production-grade AI platforms. Currently leading the design and delivery of a multi-tenant LLM platform — including agentic frameworks, MCP integration, and vector storage — at Constructor Group.

Experience
15+ years building platforms — from cybersecurity to AI infrastructure
Constructor Group
2021 — present
Architect, Principal Backend Engineer
EdTech and AI company building intelligent learning and research platforms
  • Lead a team of 10 engineers across 4 countries designing a multi-tenant LLM platform serving tenants across 5 countries
  • Architected LLM-connectors — unified interface for 10+ LLM providers, ~30K req/day with streaming normalization and per-tenant tracking
  • Built Agentic Engine, MCP Engine, Document Storage (3M chunks, p95 < 300ms), and Memory Service
  • Designed Model Engine SDK adopted by all 10 ML teams, plus 7 internal Python packages
Positive Technologies
2014 — 2022
Tech Lead / Senior Python Developer
Enterprise cybersecurity company with 1,000+ employees
  • Grew from Senior Developer to Tech Lead managing a 10-person team
  • Built The Standoff from concept to production as sole backend engineer — real-time cybersecurity competition with scoring engine, rules engine, and WebSocket + Kafka event system
  • Platform used at international events: Positive Hack Days, Hack In The Box 2019, standoff365.com
Things I Build for Fun
Personal tools and side projects
Nanomuz
Swift · macOS
Tiny floating music widget for macOS
Controls Apple Music playback, displays album art with adaptive color extraction, Last.fm scrobbling. Available via Homebrew.
  • Weighted color extraction from album artwork with automatic contrast adjustment
  • 9 releases, Homebrew tap, DMG distribution
NightCity Binary Watch
Monkey C · Garmin
Cyberpunk watch face for Garmin Instinct
Pixel art cityscape that displays time in binary — lit windows in two buildings encode hours and minutes. Animated smoke, twinkling stars, moon with optional analog hands.
  • Binary time display with educational twist — each floor is a binary digit
  • Battery-optimized with smart sleep mode and reduced animation frequency
Conference Talks
Speaker at PyCon Russia, Moscow Python Conf, PyCon Siberia, and PiterPy
(Un)safe dependencies
PyCon Russia 2019

Explores consequences of outdated libraries and interpreter versions, demonstrating how attackers exploit vulnerabilities in Django, SQLAlchemy, lxml, PyYAML, aiohttp-session, and Python interpreters. Based on OWASP TOP-10 #9: "Using components with known vulnerabilities."

(Un)safe Python
PyCon Russia 2017

Examines OWASP TOP-10 critical web application vulnerabilities and changes over four years. Discusses which vulnerabilities fall under developer responsibility versus external factors, and how popular frameworks support secure development.

Why 100% coverage is bad
Moscow Python Conf 2016

Argues that 100% test coverage doesn't guarantee actual code quality. Uses a 50,000+ line codebase to demonstrate why coverage.py metrics can be misleading and proposes methods for obtaining honest coverage metrics.

Don't trust your tests!
PyCon Siberia 2016

Explores tools for evaluating test quality, examining how these tools function and why their results can be deceptive when assessing test effectiveness.

Be careful, DSL!
PyCon Russia 2016

Covers domain-specific languages: when to develop custom DSLs versus using existing ones. Discusses lexical and syntactic analysis, error messaging, and testing DSL-based scripts in Python.

DSL in Python. How and why?
PiterPy #3 — 2016

Introduction to domain-specific languages and their appropriate applications, comparing internal versus external DSL development approaches in Python.

Python performance in Web
PiterPy #2 — 2015

Performance analysis of Python 3 applications across different configurations (uwsgi, gunicorn) and databases (MySQL, MariaDB, PostgreSQL, MongoDB) under load testing.