I am a maths bachelor student 📐 at Saint Petersburg State University (a.k.a. SPbU or СПбГУ). Also, computational maths experiments enthusiast and Kotlin amateur. I.e. my main direction of work consists of:
- Abstract maths. More specifically, algebraic geometry, computatinal geometry, and some other computational areas. Except for computational complexity theory.
- Mathematical computations (implementations of mathematical algorithms) and simulations (experiments without concrete goal).
- And mathematical libraries API architecture (where I suck).
But I also like engineering some programming stuff like simple full-stack application (server + Desktop client app + web client app + maybe something else) or Kotlin compiler plugin.
Currently, I am finishing my studies at the university and trying to figure out whom I would like to be, a mathematician, a programmer, or maybe someone in between.
Currently, I am working on/maintaining such projects:
-
Kone project. It's my personal research project on:
- what we can compute on a computer (sorry for the pun),
- how optimally we can compute these things (what is the most efficient way for it),
- what is the best API for providing such algorithmic solutions.
For now, it is in early development stage. But I am already using its parts for some experiments and even creative coding.
-
KMath (and kmath-polynomial). This is another math project but with a more practical focus. I am maintaining it and reviewing PRs into it.
-
🎩 ... (Code name "HalfHat".) It is an implementation of the alias game. It's 100% Kotlin reimplementation of TheTrueHat which was my and some of my classmates' programming project.
For now, it is in early development stage. Unlike TheTrueHat, HalfHat follows publicly available and popular design system Material 3 by Google. It is going to gain desktop and Android clients aside from web one. Also, it is going to be a Kotlin Multiplatform and Compose Multiplatform project that should be simple to migrate on iOS.
Why does the word "hat" appear in the names? That's because in Russia it is called "шляпа" which literally is "the hat". And it is called like that because all the words to guess are kept in a hat which is passed from player to player. But the "half" and "the true" parts came up randomly in our minds, so that's how I gave the project code name "HalfHat".
- Mathematics: linear algebra and geometry, discrete math, probability theory, math analysis, etc.
- Programming languages: Kotlin; familiar with HTML, CSS, SQL, Python, JavaScript, TypeScript, Rust, LaTeX, Typst.
- Programming instruments: git, docker, IntelliJ IDEA, Docusaurus.
- Libraries, technologies, and instruments: Gradle, kotlinx.coroutines, kotlinx.serialization, Ktor, Compose Multiplatform, JMH and kotlinx-benchmark, dokka.
I am learning the following little by little. (More prioritized things are underlined.)
- Programming languages: Rust, Scala, C#, HTML, CSS, JavaScript, TypeScript, Erlang + Elixir + Gleam, Typst,
- Frameworks: Jetpack Compose + Compose Multiplatform, Exposed, React,
- Programming areas: Android development,
- Mathematics: algebraic geometry in common, different algorithms of convex hull and Delaunay triangulation computation,
- Other: Material 3, creative coding, and generative art.
There is a lot to learn. So the moment I am tired of learning one thing, I continue learning another one from this list.