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.

Play it · Source

RexLab's home screen with its dinosaur games

RexLab's home screen with its dinosaur games.


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.

Source

FolioTell reading a Markdown file FolioTell playing it aloud FolioTell reading a Russian poem in dark mode

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.

Live instance · Source

An Agonara Quick Check: a student answers a question and sees the result

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.