Scala & Haskell developer and mathematician interested in functional programming, type systems, metaprogramming, compilers, semantic tooling, formal methods, and AI-assisted software engineering.
Much of my current open-source work explores how compiler and semantic infrastructure can make advanced Scala metaprogramming and coding agents more capable and reliable.
Experimental Scala 3 compiler plugin bringing back a Paradise-style model of pre-typer macro annotations: annotations can transform definitions and generate members, companions, and sibling definitions before ordinary typing.
Released artifacts are available from Maven Central.
Experimental structural quasiquotes for Scala 3, spanning compiler-free semantic representations, Scalameta, quoted reflection, and exact-version Dotty internals.
The project investigates source-like tree construction and transformation while keeping compiler-independent structure separate from compiler-coupled lowering.
Scala 3 continuation of AUXify, using Macro-Paradise and Quasiquotes to implement macro annotations for common functional-programming patterns.
Current annotation families include @apply, @aux, @instance, @delegated, and @self.
→ Starter project → Original Scala 2 AUXify
Together, these three projects form an experimental stack:
Macro-Paradise — annotation execution and source transformation Quasiquotes — structural authoring and tree lowering AUXify — higher-level FP/metaprogramming use cases
A bounded Scala 3 compiler plugin allowing selected implementations to use scala.annotation.experimental APIs without propagating experimental status to their callers.
Published on Maven Central and tested against several exact Scala 3 compiler versions.
Experimental semantic tooling for Scala coding agents.
It combines compiler/build evidence, SemanticDB, Presentation Compiler queries, symbol reconciliation, FP-oriented analyses, a CLI, an MCP server, and agent-facing integration layers.
The goal is not to replace the compiler, sbt, tests, or IDE tooling, but to give coding agents substantially richer structured evidence than plain source-text search.
The original Scala 2 implementation of AUXify: macro annotations and type-level/functional-programming helpers around AUX types, type-class materialization, instance construction, delegation, syntax generation, Shapeless, Scalameta, and Scalafix.
Experiments with Scala 3 staging, runtime evaluation, patched compiler behavior, and using staging from macros. Includes published eval and patched-compiler artifacts.
- scala-macro-macros — macros expanding into macros
- scala3-macro-closure-demo — Scala 3 macro experiments
- macro-inline-demo — inline/macro experiments
- compiler-plugin-demo — Scala compiler-plugin experiments
- scalafix-codegen-demo — source generation with Scalafix
- scalameta-demo — Scalameta experiments
- macrosdemo — Scala macro experiments
My London Scala User Group talk on Scala 2 macros and quasiquotes, Scala 3 quotes/reflection and macro annotations, and the alternative pre-typer Macro-Paradise approach.
The repository contains the talk text, slides, examples, and links to the related projects.
Several repositories on this account are working forks used for upstream investigation and contributions rather than independent projects.
DmytroMitin/dotty — working fork of the Scala 3 compiler.
Selected compiler work:
DmytroMitin/shapeless — working fork used for type-level programming and macro contributions.
Selected PRs:
- shapeless#1286 — support
Genericmaterialized in a macro-generated companion of a nested case class - shapeless#879 — fix
WitnessforTypeRefsingleton types - shapeless#878 — fix
RotateLeft/RotateRightforPolywith multiple cases - shapeless#859 — avoid diverging implicit expansion in HList folders
DmytroMitin/spark — working fork of Apache Spark.
- apache/spark#38740 — product encoders for local classes, involving Scala reflection, type tags, compile-time dealiasing, and encoder derivation.
DmytroMitin/ProvingGround — working fork of the Scala theorem-proving / HoTT project.
Selected work includes:
- ProvingGround#119 — induction from sum types
- ProvingGround#112 — vector concatenation / induction
- ProvingGround#114 — induction-family test follow-up
DmytroMitin/codex-desktop-linux — working fork of the community Linux port of ChatGPT Desktop.
Recent upstream work includes Linux-specific Computer Use and Chrome integration:
- #1097 — fix Computer Use synthetic marketplace manifest path
- #1159 — adapt Computer Use to the monolithic renderer bundle
- #1286 — expose managed Node to the Chrome side-panel app-server
- #1308 — fix Chrome side-panel CLI trust selection
avro4s— macro hygiene fixjson-facile— runtime-reflection / macro outer-accessor fixsplain— quasiquote serialization fix for case objectsdotty-macro-examples— generic-class macro fix
My background is in mathematics, and I have a long-standing interest in theorem proving, dependent type theory, and the interaction between mathematical structure and programming languages.
Some public repositories related to this work:
- arend-exercises — experiments/exercises with Arend and dependent types
- hott-cubicaltt-exercises — Homotopy Type Theory / cubical type theory exercises
- ProvingGround — theorem proving and HoTT work in Scala
- Stack Overflow — extensive Scala, type-level programming, macros, reflection, and FP answers
- Scala course on Stepik
- All public repositories



