I'm a software engineer with more than 5 years of experience. From the very beginning of my career, I have been involved in one way or another with things related to compilers, static analysis and tooling for programming languages. A wide range of knowledge and skills allows me not only to create something new, but also to make it familiar and convenient for the developers who will use it.
I have experience in the following areas:
- Writing lexers and parsers for various languages (PHP, Golang, TypeScript, Spawn, Tact, Tolk). From scratch and using generators such as Bison or tree-sitter
- Writing CST parser generators: Tact
- Writing tree-sitter grammars: V, Spawn, Tact, Tolk, TL-B
- Writing static analyzers: NoVerify and NoColor
- Writing compilers: Spawn, KPHP, Tact, understand the concepts of SSA, IR, CFG, DFA
- Writing plugins for JetBrains IDEs, from scratch: AdmStorm, NoColor, Modulite, Vlang, Spawn, Tact, including experience working on PhpStorm at JetBrains
- Writing plugins for VS Code: v-analyzer, spawn-analyzer, Tact and TON (Tolk, FunC, Fift, TL-B)
- Writing Language Servers: v-analyzer, spawn-analyzer, Tact and TON (Tolk, FunC, Fift, TL-B)
- Writing formatters: spawnfmt, tactfmt and tolkfmt
- Writing specifications and documentation for the language (Spawn)
- Writing additional tools for the language (spawnfmt, spawnpkg, spawnup, spawnprof)