Carol CalinPrague
Show for
CV ↓

Carol Calin · Prague · works across EU time zones

Systems that prove things about sensitive data, without exposing it.

Systems architect, data engineer and software engineer. I did forensic machine learning at the Netherlands Forensic Institute in 2023, then founded think2earn, where I run production on AWS. Twelve projects across ten cities follow, drawn as one city.

Stack · Python · TypeScript · Rust · Solidity · AWS Lambda, Fargate, DynamoDB, Aurora · Firecracker microVMs · Docker · CI/CD · PyTorch · zero-knowledge proofs · homomorphic encryption

Show the site for
Carol Calin, portrait, Prague skyline behind
Prague
3UvA degrees: BSc 2019, MSc Data Science 2023, MSc Forensic Science 2025
13prizes, plus 4 grants, 3 residencies and an invited talk, since 2024
11places on 3 continents where the work was built or won
$38.5k+in cash prizes and grants, plus $35k in compute credits

ProjectsTwelve projects, one city

Each project is a district, drawn in the architecture of the city where it took place. Scroll and the map follows. Press Play on a card and the camera visits the buildings.Each project is a district, drawn in the architecture of the city where it took place. Press Play on a card to walk through it.

Order
00Start here

Twelve projects in the order they were built

Each card gives you the problem, what I built, and the proof, in under a minute. The long version sits behind Full story.

  • The map on the left follows you. Press Play on any card to watch one request, proof or dataset move through the system, building by building.
  • Chips show the stack. Select a role at the top to highlight relevant tools and notes.
  • Every card ends with links: the repository, the showcase page, the live app or the figure. Where nothing public exists, it says so in plain text.
01Amsterdam & The Hague2016 → 2025 · University of Amsterdam · Netherlands Forensic Institute · ETHDam

Where the method comes from

Courts need to know whether a video is real, and whether an algorithm helps the expert who has to testify about it.

  • Three UvA degrees: BSc (Hons) in Politics, Psychology, Law and Economics (2016 to 2019), MSc Data Science (2023, thesis on emotion classification from EEG time series), MSc Forensic Science (2025).
  • At the Netherlands Forensic Institute I fine-tuned DINOv2 for explainable deepfake detection and tested it against certified examiners. The thesis was defended at the Ministry of Justice and Security.
  • ETHDam 2024, my first hackathon: a data bounty marketplace with Waku messaging. Waku prize, $1,000.
ETHDam 2024, Waku prize

The forensic pipeline

  1. CorpusReal videos and manufactured deepfakes (FaceFusion on GPUs).
  2. TracesDouble-compression and frequency-domain features.
  3. ModelDINOv2 vision transformer fine-tune with explainability maps.
  4. Examiner studyCertified humans versus the model, with error bounds.
  5. Evidence standardDocumentation for judges and for court-appointed experts.
  • PyTorch
  • DINOv2
  • Bayesian statistics
  • Experimental design
  • Chain of custody
  • GDPR
  • EEG time series
  • Solidity
  • Waku

For an architectEvidence pipelines that hold up under cross-examination: provenance, reproducibility and explainability are requirements.

For a data engineerCompression-artifact features, evaluation against human baselines, stated error bounds.

For a software engineerTraining code other examiners could run, and a working bounty dApp built in a weekend.

LinkedInThesis held by the NFI, not publicETHDam 2024 Waku prize
Full story

I studied at the University of Amsterdam: an honours BSc in Politics, Psychology, Law and Economics with a Data Science and AI minor (2016 to 2019), an MSc in Data Science (thesis: emotion classification from EEG time series, 2023) and an MSc in Forensic Science in digital and biometric traces (2025).

At the NFI's Digital and Biometric Traces division I fine-tuned DINOv2 vision transformers and frequency-domain models to detect deepfake videos, classified double-compression artifacts with forensic experts, and designed a controlled study that compared the models with certified examiners: how large the error bounds are, and whether the model's output improves the expert's decision. I defended the thesis at the Ministry of Justice and Security and wrote the evidence standards for judicial readers and for court-appointed technical experts.

ETHDam 2024 was my first hackathon: a smart contract and a frontend for posting and claiming dataset bounties, with messaging over Waku, built on Scaffold-ETH.

02Georgia2024 · ZuVillage Georgia, a builder residency

The first sketch of think2earn

Neurotech hardware is closed and expensive, and the people who produce brain data do not own it.

  • An EEG data-collection frontend and a plan for manufacturing open-hardware brain-computer interfaces and paying the people who record with them.
  • Best Startup and Best Idea prizes, $3,000.
  • This is where think2earn started as a hardware project. Every later district builds on it.
Best StartupBest Idea

The plan

  1. Open EEG headsetManufacturable from published designs.
  2. Collection UIGuided tasks, labelled sessions.
  3. RewardsPay for data that models can use.
  4. Business planWho manufactures, who pays, who owns the data.
  • Product architecture
  • Incentive design
  • EEG
  • Frontend prototyping
  • Business modelling

For an architectTurning an EEG thesis into a system boundary: device, data, incentives, ownership.

