Ability to work in a complex environment combining different technologies.
Distributed systems (CRDT), Functional programming, Web backend, Compilers, Data analysis, Scalable services, Security, User interface
Software design, Coding, Deployment, Staff training
Oct 2023 — Sep 2024 | Software Engineer at SQream, Montenegro/remote Working as an engineer in support of the SQream GPU-powered database engine. Fixing various bugs in C++ engine, Haskell query compiler and CUDA kernels. Tools & Technologies: C++, Haskell, CUDA (GPU) |
Jun 2022 — Oct 2023 | freelance and short-time contracts, remote Lead developer of internal system of issue tracking and decision making for a large DAO. Web backend + frontend. Stellar blockchain integration for automatic payment processing and access management. Telegram integration for control via chat. Tooling to mint and trade NFT representing real estate ownership. Various Python and Haskell projects. Short-term contract with Generation Lambda. Built an automated NFT distribution service on Cardano network. Tools & Technologies: C++, ClickHouse, Docker, Ed25519 cryptography, Haskell (Servant, Yesod), HTTP, Java, JSON, Python, Scala, Sqlite, Stellar blockchain, Telegram API, YTsaurus |
Feb 2021 — May 2022 | Software Engineer at Input-Output Global, remote Cardano blockchain node development. Implemented some features for the Alonzo era. Tools & Technologies: Cardano blockchain (API, CLI, node), CBOR, Haskell, JSON |
Sep 2020 — Mar 2021 | Haskell teacher at Higher School of Economics, Moscow, Russia Teaching programming in Haskell to 1—4th year students. |
Mar 2020 — Dec 2020 | Software Engineer at Yandex, Moscow, Russia Writing Java in Yandex.Disk cloud core. Implemented cross-service file metadata synchronization machinery. Working on a CRDT-based application state synchronization framework. Tools & Technologies: ClickHouse, HTTP, Java, JSON, PostgreSQL, Python |
Feb 2016 — Mar 2020 | Software Engineer, then Senior Software Engineer at Kaspersky Lab, Moscow, Russia As a Kaspersky OS and Kaspersky Security System development team member, I design DSLs, implement security configuration compiler and various security policies (including object-capability model), using Haskell for high-level logic and generating code in C. Tools & Technologies: C (kernel level, hard realtime, lock-free data), Haskell (Ivory, Megaparsec) |
Dec 2011 — Feb 2016 | Software Engineer at Yandex, Moscow, Russia I was a backend developer of the keyword statistics service Wordstat.yandex.com and several internal Yandex services. Wordstat is a search-oriented database capable of scanning over 1 billion records at a user request. I worked with computer linguistics. I developed microservices using HTTP JSON-API. My software successfully stands year-to-year growing data and user traffic. One microservice rewritten by me from Python to C++, got about 10 times boost in maximum request load. Another one got 1.5 times decrease in memory consumption without a visible performance penalty after introducing internal compression. I gave talks at the company's local meetups (internal and public) events.yandex.ru Tools & Technologies: Apache Thrift, BerkeleyDB, BitTorrent, C++, Cap'n'proto, Cython, Map/Reduce, PostgreSQL, Python, Yandex.Tank |
Nov 2006 — Oct 2011 | Engineer, then Team Lead & Architect at Institute of Information Technologies, Moscow, Russia I was the lead developer in 3-people team working on multi-component data transfer and processing system. I've been working on design and code, program and user documentation, deploy and customer support. During the development process, I designed and implemented software components using C, C++ and Python languages, and Qt GUI framework. I used static and dynamic program analysis tools to detect and fix bugs such as memory leaks. In my department (~20 people), I introduced usage of source control tools, issue management, common knowledge system (wiki). Tools & Technologies: C, C++, Linux kernel, Python, Qt, Windows API, XML |
2020 | The Moscow Aviation Institute, Master's thesis: A distributed embedded database. I've built a CRDT-based database-like application framework for data synchronization and a distributed project management software on top of the framework. Both in Haskell. The source code is available at github.com/ff-notes. | Master |
Apr 2017 | Co-organized RuHaskell community meetup in Kaspersky, Moscow, Russia. 4 talks, 120+ attendees. events.kaspersky.com/event/ruhaskell2 |
Aug 2016 | Co-organized RuHaskell community meetup in Kaspersky, Moscow, Russia. 4 talks, 120+ attendees. events.kaspersky.com/event/ruhaskell |
Dec 2015 | Organized RuHaskell community meetup in Moscow, Russia. 6 talks, 50+ attendees. ruhaskell.org/posts/events/2015/11/05/meetup-winter-register.html |
Jun 2015 | Organized RuHaskell community meetup in Moscow, Russia. 6 talks, 50+ attendees. github.com/ruHaskell/ruhaskell/wiki/Meetup.2015.Summer |
Jul 2020 | “Property and fuzzy testing” at C++ Russia. cppconf-moscow.ru |
May 2019 | “A purely functional approach to CRDT/RON-based distributed systems” at FPURE. fpure.events, video: youtu.be/2MKLWCh33wE |
Sep 2018 | “Purely functional programming and KasperskyOS” in Information Security section at RIFTECH. tech.rif.ru |
Dec 2017 | (in collaboration with my student Nikolay Loginov) “CRDT — correctly replicated data in Haskell” at the functional programming conference FPCONF. Description: fpconf.ru/2017.html, video: youtu.be/VFx0H2p3g6c |