Our work

What we've built.

One product of our own, shipping now, and the engineering history sitting behind it. It's a short list, and we'd rather show a few things honestly than pad it out with work we can't stand behind.

Current

2026 · Our own product

Saare Together

A shared checklist app for iPhone. You make a list, share it with someone using their Gmail address, and both of you can add items, tick them off and delete them. It syncs on its own, and it keeps working when you've got no signal — the groceries still get added in the aisle, and sort themselves out when you're back in range.

Built with no backend

The decision that shaped everything else was to run the whole thing without a server. Every list is an ordinary Google Sheet sitting in the user's own Google Drive, and sharing a list is a Drive permission rather than a row in some database of ours. That one choice carries a long way: there's no server of ours to breach, nothing of theirs for us to hold, no hosting bill sitting underneath a one-time purchase, and no honest reason to charge a monthly subscription for a shopping list.

What that cost us

A fair bit, and on purpose. The app asks Google for the narrowest permission it can — drive.file, which only lets it see files it made itself or that you handed to it deliberately. The catch is that a list somebody else created is invisible to it, so getting a shared list into the app meant building a separate picker page, hosted on this domain, where you grant access to that one file and nothing else. The easy way was to ask for the run of the whole Drive, and we turned it down. Broad access means an annual third-party security assessment, and more to the point it means asking to see every file you own so we can sync a shopping list.

Under the hood

The app keeps its own local database, so it's fully usable with no connection and syncs up when it gets one. Where two people have changed the same list, the merge is worked out row by row rather than file by file, and the logic for it was written as plain functions and tested on its own before it ever touched the network. That's why two people adding items at the same moment both keep theirs, instead of one of them quietly losing out.

  • SwiftUI
  • Core Data
  • Google Drive API
  • Google Sheets API
  • OAuth 2.0
  • Google Picker
  • Test-driven
  • Offline-first

Before this

Where the experience comes from

Employed work, not our portfolio.

  • 2020 – 2023

    Kidoodle.TV — Sr. Full Stack Developer

    CMS and API work on a children's streaming service, plus the encoder pipeline moving content around AWS.

  • 2018 – 2020

    A4 Systems · Cantest Technologies — Systems Developer

    IoT dashboards in Calgary and Airdrie, and a web ERP built to replace an old Java system one function at a time.

  • 2017 – 2018

    Red Function — Software Engineer

    Telecom systems in Estonia for Telia Eesti — an archiving module and a registration portal wired up to single sign-on.

Something similar in mind?

Tell us what you're trying to sort out and we'll get back to you as soon as we can.