For a data engineerThe collection protocol and the labels were designed before any data existed.

For a software engineerA frontend shipped in days to see whether people would sit through a session.

think2earn.comZuVillage Georgia 2024, Best Startup and Best Idea
Full story

ZuVillage Georgia is a builder residency. In 2024 I built a frontend for collecting EEG data in guided sessions and wrote a business plan for making open-hardware brain-computer interfaces and paying the people who record with them. The project won the Best Startup and Best Idea prizes. The device came next, then the data pipelines, then the ways to prove and pay.

03Chiang MaiOct → Dec 2024 · ZuThailand fellowship · MegaZU residency

Prove the inference, hide the brain data

A model says something about your brain. Anyone should be able to check the result without seeing the signal.

  • An end-to-end zero-knowledge ML pipeline: fNIRSNet trained with k-fold cross-validation, exported to ONNX, compiled into an EZKL circuit, proof generated and verified.
  • ZuThailand fellow on a full-month scholarship. EZKL prize and a main-track honorable mention.
  • MegaZU, the EigenLayer and MegaETH builder residency: on-chain attestations for fNIRS data, and a presentation to the judges in a panel with Vitalik Buterin.
EZKL prizeMain-track honorable mentionTwo full-month scholarships

From PyTorch to a verified proof

  1. TrainfNIRSNet with k-fold cross-validation on the Mental Arithmetic dataset.
  2. ExportONNX graph plus an input tensor from one participant.
  3. CalibrateEZKL settings and fixed-point scales.
  4. CompileCircuit, structured reference string, proving and verifying keys.
  5. ProveWitness, then a single proof.
  6. VerifyAnyone can verify it, including a contract.
$ python zuthailand_ezkl_pipeline.py
Calibration completed.
Compiling circuit... Circuit compilation result: True
Obtaining SRS... SRS obtained: True
Running setup (proving + verifying keys)... Setup result: True
Generating proof... Proof file created at: /content/test.pf
Verifying proof... Proof verification successful: verified
  • EZKL
  • ONNX
  • PyTorch
  • k-fold CV
  • Halo2 proving
  • Attestations
  • PySyft
  • TenSEAL
  • Research writing

For an architectAttest the inference, never publish the data. The later reward systems rely on this pattern.

For a data engineerExport discipline: quantisation and calibration so a network survives becoming a circuit.

For a software engineerA pipeline with an assert after every stage. If it says verified, it verified.

RepositoryZuThailand EZKL prize and honorable mentionMegaZU residency
Full story

ZuThailand chose me as a fellow for a month in Chiang Mai in late 2024. The project: retrain fNIRSNet on the TU Berlin Mental Arithmetic dataset with k-fold cross-validation, export the network to ONNX, compile it into an EZKL circuit, calibrate the settings, generate a proof over one participant's data and verify it. The result is an inference over brain-imaging data that anyone can verify on-chain without seeing the input. I also wrote a paper on open-hardware fNIRS devices that anyone can manufacture, with a methodology for decoding basic visual imagery.

The MegaZU builder residency followed: on-chain attestations for fNIRS data, federated homomorphic-encryption experiments with PySyft and TenSEAL, and a presentation to the MegaETH and EigenLayer judges in a panel alongside Vitalik Buterin.

04BangkokNov 2024 · ETHGlobal Bangkok

Train on my data without seeing it

Biometric data is sensitive and risky to share. Homomorphic encryption lets a buyer compute on it while the owner keeps the key.

  • A bounty marketplace: buyers post data needs and CKKS parameters on-chain; owners encrypt locally with TenSEAL and approve each code request on their PySyft datasite.
  • Training runs on ciphertext. Only the owner decrypts the result, and the contract pays.
  • Deployed to Polygon and Linea Sepolia testnets with a subgraph, winning the Linea prize and an invitation to the Linea Community Call.
Linea prize

One bounty

  1. BountyPosted on-chain with the data spec and CKKS parameters.
  2. EncryptThe owner encrypts on their own machine with TenSEAL.
  3. DatasitePySyft hosts the ciphertext; the owner registers data scientists.
  4. Code requestThe buyer submits code; the owner approves or rejects it.
  5. Encrypted trainingThe model fits on ciphertext.
  6. Decrypt and payThe owner decrypts the result; the contract releases payment.
Architecture diagram of CKKS homomorphic encryption: client, keys, network, model and model owner
Architecture Who holds keys, who holds ciphertext, who holds the model.
Code requests modal: a researcher requests to run code for a 0.15 ETH reward, with Reject and Accept buttons
Code request The owner accepts or rejects each run.
  • TenSEAL (CKKS)
  • PySyft
  • Threat modelling
  • Solidity
  • The Graph
  • Next.js
  • Docker
  • Linea
  • Dynamic

For an architectTrust boundaries drawn so the buyer never holds plaintext, even if the buyer is hostile.

For a data engineerEncrypted feature pipelines, and a working sense of what CKKS can compute and what it costs.

For a software engineerContracts, subgraph, web app and a Python service that ran end to end in 36 hours.

