Software
I am a researcher who also ships software. These are tools I designed, wrote and published myself, each built for a specific kind of user, most with the code open to read. Research results are on the research page.
Language model · bioelectricity
CellBio-GPT
A small language model for cell and tissue bioelectricity, with a physics simulator as the referee.
Language models trained on papers learn how papers sound. In biology nothing usually tells the model when a number it wrote is wrong. Bioelectricity is an exception, because the membrane physics can be simulated: BETSE takes ion concentrations and channel permeabilities and returns the voltage of every cell in a tissue.
The simulator is used twice. It scores the model’s numeric predictions, so the model is trained against physics rather than against someone’s opinion of its answers, and it writes the exams, so it is possible to ask whether the model learned anything beyond its training points. Facts are not memorised: they live in a full-text library of 3.2 million PubMed abstracts that the model quotes with PMIDs.
Every stage of the pipeline is written for the project in plain PyTorch on one GPU: a BPE tokenizer, a 40.5M-parameter GPT, pretraining, SFT, preference optimisation, and reinforcement learning with the simulator as verifier. The final exams were sealed: the repository holds only their hashes, committed before any model saw them, and the analysis plan.
iPhone and iPad app · Swift
BunnyQuant for iPhone and iPad
A native client for the BunnyQuant analytics service: a watchlist, candlestick charts, and a risk card.
-
Watchlist: one line per symbol, with a plain-language lean. -
Candlesticks drawn natively, with entry, stop and targets over the price. -
The numbers as a table, then as bars: typical move, risk to stop, target. -
The same screen on a different market: Bitcoin.
Written in plain Swift and SwiftUI, with no third-party libraries and no web views. The candlestick charts are drawn directly with SwiftUI Canvas. For each symbol it shows entry, stop-loss and take-profit levels alongside a movement-and-risk card.
It is free, and every install gets its own anonymous account, verified with Apple App Attest rather than a sign-up form. Results are kept on the device until the bar closes, so reopening the app does not spend an allowance.
The analysis itself runs on private servers and is not part of the repository; the source is published for reading only.
iPhone and iPad app · Swift
BunnyQuantVN
The sister app for the Vietnamese market, in Vietnamese: the VN30 list, candlesticks, entry, stop-loss and take-profit.
-
Watchlist in Vietnamese, seeded with VN30 tickers. -
Candlesticks with Vào (entry), Cắt lỗ (stop-loss) and Chốt lời (take-profit). -
A quick read that knows the local rule: T+2 settlement, so stops need planning ahead. -
The same screen for another ticker: Hòa Phát.
Same native Swift approach as the US app, pointed at a Vietnamese backend, with its own interface language, logo and colours. A watchlist is seeded with VN30 tickers on first launch, and each ticker opens to a candlestick chart with entry, stop-loss and take-profit levels and a movement-and-risk card.
Free, with an anonymous per-install account verified by Apple App Attest. As with the US app, the analysis is server-side and not in the repository.
iPhone app · Swift
PhotoNest
Frees space on a full iPhone by shrinking photos and videos on the phone itself, instead of deleting them or uploading them anywhere.
-
Before and after compressing 110 items: 586 MB back, dates, places and albums kept. -
Overview: what fills the phone, by kind and by year. -
Compress: choose video resolution and photo size, see the saving first. -
Ask in plain words; the assistant runs on Apple’s on-device model.
Most cleaners delete. PhotoNest re-encodes videos (480p to 1080p) and photos (chosen size and quality) on the phone, keeping the original date, location, favourite status and albums. Space comes back only when the originals are removed, and the user confirms that step; removed items stay in Recently Deleted for 30 days.
It also finds similar shots and bursts, copies of the same photo saved several times, old screenshots and heavy videos. A plain-language assistant (“screenshots before June”) uses Apple’s on-device model on iPhone 15 Pro and later. Everything runs on the phone: no servers, no account, no ads, no tracking.