4 live 1 building on the bench: Pehra Pro, Snap Receipt last shipped

The changelog

This page is a changelog, newest first. Major versions are platform shifts. Minor versions are what I learned the hard way.

Start from v0.1

6.0.0 · 2026 · Directing, not typing

This is the year agents started writing most of my code. I see them as a tool, an extraordinary one.

The habit from the remote years came back, too: write it down first. Every big product now starts with a spec, because an agent only knows what's written down.

In 2026 so far: 9 products, three open-source packages and about 2,945 commits.

Added
PRCHD, Pehra Pro, Snap Receipt, QuickPeek, and the rest of the projects.
Changed
the job. Less typing. More deciding what to build, writing it down, and checking what comes back.
Breaking
hours stopped being the unit of work.

5.0.0 · 2024 · Velzosoft

In 2024 I co-founded Velzosoft, and I lead its engineering. We turn AI-built MVPs into secure, scalable software for real customers. I make the architecture calls, agents build on them, and nothing ships until I've reviewed it.

Added
a place to build products end to end, from the first spec to the store listing.

4.0.0 · 2018–2026 · Vizzn: Flutter in production, a graph in the backend

Remote again, with a team in Canada. Flutter apps from the first build to the stores, with development and production releases kept apart. Node.js microservices over highly relational data in Dgraph, where a relationship is an edge the database understands rather than a join the application rebuilds. And a mobile team of three to lead: their stories, their merge requests, their releases.

Added
Dgraph, release ownership, a team to lead.

3.1.0 · 2017–2018 · Flutter, before 1.0

Between roles I took on EntrenaPro: a coaching app with more than 40 screens, from mockups to the App Store and Google Play in four months, on a Flutter that hadn't reached 1.0. Stripe payments written in Dart from the documentation, because there was no SDK. Push notifications through platform channels, in Java and Swift. A move from Redux to BLoC halfway through.

Two screens needed widgets that didn't exist yet, so I built them and published them, along with the Stripe code. Around it: a thermostat UI published five weeks before Flutter 1.0, and plugins for Fastify and Express on npm.

Added
Flutter, Dart, and open-source packages: stripe_api (still my most-starred repository), month_picker_strip, cupertino_range_slider, hapify, Fastify plugins for NATS, Mongoose, Redis and OrientDB.
Learned
when the package you need doesn't exist yet, write it and publish it.
Wrote it up
"EntrenaPro — From Zero To Flutter", 2 October 2018 · the original

3.0.0 · 2014–2017 · Remote, before it was a policy

At the end of 2014 I went remote, years before a pandemic made everyone else do it. MiID Cloud, with a team in China: Node.js APIs on hapi, MongoDB and Elasticsearch, documented in Swagger and shipped through Jenkins and Docker. The Android and iOS apps on top of them. And the scrum board for both mobile teams.

Writing code taught me how systems break. Running the board taught me how teams do: mostly by waiting on each other.

Added
Node.js, scrum, decisions in writing.
Also
a full-stack TypeScript framework in late 2014, when TypeScript was still at 1.x. Smart-home IoT in 2016 and 2017: ESP8266 firmware on Google's Weave protocol, an MQTT broker for devices, and device services in Go.
Learned
if a decision isn't written down, it wasn't made.

2.0.0 · 2012–2014 · The job starts, in two languages

My career started in 2012, on site, in native mobile. Android in Java: an Activity, a layout file, and nothing between you and your own mistakes. Then iOS in Objective-C: the same product in a second language, with twice the code.

Learned
building every screen twice teaches you what a platform costs.

1.0.0 · 2010 · The tracker

Before I graduated, I built a commercial vehicle tracker: a PIC16F887, a SIM900 GSM module, and firmware in C that had to survive weak signal, dirty power and bad roads.

Devices like it now report to Pehra Pro, which I'm building.

A PIC microcontroller in a 40-pin package, beside a SIM900D GSM module.
The parts the 2010 tracker was built around: a PIC microcontroller and a SIM900 GSM module.

0.3.0 · 2007–2011 · Computer Science, sixteen milliseconds at a time

A bachelor's and then a master's in Computer Science, finished in 2011. On the side I lived inside game engines: LibGDX on mobile, OGRE on desktop.

Games are the harshest real-time systems most people ever touch. Sixteen milliseconds a frame. Miss it and everyone notices.

0.2.0 · 2003–2007 · The bottom of the stack

A Diploma of Associate Engineer in Electronics Technology: digital logic and design, and assembly language. In 2006 I programmed my first microcontroller, a PIC16F887: 40 pins, 8 bits, 368 bytes of RAM, in C. At that size C isn't a high-level language. It's a polite way to count bytes.

Then a year of Instrumentation and Process Control: measure, compare with the setpoint, correct, repeat. I still build that loop. These days one of the steps is an agent.

Learned
every abstraction has a cost, and someone always pays it.
A PIC microcontroller in a 40-pin package.

0.1.0 · Grade 9 · GW-BASIC

Line numbers. GOTO. And the first time a machine did exactly what I told it to, including the wrong thing.

What I like working on

Real problems for real businesses. Systems that have to scale before anyone's sure they will. The moment a hard design suddenly looks obvious.

A man studying a wall of sketches and wireframes.

The facts

Shipping since
2012
Remote since
2014
Now
engineering lead at Velzosoft (co-founded 2024)
Education
Master of Computer Science (2011) · BS Computer Science (2009) · Diploma, Instrumentation and Process Control (2007) · Diploma of Associate Engineer, Electronics Technology (2006)
Languages I think in
TypeScript, Dart, Swift. C when the hardware is listening.
Shipped in before those
Java, Objective-C, Go. GW-BASIC, for the record.
On GitHub since
October 2011