Full story

ETHGlobal Bangkok, November 2024. d/acc homomorphic is a marketplace for sensitive data. A buyer posts a bounty that states what data they need and which CKKS parameters to use. A data owner runs a PySyft datasite, encrypts the submission on their own machine with TenSEAL, and decides which code requests from data scientists may run. Training and evaluation happen on encrypted data. The owner decrypts the result, and the contract releases the payment.

Accounts use Dynamic, contracts run on the Polygon and Linea Sepolia testnets, a subgraph indexes the bounties, and the whole thing is a Scaffold-ETH monorepo with Docker. The goal was to let people who wear brain-computer interfaces, including accessibility devices, earn from their data while keeping full ownership.

05Nashville2024 → 2026 · Ocean Protocol grant · Vanderbilt collaboration, remote

Manufacture the instrument

Universities publish good open hardware and stop at the paper.

  • Ocean Protocol research grant, $8,000: I surveyed open fNIRS hardware, wrote the paper and built NIRDuino from Vanderbilt's schematics with the Bowden Lab.
  • I ran the hardware QA myself, found hardware bugs and reported them back to Vanderbilt.
  • Collected the first public paired light-and-glucose dataset: paired near-infrared readings with continuous-glucose-monitor labels, with each recording signed by the physical unit.
Ocean Protocol Foundation research grant

Photons to dataset

  1. SchematicsPublished open design, bill of materials, sourcing.
  2. AssemblyManufacture, firmware, calibration.
  3. Optical QABugs found and reported upstream.
  4. CapturefNIRS sessions with continuous glucose monitor labels.
  5. DatasetFirst public paired light-and-glucose data.
  6. AttestDevice-signed recordings.
think2earn.com: Open Hardware BCI Kits, three NIRDuino pricing cards, Starter, DIY and Pro
think2earn.com The NIRDuino kits as sold today: Starter, DIY and Pro.
  • Hardware QA
  • fNIRS optics
  • Data acquisition
  • Dataset design
  • Device attestation
  • Technical writing

For an architectThe whole stack from photons to payouts, and where the hardware is the weak link.

For a data engineerA labelled dataset designed before the model: sampling rate, baselines, paired ground truth, provenance per recording.

For a software engineerCapture and attestation tools that run next to real hardware.

NIRDuino on think2earn.comOcean Protocol Foundation grant, 2024
Full story

With an Ocean Protocol Foundation research grant I surveyed the open-hardware fNIRS field, wrote a paper, and manufactured NIRDuino, a near-infrared spectroscopy device, from the DIY-fNIRS schematics published by Vanderbilt's Bowden Lab, in a formal collaboration with the lab. I ran the hardware QA, found hardware bugs and reported them back to Vanderbilt, collected optical brain data, and produced the first public paired light-and-glucose dataset. Recordings are signed so a dataset can be traced to a specific unit.

06SwitzerlandMay 2025 · Zuitzerland, a residency in the Alps

From raw light to a metabolic state

Can a cheap open fNIRS device tell fasting from fed? For the person it was trained on, yes.

  • Built an end-to-end signal pipeline: turned NIRDuino raw intensities into HbO/HbR, windowed 60-second epochs, extracted statistical and FFT features, and evaluated a logistic regression under stratified 5-fold cross-validation.
  • Within-subject accuracy 0.95, 0.96 and 1.00. Across subjects: 0.31 and 0.36. I report the second number because a payout system has to know it.
  • Won the Logos prize for NFT-gated decryption on Codex storage, plus a separate prize for the metabolic classifier.
Logos prizeNIRDuino classifier prize
0.95Carol · 5-fold CV
0.96Ron · 5-fold CV
1.00Rob · 5-fold CV
0.31cross-subject transfer
Four panels of fNIRS haemodynamic time series: red HbO and blue HbR over ten minutes for several channels
Fig. 1 ΔHbO (red) and ΔHbR (blue) per channel, one pre-meal session. From the submission notebook.
Confusion matrix for the logistic regression: 50 of 53 epochs classified correctly
Fig. 2 Cross-validation confusion matrix, subject Carol: 50 of 53 epochs correct.

The signal pipeline

  1. Raw intensityTwo wavelengths, all channels.
  2. ΔODLog ratio against a whole-signal baseline.
  3. HbO / HbRModified Beer-Lambert law with the extinction matrix inverse.
  4. Epochs60-second windows with 50% overlap.
  5. FeaturesMean, standard deviation, skew, kurtosis, FFT power.
  6. FitSelectKBest, then a class-balanced logistic regression.
  7. EvaluateStratified 5-fold within subject, then across subjects.
  • scipy
  • scikit-learn
  • Signal processing
  • Cross-validation
  • NFT access control
  • Codex
  • Polygon Amoy

For an architectAccess control as a property of the data, not of a server.

For a data engineerThe full signal pipeline, cross-validation that respects the epoch structure, and a negative result stated plainly.

For a software engineerReproducible notebooks with saved artifacts, plus a working encryption gate.

