Portfolio
Built with AI coding agents
These projects come from my private monorepo, where I build products with AI coding agents working from specs and tests. Each one is published as its own public repository with its code, tests and README, and checked to build and pass on its own outside the monorepo.
RexLab
React, TypeScript, Vite, Gherkin, Vitest
A dinosaur learning game for children aged 4 to 7, made for an iPad held sideways. Behaviour is specified first in Gherkin (87 feature files) and checked by 130+ Vitest test files.
Posts: A Dinosaur Lab for Small Hands, 640 Scenarios Before Code, Tap Safety for Small Hands.
FolioTell
SwiftUI, AVSpeechSynthesizer, Swift Testing, Maestro
An offline iPhone app that reads Markdown and plain-text files aloud. SwiftUI over Apple speech synthesis, with the playback logic in a separate library of pure reducers and effect handlers, 196 Swift Testing tests, and Maestro flows on the simulator.
FolioTell: reading a Markdown file, playing it aloud, and a Russian poem in dark mode.
Posts: An App That Reads Your Notes Aloud, A Speech Synthesizer Behind a Reducer, Where Am I in This Text?.
Agister
Go
A command-line runner for AI-agent work defined in settings files. Agents, processes and workflows are settings that compose; every run is resolved before it starts, held to its limits and budget, and recorded whole.
Source · How a run executes · How settings resolve
Posts: Agent Work as Settings, Not Code, What a Run Leaves Behind, A Code Review With a Debate Inside.
Agonara
Node.js, SQLite
A bring-your-own-agent environment for learning programs. A curator builds a program of topics, concepts, materials and checks; students read it, answer and see where they are weak. Both point the agent they already use at the same HTTP API that serves the /learn and /admin web UIs.
An Agonara Quick Check: a student answers a question and sees the result.
Posts: A Learning Program Your Own Agent Can Work On, Drafts Are Not the Program, Grading Open Answers with a Model.
Earlier iOS work
Most of my iOS work is covered under NDA, but there are a few things I can show here.
All iOS apps support Dynamic Type and Dark mode.
Hole Fill
Hole Fill was a take home assignment that I've used to present ultra-modular design of decoupled composable components. For explanation see this blog post.
The goal of this task is to build a small image processing library that fills holes in images, along with a small command line utility that uses that library, and answer a few questions.
fill-hole terminal command showing help in case of incorrect input.
Top-level view of modules and dependencies.
Detailed view with components.
CIFilterBrowser
Core Image, SwiftUI, Combine
Core Image is Apple's framework for image processing and analysis. It's great and performant but not very friendly, especially for Swift programmers.
One of the framework's pillars is CIFilter image filter. There are 230 filters in 21 categories - one filter could belong to multiple categories. Filters have different customisation options, but API is “Stringly typed” and that is Objective-C’s legacy we have to live with.
I've made an app CIFilterBrowser to make it easier to get into CIFilter details.
CIFilterBrowser main screen view options: list and grid, switched with menu.
CIFilterBrowser: search filters (names, categories, descriptions), change image for main view, apply filter by category (selection of multiple categories is allowed).
CIFilterBrowser: CIFilter detail view with controls to tweak filter parameters.
Coming soon to App Store.
Where to start
For initial dive in into the CIFilter world I highly recommend An Introduction to Core Image · objc.io by Warren Moore and Processing an Image Using Built-in Filters in Apple Developer Documentation.
Mobility
My own Chart Library, SwiftUI, Combine
An app for the Apple Mobility Index
Mobility Index Bar Chart, Country list and search (by country, region/ sub-region or city).
Mobility Index Calculation Options, country selection by bar.
Country mobility line charts: raw data and 7 days moving average.
Covid-19 Observer
My own Chart Library, MapKit, Core Data, UIKit, SwiftUI, Combine.
Covid-19 Observer: global overview, charts with floating legend.
Covid-19 Observer: map and color settings.
Covid-19 Observer: country data, chart with point inspector.
Data by John Hopkins University.
MAXimatica
SwiftUI, Combine
Pre-school math (Russian only).
MAXImatica: onboarding and mission selection.
MAXImatica: results and history.