My name is Dmitry. I'm a software engineer.
Creating software is both my profession and hobby, with a focus on web applications, libraries, and CLI tools in TypeScript, JavaScript, Python, Bash, and Kotlin, among others. Clean code, architecture, and testing are important to me, and I strive to make these aspects practical.
During 12+ years of my professional experience, I have worked on projects of various sizes, in companies ranging from small local startups to unicorns.
I have a university degree in IT security. Even though I've never worked as a security engineer, I always look out for SQL/code injections, XSS, CSRF, and other potential vulnerabilities when I write and review code. Check out my small research project about timing attacks in Node.js.
My other passion is (natural) languages. You can find me on Tatoeba.org, where I study foreign languages and contribute sentences. And here are a few of my videos on YouTube about language acquisition:
My FOSS projects
jmdict-simplified
JSON version of JMdict, JMnedict, Kanjidic, and Kradfile/Radkfile, created out of frustration after struggling with the original XML files. Includes Node.js libraries.
Kanji Frequency
This dataset of frequencies of Japanese kanji characters includes data from multiple corpora, covering most styles (e.g. academic writing, fiction books) of Japanese language. Maintained since 2015.
is-han
Tiny Node.js library for properly detecting Han characters (Kanji, Hanzi, Hanja). Because, apparently, it’s not as simple as just using a regex with two code points.
German language acquisition
I tracked the time I spend acquiring German using comprehensible input method (see input hypothesis) and analyzed the data, including my vocabulary and grammar test results on each checkpoint (every 100 hours).
TopoKanji
An attempt to create a meaningful ordering of Japanese kanji characters for foreign learners based on character decomposition and frequency in texts.
Node.js timing attack
Are timing attack on regular string comparison in Node.js web applications practical? This research project answers this question with a strong “No.”
Geoguessovich
Vanilla JS game, a parody of GeoGuessr. Created as a proof that not all projects need anything more than just plain JavaScript, HTML, and CSS.