Senior software engineer, researcher, and teacher. I research multi-level computer systems, from processor microarchitecture to compilers and domain-specific languages. I teach computer architecture and functional programming at ITMO University and build developer tools for FHIR healthcare data at Health Samurai.
Highlights
Ph.D. – architecture of multi-level computer systems (publications).
NITTA – CAD platform for hard real-time CGRA processors (paper).
Wrench – CPU simulator and auto-grader: 67,000 student programs from April 2025 to November 2026.
I can supervise your bachelor’s or master’s thesis. My projects above can provide a topic, or we can work on one of these:
Theoretical Topics
Data Modeling: Learn how to effectively represent domain-specific data, formalize it, and interpret it. Discover methods to seamlessly integrate data models into software systems.
Architectural Design: Explore techniques for visualizing system architecture and leveraging architectural descriptions within the design and implementation processes.
Systems Engineering: Gain insights into holistic system understanding, identifying critical components and questions, and assessing the overall quality of your system.
Engineering Methods: Understand how to approach the development process methodologically but simply, and navigate project management challenges when everything seems to go awry.
Technical Topics
Functional Programming: Explore alternative approaches to software development that revolve around functional programming principles. Applying it to real projects.
Domain-Specific Languages: Discover how to streamline the programming process and understand why Domain-Specific Languages may not always be the best solution. eDSL integration in the host language.
Distributed Systems: Learn the best practices for designing and implementing distributed systems, taking into account specific business requirements.
Software Verification: How do you make sure that the system developed meets expectations? How do I formulate these expectations?