Education
Letovo School, Moscow
Grade 11, final year. Russian national curriculum, advanced (profile) mathematics track.
SAT Mathematics 790, August 2026. Two further SAT sittings planned, on 7 November and 5 December 2026. IELTS 7.0.
Awards
Economics
Moscow Olympiad in Economics
Winner, first place by score in the Grade 10 division, 2025/26. On the federal list of olympiads at Level II; its 2026 final for Grades 8 to 10 was held at twelve venues across Russia.
All-Russian Olympiad in Economics
National finalist in Grades 9 and 10: one of 91 Grade 9 finalists at the 2025 final and one of 118 Grade 10 finalists at the 2026 final (checked against both final protocols). In 2024/25 more than 470,000 students took part in its economics olympiad, most in the open school round, and 392 reached the national final across Grades 9 to 11.
Olympiad of the Russian Presidential Academy (RANEPA) in Economics
Grade 10, 2025/26. Prize-winner at the final stage. On the federal list of olympiads for 2025/26, Level III. Diploma о/11840-26.
Mathematics
All-Russian Olympiad in Mathematics, regional stage
Grade 9, 2024/25.
Leonhard Euler Olympiad, regional prize-winner
Grade 8, 2023/24. The Euler Olympiad is the All-Russian mathematics olympiad for Grade 8, on the same regional dates with problems from the same central commission.
All-Siberian Open Olympiad
Grade 7, 2022/23. Third-degree diploma.
Letovo School, best MYP personal project in Mathematics
Grade 9. Director-signed. The project was the article “Collatz conjecture”, published in Young Scientist (Юный учёный), No. 2 (87), February 2025.
Checked against the published competition protocols where they exist.
Research
An e-value audit of 84 pre-registered market-efficiency hypotheses
Sole author. Accepted as a poster at two NeurIPS 2026 workshops, both non-archival: NewInML and, in a shorter version, E-Values: From Statistics to ML.
- The null hypothesis is market efficiency: the closing price for a fight, with the market’s margin taken out, is already the right probability. 4,141 walk-forward out-of-fold bouts, 1,787 of them carrying an archived closing price.
- The best of the 84 reaches e = 151. One pre-registered hypothesis needs 20; all 84 at once need 1,680.
- The 84 slices overlap, so Benjamini-Hochberg’s guarantee is not established. Its four discoveries on the 1,191-bout discovery window, one favourable and three against the model, survive neither Benjamini-Yekutieli nor e-BH.
- A segment written off at p = 0.30 is still growing on the e-value scale: not refuted, 100 bouts short at fair prices.
- A threshold rule chosen after the fact clears 20 at 31.28 once the search it ran is paid for; charged for the direction it could have searched and the other disagreement statistic it could have used, it falls to 10.43, and with the market’s margin charged, to 2.82.
- Validated before use: 40,000 null replications give an expected e-value of 0.985 ± 0.018 per segment. The headline result is negative.
The paper PDF, 287 KBShort version PDF, 257 KB
Measure the instrument first
Detection floors for model selection and for LLM judges. Sole author.
- The null lever: the same recipe refit under a different random seed changes nothing real, so everything it produces is instrument noise.
- On a 3,087-row walk-forward pool under five seeds, re-seeding alone reproduces 80% of the only change the winner model ever shipped; the pipeline had 56% power against its own shipped result.
- Recomputed on the 793-row pool where the project’s one large win was measured, the floor is 0.0119 rather than 0.00362: the win is 4× its own floor, not 13× another pool’s.
- The same test on a deployed LLM classifier: two identical reruns disagree on 5.6% of items, and the floor is 2.9 points of agreement.
The paper PDF, 126 KB
Before the papers
Collatz conjecture
Young Scientist (Юный учёный), No. 2 (87), February 2025, pp. 96–99. My MYP personal project, written in English in Grade 9 with my supervisor Kirill Kusakin: the residues modulo 4 and 3 that a smallest counterexample would have to fall in, and a review of other authors’ approaches.
The article PDF 135 KB
A sausage wrapped in newspaper
A Grade 9 project, revised in 2026. Cut through a sausage wrapped in newspaper and the unrolled paper’s edge is a sine wave, with a period of 2πr and a height set by the angle of the cut. Proved, then checked on a real sausage: traced from the scan, the edge follows a sine to within 1.8% of its height (a triangle wave misses by 4.8%), and its height is 0.233 of its period against a predicted 0.243.
The project PDF, 1.4 MB
The volume of a tea glass
A Grade 9 project, translated and corrected in 2026. The profile of a Turkish tea glass fitted with four parabolas, the glass cut into discs and the discs summed in the limit with the formulas for sums of powers: 216.9 cm³. Lifted out of a measuring beaker full of water, the glass took between 200 and 225 ml with it.
The project PDF, 983 KB
Independent work
Vertex MMA, vertexmma.com
A nine-model UFC forecasting stack, measured against the market’s closing price. English and Russian.
- 4,581 fighters, 8,906 bouts, 795 events. 243k score-history rows, 86k career bouts, 49k ranking snapshots, 41k round-stat rows, 31k judge scorecards.
- Nine models including a 10,000-run Monte Carlo simulator: a 118-feature winner ensemble over LightGBM, CatBoost and logistic regression, a debut specialist, method models, a cause-specific Poisson finish hazard, a no-intercept decision model.
- Held out from January 2025: accuracy 0.6747, log-loss 0.6137, Brier 0.2124, AUC 0.7244 over 664 bouts.
- On the 582 priced bouts, 0.6753 / 0.6171 / 0.2140 against the closing price’s 0.6838 / 0.5922 / 0.2035: better calibrated, less sharp, and the remaining gap is resolution, which needs information the public record does not contain.
- Five separate mechanisms keep future information out of the features. Market prices are never a feature: taking them out cost 1.5 points of test accuracy, and they stayed out.
- Roughly two dozen rejected ideas documented beside the shipped ones, each with its reason. Its evaluation is the subject of both papers above.
- Next.js 16, React 19, TypeScript 5.9 strict, Tailwind 4, Postgres, Python 3.12. 35 routes in two languages, 1,533 translation keys each.
Gluline, gluline.com
A messenger for people who want to know exactly who can read what, released on the App Store, Google Play and the web, in ten languages. Co-founder, engineer and Head of AI. One repository: Android in Jetpack Compose, iOS in SwiftUI, a web client, a Python and FastAPI backend, the infrastructure and the protocol documents.
- From the first files in April 2026 to the App Store on 19 August 2026.
- As Head of AI I own everything the product does with a model. The assistant is off until the user turns it on, and a chat’s own settings can keep it out of that one chat.
- Chat content is encrypted on the device with a key for each chat. One-to-one calls are encrypted between the two devices. Group calls pass through a media server that decrypts them to forward them, so the store listing says they are not end-to-end encrypted, and it claims no forward secrecy.
- A written release checklist before any store: a clean build, 309 unit tests passing, and a check that minification had not broken any of the 15 fields the app sends over the wire.
- Two formal codebase audits on record. August 2026: 74 candidate findings, 42 confirmed by an adversarial second pass and 32 written down as refuted.
Zacks Rank recommendations
Paid client work, commissioned by a private investor. Every trading day a VPS collects the full ranked screen from Zacks (4,369 stocks in one day’s screen) and archives it in a SHA-256 hash chain, so no past day can be quietly edited. Fixed rules pick an equal-weight book of 25 and issue the day’s buy and sell recommendations, each fingerprinted; the client places their own orders and nothing is sent to a broker. At 44 sessions the archive could not tell the rank’s effect from zero (95% interval −48% to +65% a year), so the rules were frozen at their defaults before the first recommendation, on 1 October 2026. Since then a paper book has filled every recommendation at the next close, none skipped; a rule change applies only to later months. A year of it can only reveal an edge above roughly 25–30% a year.
indelible
A skill for Claude Code that runs self-study the way a strict tutor would: a short interview, a plan built backwards from the learner’s date, theory on a sheet that is read and then closed, drills on paper with a written check beside every answer, and a cold recheck two days later, which is the first score that counts. Every question missed comes back after 1 day, 3 days, 1 week and 3 weeks. MIT or Apache-2.0.
- The rules that matter most are held by its scripts, not by instructions alone: every printable sheet passes a checker of 14 rules, answer keys stay sealed until the attempt is filed, and each session opens by dealing with whatever the last one skipped.
- 17,743 lines of Python in its scripts, standard library only, making no network requests. 588 tests, run on macOS, Linux and Windows.
- Every number it reports is labelled as measured or practice. The method was developed with one learner over about four weeks, not in a controlled study.
Clipwell
A native clipboard history for macOS (Swift, SwiftUI) and Windows (C#, WPF), written natively twice rather than once in Electron. MIT licensed, installed with one Homebrew command, English and Russian UI, no account and no network calls. Content that a password manager marks as concealed or transient is never written to disk.
Vertex Boxing
The Vertex MMA models moved to professional boxing, to test whether regional and club fights are priced less efficiently than the top of the sport. On every bout with a market price, they are not; the anonymous regional card the thesis was aimed at carries no price, so there it cannot be tested. What the model turned out to read is where the price is going.
- Cut by level, the price’s move towards the model between the open and the close rises from +0.0044 on four-to-six-round club fights to +0.0180 on twelve-round title fights. On a window the rule was never chosen on, the move at the top was 2.0 times the move at the bottom.
- Blended into the closing price at a weight of 0.17, the model improves its log-loss by +0.0043 nats [+0.0024, +0.0062] on 3,288 priced bouts. On its own it is a worse forecast than the closing price, and with its margin charged the closing price holds (e = 1.15).
- At the opening price, a median three days before the fight, the blend moves the price 87% of the way to where it closes. Tested there with e-values at the prices actually posted, against a bar of 20 (80 for 2023–2025, registered as one of four hypotheses), the opening price’s efficiency was rejected on 2016–2020 (the protocol timestamped in Bitcoin blocks and pushed to GitHub before the model was trained), on 2023–2025 and on the January to July 2026 holdout, at e = 41.8. On 2021–2023 it held, at 12.5.
- A forward test was frozen and pushed publicly on 24 September 2026, before any bout it covers had been fought: the same test at the opening price, on every fight where the blended forecast rates a fighter above the posted price. It can be read at any checkpoint, rejects at 20 and closes on 25 September 2029. The result will be reported either way.
- Caught and removed a post-bell leak: judges’ scorecards are published only for fights that went the distance, so their mere presence told the model how a fight had ended. Where judges were recorded, 9.7% of fights ended early; where they were not, 74.3% did.
- A random search over 200 configurations, under a protocol committed before the first fit: none of the five taken forward kept its lead over the model in use on bouts the search never saw.
- Every result is a backtest. Concluded September 2026.
Alfa-Romeo
Built during an internship at Alfa-Bank, as a concept of what a bank becomes by 2035: one passport, every profile a life needs, roubles and crypto in one balance, and an AI that works as a copilot rather than a chat window. 93 screens.
- Live rates from the Bank of Russia’s daily fixing and from CoinGecko. The wallet is a closed economy on Postgres: sign up with a phone number and send play roubles, or play crypto, to another phone.
- The copilot is Claude behind guardrails: it drafts the action and waits for a yes, the largest action it may carry out is ₽100,000, and a deterministic stand-in takes over when there is no key or no network.
- The credit screen shows the three factors behind the limit, then recounts it when you ask what if.
- The business half: acquiring by payment link, QR, NFC and terminal, any payment over ₽500,000 waiting for a second signature, and an AI accountant that draws the next ninety days of cash flow and points at a gap two weeks before it opens.
Skills
Python, LightGBM, CatBoost, scikit-learn, NumPy, pandas, statsmodels, Monte Carlo simulation
E-values and test martingales, anytime-valid inference, walk-forward validation, calibration and sharpness decomposition, power and detection floors
TypeScript, Next.js, React, Tailwind, Postgres, Supabase; Kotlin and Jetpack Compose, Swift and SwiftUI, C# and WPF; Python and FastAPI, NestJS, Docker, Linux, Caddy, SOPS
Russian (native), English (working). Bilingual technical writing. LaTeX.