Zuitzerland 2025, Logos prize and classifier prizeFigures above are from the submission notebook
Full story

Zuitzerland, May 2025. The notebook takes NIRDuino raw intensities, computes optical density change against a whole-signal baseline, applies the modified Beer-Lambert law to get oxygenated and deoxygenated haemoglobin, smooths, cuts 60-second epochs with 50% overlap, extracts statistical and FFT features per channel, selects features with an F-test, and fits a class-balanced logistic regression under stratified 5-fold cross-validation. Pre-meal versus post-meal, three subjects.

Within-subject accuracy was 0.95, 0.96 and 1.00. Applying one subject's model to the other two gave 0.31 and 0.36, which is worse than chance: metabolic fNIRS signatures do not transfer between people without calibration. The write-up says so.

At the same residency I built NFT-gated decryption for Codex storage: files that only wallets holding a seller-chosen NFT on Polygon Amoy can decrypt. That won the Logos prize.

07Berlin2025 · The Vault Berlin, an invited EigenLayer build · NEAR grant

Reward data by its marginal value

Paying for data attracts junk. Pay only for data that measurably improves the model.

  • The Vault Berlin, on EigenLayer's Hourglass AVS template: glucose-monitor and NIRDuino data, with on-chain proof that new data improved the model (blocked cross-validation).
  • NEAR Developer Rewards, Diamond tier, $17,500: Rust contracts where users stake and earn when their data provably improves performance.
  • A Data-Shapley scorer (FastAPI) prices each contribution by its marginal improvement; the next step moves it into a TEE for trustless scoring.
NEAR Diamond tier, $17,500The Vault Berlin, invited builder

One contribution

  1. ContributeA user uploads glucose or fNIRS data.
  2. AVS taskAn operator receives the evaluation job.
  3. Blocked CVBaseline versus with-new-data, without leakage.
  4. AttributionData-Shapley marginal value.
  5. VerifyThe result is attested on-chain.
  6. SettleStake released, reward paid.
  • Rust
  • NEAR contracts
  • EigenLayer AVS
  • Data-Shapley
  • Blocked CV
  • FastAPI
  • TEEs
  • Mechanism design

For an architectVerifiable evaluation as the settlement layer: the model's own improvement is the oracle.

For a data engineerAttribution and evaluation protocols that stay honest when money depends on the number.

For a software engineerRust contracts, Python scoring services and AVS operators in one flow.

Design notes (carolcalin.com)NEAR Developer Rewards, Diamond tierThe Vault Berlin
Full story

At The Vault Berlin I was invited to build on EigenLayer's Hourglass AVS template. I collected continuous-glucose-monitor and NIRDuino data and proved on-chain that newly contributed data improved model performance, using blocked cross-validation so the gain is not leakage.

The NEAR Protocol Developer Rewards programme (Diamond tier, $17,500) funded the next step: Rust smart contracts for a staking mechanism where users lock funds and earn rewards when their data provably improves the model. Underneath sits a Data-Shapley scorer, a FastAPI service that prices each contribution by its marginal improvement, which is moving into a TEE-based agent for trustless scoring and payouts.

08CannesJul 2025 · ETHGlobal Cannes

Prove you were there, without saying where you were

A POAP ties your ENS name to a place and a time, on-chain, forever.

  • POAPrivacy mints attendance tokens to single-use stealth addresses (ERC-5564), registered under your ENS name (ERC-6538).
  • The keys come from a passkey: WebAuthn signs a fixed message and HKDF derives the spending and viewing keys. No private key is ever shown to the user.
  • Finalist (top 2%) and ENS Most Creative Use Case, 2nd place: $10k AWS credits plus $3,000.

Team of four. My part: the passkey-to-stealth key derivation, the address flow and its threat model.

ETHGlobal Cannes finalistENS Most Creative Use Case, 2nd

One claim

  1. PasskeyA biometric WebAuthn signature over a static message.
  2. HKDFDerives the spending key and the viewing key with ERC-5564 salts.
  3. RegisterThe meta-address goes into the ERC-6538 registry, keyed by ENS.
  4. MintThe issuer derives a fresh stealth address and mints the POAP there.
  5. AnnounceAn ERC-5564 announcement with a view tag.
  6. Scan and controlThe viewing key finds it; the spending key owns it.
POAPrivacy live app landing page: lock badge, Welcome to POAPrivacy, minting-name input
Live app ppoap.vercel.app, the claim page.
POAPrivacy mint page with the ETHGlobal Cannes POAP artwork, an ENS input and a Mint now button
Mint flow Choose an anonymous address or your ENS, then mint.
  • WebAuthn passkeys
  • HKDF
  • secp256k1
  • ERC-5564 · ERC-6538
  • Threat modelling
  • Next.js
  • Privy
  • POAP API
  • View-tag scanning

For an architectKey management that removes the key from the user experience: derived on the fly, never stored.

For a data engineerScanning announcements at scale, with view tags as a cheap pre-filter.

For a software engineerCryptographic primitives in TypeScript under a 36-hour clock, and a finalist stage demo.

Full story

POAPrivacy is a Next.js app built by a team of four at ETHGlobal Cannes in July 2025. A passkey signs a static message; HKDF derives the ERC-5564 spending and viewing keys from that signature, deterministically, so the same passkey always produces the same keys and nothing has to be stored. The stealth meta-address is registered in the ERC-6538 registry against the user's ENS name.

When the user claims a POAP, the issuer derives a fresh stealth address with an ephemeral key, mints the token there and publishes an announcement. The recipient scans announcements with the viewing key, discards most of them cheaply with the view tag, derives the spending key and controls the token. On-chain, the mint went to a random unlinked account. My part was the research and architecture of the passkey, key-derivation and stealth-address flow, and its threat model.

09Buenos AiresNov 2025 · ETHGlobal Buenos Aires

Proof of sleep, on the phone, in zero knowledge

Sleep trackers collect intimate data to reward you. Prove the outcome instead and keep the readings on the device.

  • Eepy Cat reads the gyroscope on-device and scores movement through the night. When you wake up, it generates a Groth16 proof (a Circom LessThan circuit) that the score stayed under the threshold.
  • snarkjs runs inside React Native with Node core polyfills. The proof goes through an Express relay and Curvegrid MultiBaas to a verifier on Base mainnet, which mints $EEPY.
  • A Next.js simulator models user archetypes against incentive parameters, with a Genkit "AI economist". Curvegrid prize for best use of MultiBaas.

Team build at ETHGlobal Buenos Aires; the repository lives on a teammate's account.

Curvegrid: Best use of MultiBaas

One night

  1. SenseGyroscope polling, on the device only.
  2. ScoreAccumulated kinetic energy through the night.
  3. ProveCircom LessThan circuit, Groth16 proof generated on the phone.
  4. RelayExpress, then MultiBaas handles gas and nonces.
  5. VerifyA Solidity verifier on Base mainnet checks the proof.
  6. Reward$EEPY minted, streak updated.
Eepy Cat home screen: pixel-art cat in a nightcap, 13-day streak, 178 tokens, Start Tracking button
Home Streak and tokens; nothing leaves the phone.
Eepy Cat recordings tab: live recording card, sleep streak, list of sessions with duration and movement
Recordings Sessions with duration and movement score.
Health Incentive Simulator dashboard with controls, three KPI cards and an adoption heatmap of user segments against scenarios
Simulator Adoption heatmap: user segments against incentive scenarios.
  • React Native / Expo
  • Circom
  • snarkjs · Groth16
  • Node polyfills in RN
  • Solidity · Hardhat
  • MultiBaas
  • Base
  • Incentive simulation
  • Next.js · Genkit

For an architectClient-side proving with a thin relay: the smallest trusted surface between a phone and a chain.

For a data engineerSimulating user segments against incentive parameters before collecting real data.

For a software engineerGetting a ZK prover to run inside React Native.

Full story

ETHGlobal Buenos Aires, November 2025. Eepy Cat is an Expo app that polls the gyroscope while you sleep and accumulates a kinetic-energy score on the device. At wake it generates a Groth16 proof from a Circom LessThan circuit: the private input is the movement score, the public input is the allowed maximum. snarkjs runs inside the React Native runtime, which meant polyfilling Node's crypto and buffer modules so WASM witness generation could run on the phone without freezing the interface. The proof goes to a small Express relay, then through Curvegrid MultiBaas to a Solidity verifier and a SleepRewardManager contract on Base mainnet, which mint $EEPY and update the streak.

The second half is a Next.js mechanism-design simulator. Psychographic archetypes, from the risk-seeking "100x Degen" to the complexity-averse "Traditional User", react to incentive parameters such as time preference, friction and risk appetite, and a Genkit model proposes parameter changes. The reward structure was tuned there before anyone earned a token.

10Santiago de Chile2025 · Primavera Hacker, a hacker festival · invited talk

Open medical hardware needs a different way to fund it

Primavera Hacker invited me to argue that open medical hardware and the way public money is allocated are one problem.

  • Talk: "Hacking the State: A Two-Front War for Hardware and Political Sovereignty", 55 slides.
  • The argument: new incentive systems for open medical hardware, with think2earn and NIRDuino as the case study.
  • Where public health money goes, how to fund hardware without a state budget, and coordination and legislation as engineering problems.
Invited speaker

The talk in six moves

  1. ThesisDeath by aging will be solved; there are actions that bring it closer.
  2. ResponseNew incentive systems, political coordination, open medical technology.
  3. MotivationChronically online, rarely politically involved; public money not spent well.
  4. MethodsWays to fix politics, from classical responses to paying for new parties.
  5. Case studythink2earn and NIRDuino: open hardware raises competition.
  6. CoordinationCybernetics and legislation, and new money for hardware.
Title slide: Hacking the State, A Two-Front War for Hardware and Political Sovereignty
Title slide
Slide: high level overview of the platform, FHE plus federated training with PySyft and TenSEAL; Bob sends a fine-tuning script, Alice sends data, a TaskMailBox reviews and pays
Slide 32 Platform overview: encrypted training with PySyft and TenSEAL.
  • Public speaking
  • Mechanism design
  • Open-hardware policy
  • Coordination

For an architectSystems thinking applied to institutions: incentives, feedback loops, legislation.

For a data engineerAn argument built from figures about where public money goes.

For a software engineerExplaining hard technical ideas to a room that does not write code.

Slides (PDF)Primavera Hacker, Santiago de Chile, 2025
Full story

Primavera Hacker is a hacker festival in Santiago de Chile. In 2025 I gave a talk there titled "Hacking the State: A Two-Front War for Hardware and Political Sovereignty". The argument is that solving death by aging requires open medical technology, and open medical technology needs new incentive systems and political coordination. The talk covers how public funds are misallocated, methods to fix politics, think2earn as a case study, new forms of money for hardware, and coordination, cybernetics and legislation as one problem.

11Prague2024 → 2026 · think2earn, home base

The systems that run think2earn

Running think2earn solo: AI coding agents draft, and I own the architecture, the review, the tests and what ships.

  • Production on AWS: Lambda, Firecracker microVMs, Fargate, S3, IAM, CloudWatch. Linux servers, Docker, Nginx and Caddy, TLS automation, CI/CD, signed Android releases.
  • The chat control plane below: one API, three execution lanes, a turn journal that web and mobile both read, a usage ledger settled on every done frame.
  • NoCap benchmark: GPT-2 trained on FineWeb with the Muon optimiser, microbatch packing and split-QKV, published with a failure ledger. 2026 grants: Hyperagent Founding 500 ($20k credits) and Thinking Machines Lab ($5k credits).
Hyperagent Founding 500Thinking Machines Lab grant

How the shop works

  1. SpecProblem, plan, acceptance checks.
  2. Agents draftClaude Code, Gemini, Devin and Cursor in sandboxes; I review and test.
  3. MicroVMsIsolated execution, ephemeral by default.
  4. PipelinesLambda, Fargate, S3, infrastructure as code, CI/CD.
  5. EvidenceBenchmarks with logs and a failure ledger.
  6. ReleaseSigned builds, TLS, monitoring.

Data engineering inside think2earn

  • Turn journal: every event of every turn is appended to a journal that web and mobile both read, so a client can reconnect and resume mid-turn and any turn can be replayed.
  • Usage ledger: tokens and credits are recorded on the done frame, in the same step that releases the turn lock, so billing and state never disagree.
  • Storage layout: 20 DynamoDB tables for conversations, messages, journal and ledger; S3 for artifacts and staged turn inputs; one Postgres database per tenant on Aurora Serverless v2.
  • Training data: FineWeb tokenised and packed into fixed 524,288-token steps for the NoCap run; the NIRDuino light-and-glucose dataset paired and signed per recording (project 05).
NoCap report header: 8.3% faster than the AdamW baseline, summary and four metric cards
NoCap report Headline result and metrics, nocap.think2earn.com.
Chart of first-passage validation loss curves for three seeds against the baseline, with the target-loss line
Loss curves Three seeds against the baseline, target line marked.
  • AWS Lambda · Fargate · S3
  • Firecracker microVMs
  • DynamoDB · Aurora Postgres
  • Event journal · ledger
  • Linux · systemd
  • Docker · Nginx / Caddy
  • CI/CD · release signing
  • GPT-2 on FineWeb
  • Muon optimiser
  • Benchmark design

For an architectControl planes, isolation and cost attribution as daily work. See the architecture section below.

For a data engineerAn append-only turn journal, a ledger settled transactionally, per-tenant Postgres, and training pipelines that publish their evidence.

For a software engineerInfrastructure, CI/CD and signed releases for real users, maintained solo.

Full story

Since 2024 think2earn has been my day job, as a solo founder working with AI coding agents (Claude Code, Gemini, Devin, Cursor). The agents draft; I own the architecture, review every change, write the acceptance checks and decide what ships. I run the production infrastructure on AWS: Lambda functions, Firecracker microVMs, Fargate, S3, IAM and CloudWatch, with Linux servers on Ubuntu and Debian, systemd, hardened SSH, Docker, Nginx and Caddy reverse proxies, automated TLS certificates, GitHub CI/CD and cryptographically signed Android releases.

For the NoCap benchmark I trained GPT-2 on the FineWeb dataset and published an evidence report: the Muon optimiser with matrix momentum and Newton-Schulz orthogonalisation, microbatch packing for A100 occupancy, split-QKV projections, and a failure ledger of the approaches that were rejected and why. Two 2026 grants fund the next stretch: the Hyperagent Founding 500 for engineering with containerised frontier models, and a Thinking Machines Lab researcher grant for fine-tuning and RLHF of "mirrored-self" agents.

12The Harbouronline competitions

Two leaderboard results on hidden test data

Two competitions had no city. Grants are listed once, in the ledger below.

  • 3rd of 12,000+ participants in a repository risk and impact modelling challenge sponsored by the Ethereum Foundation: codebase evolution, maintainer dynamics and dependency risk of core Ethereum repositories, predicting hidden jury data. $3,000.
  • EigenLayer Vibescore prediction: predictive models for software-verifiability infrastructure, highest prize on the leaderboard. $3,000.
  • Grants (Ocean Protocol, NEAR, Hyperagent, Thinking Machines Lab) belong to projects 05, 07 and 11 and are listed in the ledger.
3rd of 12,000+Vibescore leaderboard, highest prize
  • Predictive modelling
  • Repository analysis
  • Feature engineering

For an architectReading a codebase's health from its history: maintainers, dependencies, churn.

For a data engineerTwo leaderboard results on hidden test data.

For a software engineerModels that had to run, score and submit on a deadline.

ArchitectureHow think2earn chat works

One message, seven steps
web and mobile clients · one API · three execution lanes on AWS

think2earn chat is a multi-tenant agent runtime. Two clients, one API, and three ways to run a turn depending on how much autonomy and isolation it needs. Press Send a message to follow one request through the system.

3execution lanes, chosen per turn
1public entry point: a Cloudflare tunnel
20DynamoDB tables, plus S3 and Aurora Postgres per tenant
2clients on the same event journal: web and Expo mobile
Idle
EXECUTION LANES, CHOSEN PER TURN CLIENTS THE GATE CONTROL PLANE SETTLEMENT STATE TOOLS WEB APPsession cookie · SSEplan / execute modes MOBILE (EXPO)30-day sliding tokenno direct AWS access THE GATEtunnel is the only doorauth: cookie or bearerorg + credits lookupno public AWS endpointsTLS ends at the edge CONTROL PLANENode/Express on EC2lane routerturn lock (no reruns)SSE relay + turn journalplan engineentitlementsone API for web + mobilesame event log for both FASTsmall model on the boxsub-second first token · SSE NORMALmanaged agent runtime, toolsstreamed live (SSE 200)default lane CLOUDqueue → dispatch → isolatedFargate / microVM workerreturns 202 + request idclient polls the journal TOOLSPython code sandboxbrowser · artifacts → S3plan updates docked in UI STORAGEDynamoDB: chats + messagesS3: artifacts, turn inputsAurora Postgres / tenant LEDGERusage ledger · creditssettled on done framelock freed · follow-ups
  1. You send a message.

    From the web app or mobile client. Both use the same API; the mobile client never talks to AWS directly and maintains a 30-day session token.

    Technical

    POST /api/chats/:id/messages { content, agentMode, modelId }. Web: 12-hour session cookie. Mobile: bearer JWT, reissued on GET /api/me.

  2. The gate is the only door.

    A Cloudflare tunnel is the single public entry. The control plane checks the session, then verifies organisation membership and available credits.

    Technical

    Tunnel → Express on EC2 (localhost only) → AuthService.verify(cookie | bearer) → DynamoDB lookup of org and credits. No public AWS endpoints.

  3. The lane router picks how the turn runs.

    Fast: a small model on the host. Normal: the managed agent runtime with streamed tools. Cloud: long autonomous tasks in an isolated worker with a dedicated filesystem and budget. One API, routed per turn.

    Technical

    resolveExecutionLane(agentMode, planMode, prompt length, service health) → fast-local | agent-runtime | cloud-async | plan-microvm.

  4. Stream when you can, journal always.

    Fast and Normal stream tokens back live. Cloud returns a request ID while the client polls the turn journal. Web and mobile share this journal, so a disconnected phone can resume mid-turn seamlessly.

    Technical

    SSE 200 for fast and normal (chunk, plan_update, metadata, done). 202 { requestId } for cloud; GET …/turns/:requestId/events?after=seq every 2 s, 5 s after 30 s. Every event is journaled.

  5. Tools run in sandboxes.

    Code runs in a Python sandbox; browsing happens in a dedicated browser worker. Generated files land in S3 object storage and render in the UI as artifacts.

    Technical

    Tool call → code-interpreter runtime (stdout and files) or browser worker → S3 artifact bucket → artifact dock event to the client.

  6. State is predictable by design.

    Conversations in DynamoDB, artifacts in S3, each project's data in its own Postgres database. A turn lock stops a retried request from running twice, and the reply is saved before the done frame goes out.

    Technical

    20 DynamoDB tables (conversations, messages, usage ledger, turn journal…), S3 for artifacts, Aurora Serverless v2 with a Postgres database per tenant, turn lock and updatedAt on the conversation row.

  7. Settle the turn.

    On the done frame the ledger records tokens and debits credits, releases the turn lock, and attaches follow-up suggestions. Every turn settles the moment it finishes.

    Technical

    entitlements.recordUsage(llm_token, credit_debit) → updateConversationStatus(completed) → journal finish → releaseActiveTurnLock.

01 · One API, three lanes

Latency, cost, and autonomy are trade-offs made per turn. Clients express intent; the router picks the runtime.

02 · Single entry

Nothing in the cloud account is exposed publicly. One tunnel, one auth path, one surface to inspect.

03 · Journal, then stream

Streaming handles delivery, but the append-only journal is the source of truth. Replay, audit, and reconnection come built-in.

04 · Isolation for long work

Autonomous tasks get their own worker, filesystem, and budget. A runaway run cannot degrade the control plane.

05 · Meter at the done frame

Usage records when the turn settles alongside the lock release, keeping billing and application state synchronized.

RecordPrizes, grants and residencies

13 prizes · 4 grants · 3 residencies · 1 invited talk
hover a station on the timeline for the detail

    $38.5k+cash prizes and grants
    $35kcompute credits
    5prizes without a disclosed amount
    3residencies and fellowships
    YearWhatWhereForTypeAmount
    2026Hyperagent Founding 500remoteEngineering with containerised frontier models and harnessesgrant$20k credits
    2026Thinking Machines Lab researcher grantremoteFine-tuning and RLHF for "mirrored-self" agentsgrant$5k credits
    2025NEAR Developer Rewards, Diamond tierremoteStaking mechanism: rewards when contributed data provably improves a modelgrant$17,500
    2025ETHGlobal Cannes: finalist (top 2%) and ENS 2nd placeCannesPOAPrivacy: passkey-derived stealth addresses for private proof of attendance2 prizes$10k AWS + $3,000
    2025Repository risk and impact modelling, 3rd of 12,000+ participantsonlineCodebase evolution, maintainer dynamics and dependency risk of Ethereum core repositories; sponsored by the Ethereum Foundationprize$3,000
    2025EigenLayer Vibescore predictiononlinePredictive models for software-verifiability infrastructure; highest prize on the leaderboardprize$3,000
    2025ETHGlobal Buenos Aires, Curvegrid prizeBuenos AiresEepy Cat: proof of sleep with on-device Groth16 proofsprize-
    2025Primavera Hacker, invited talkSantiago de Chile"Hacking the State": open hardware and how public money is allocated, think2earn as case studytalk-
    2025Zuitzerland: Logos prize and classifier prizeSwitzerlandNFT-gated decryption for Codex storage; fNIRS metabolic state classifier2 prizes-
    2025The Vault Berlin, invited builderBerlinEigenLayer Hourglass AVS: on-chain proof that new data improved the modelresidency-
    2024Ocean Protocol Foundation research grantremote, Vanderbilt collaborationOpen fNIRS hardware survey, NIRDuino manufacture, first public paired light-and-glucose datasetgrant$8,000
    2024ZuVillage Georgia: Best Startup and Best IdeaGeorgiaEEG collection frontend and open-hardware BCI business plan; the start of think2earn2 prizes$3,000
    2024ZuThailand fellowship: EZKL prize and honorable mentionChiang MaiEnd-to-end zero-knowledge ML pipeline over an fNIRS model2 prizes + fellowship-
    2024MegaZU builder residencyChiang MaiEigenLayer and MegaETH residency; fNIRS attestations, federated HE experimentsresidency-
    2024ETHGlobal Bangkok, Linea prizeBangkokd/acc homomorphic: encrypted federated training marketplace; invited to the Linea Community Callprize-
    2024ETHDam, Waku prizeAmsterdamData bounty marketplace with decentralised messagingprize$1,000

    SkillsSkills, with the evidence

    Click a skill and the map shows where it was used, with a one-line proof and a link to the project.

    Systems architect

    I draw trust boundaries first: who holds plaintext, where isolation happens, what gets verified instead of trusted, and how cost is attributed per tenant and per turn. I design and operate multi-lane agent control planes on AWS and privacy architectures built on ZK proofs, homomorphic encryption and stealth addresses.

    Data engineer

    I build pipelines to process and evaluate sensitive data: an append-only event journal and a transactional usage ledger in production, per-tenant Postgres on Aurora, sensor pipelines from raw fNIRS and EEG signals to leakage-safe evaluation, data attribution with Shapley values, and training runs published with full failure ledgers.

    Software engineer

    I ship across the stack: Python services, TypeScript and React Native applications, Rust and Solidity contracts, and Linux/AWS infrastructure with CI/CD and signed releases. I got a ZK prover running inside React Native and operate a production chat backend as a solo founder.

    WritingThree essays

    think2earn.substack.com
    why the hardware must be open, why the data must be yours

    April 2025

    The Cognitive Sovereignty Manifesto

    Your cognitive data stream, the electrical and metabolic echoes of your consciousness, is not byproduct data to be harvested.
    Read →
    May 2025 · with Sejal Rekhan

    The future of neurotech is open

    Open-source software enables decentralized innovation. Open neurotech hardware will enable new onchain primitives and accelerate healthcare.
    Read →
    October 2025

    An essay on think2earn

    Like Bitcoin or Ethereum consensus rewards, except the network is kept alive by paying people to design, manufacture and build with open-hardware brain-computer interfaces.
    Read →

    ContactLet's build the next district

    Open to systems architect, data engineer and software engineer roles
    Prague · EU time zones

    Carol Calin

    If your team needs someone who can draw trust boundaries, build pipelines, ship software, and prove it works, write to me.