E-mail is listed on the GitHub profile: github.com/matklad.
2014-2016, Masters of Software Engineering (unfinished), St. Petersburg State University of RAS.
2009-2014, Specialist of Software Engineering, St. Petersburg State University.
I have a broad knowledge of mathematics in general (algebra, calculus, logic, optimization) and computer science specifically (data structures, computabilty, complexity, type theory, compilers), and I am comfortable with translating academic research ideas into robustly working code.
I was a member of Cargo and dev-tools teams. I have made substantial contributions to Cargo, the Rust package manager, authored one accepted RFC, and contributed various fixes and features to the Rust compiler and the standard library.
At JetBrains, I have lead the development of IntelliJ-Rust plugin for the Rust programming language. The plugin is a Rust “compiler” written in Kotlin, with full-blown parser, name resolution and type inference algorithms, and integrations with build tools and debuggers. Besides solving the technical problems, I’ve created an open source community around the plugin by mentoring issues, writing developer documentation and supporting contributors.
Stepik is a e-learning platform, written in Python, focused on rich variety of practical exercises and ease of creating content. I was on the backend team of three from the start of the project. Among other things, I’ve worked on exercises subsystem and student’s code sandboxing, progress tracking and designed and implemented JSON API interface for the single-page frontend.
Rosalind is a “project Euler” for bioinformatics, with a focus on algorithmic coding challenges. My responsibility at Rosalind was implementing master solutions, solution checkers and infrastructure around them. The primary language was Python, with a fair amount of C++ for the most computationally intensive algorithms.
I have an expert knowledge of Rust, Python and Kotlin and successfully used these languages to deliver impactful products. I have first-hand experience with developing production parsers, compiler front-ends and developer tools.
Most of my work is open-source, and I put significant efforts into making projects I work on easy and enjoyable to contribute to.
You might find the following hobby-projects interesting:
An IDE-oriented parser generator: https://github.com/matklad/fall
- Tiny LISPs implemented in Rust, OCaml and themselves:
- A collection of ray tracers implemented in various languages: