Back
Selected work/02/2021

Day
mate..

A daily-planning app for adults in care — visual schedules, time blocks, customisable reminders. Originally built by another company, inherited by Script B.V., rebuilt by me from scratch in Flutter during a six-month internship. Still live on both stores. Still in daily use.

Client

Script B.V.

Role

Sole developer, with team support

Timeline

Feb–Aug 2021 · 6 months

Live at

apps.apple.com/nl/app/daymate

— The brief

Script B.V. (script.nl) is a Dutch care organisation in Groningen that runs ICT learning and work programmes for adults with autism or giftedness — about 150 active clients across day-activity, custom, and reintegration tracks. Their motto translates as "not adapted work, just real work." Clients learn to program, take on projects, and work toward jobs in regular ICT.

Daymate is the planning app some of those clients use to structure their day: morning routine, work, breaks, end of day, with notifications at the times they choose. Predictable daily structure isn't a feature, it's the product.

Script had bought Daymate from another company. The idea was right; the execution wasn't. Native iOS and native Android codebases that had drifted apart, fixes on one platform that didn't help the other, a bug list that grew faster than the fix list. My internship assignment was to make it usable again.

Approach.

— Method
01

Diagnose

First weeks: get the existing app running on both platforms, fix what could be fixed quickly, learn what couldn't. The bug list grew faster than the fix list. Two divergent codebases meant every bug was effectively two bugs.

02

Decide

Patching wasn't the answer — but rewrites usually aren't either, and as an intern, recommending <em>throw out the existing code</em> is a thing you do carefully. With the lead developer and the project manager I worked through the options honestly: what could be salvaged, what couldn't, what a rewrite would actually cost in time and risk. The conclusion was rewrite, but in a way that meant we'd only do it once. I researched cross-platform options and proposed Flutter — one codebase, both stores, fast iteration, mature enough by 2021 to bet on. Approved. <em>That decision is the reason another engineer can pick the project back up five years later.</em>

03

Build

Flutter for the apps. Laravel + MySQL for the backend and authentication. Firebase Cloud Messaging for notifications, which are core to how the product actually works. Mixpanel for analytics, so we'd know what was being used and what wasn't. I wrote all the code and made the architectural calls. Lead developer reviewed when something felt off; project manager kept the scope honest with daily standups.

04

Ship

App Store and Play Store, six months from kickoff. Used in care settings every day for the five years since. Recently picked up again by another engineer at the company for a new round of features.

"Rewrites are usually the wrong answer. Sometimes they're the only one."
— Operating principle, Iruoy
5y
Live and in daily use

Shipped in 2021, on both stores ever since. Recently picked up again for a new round of features. The codebase outlasted the internship by a factor of ten.

~100
Monthly active users

Small, dedicated user base in a specific care context — not a B2C growth story. Software that does what it needs to, for the people who need it.

2:1
Two stores, one codebase

Replacing two divergent native codebases with one cross-platform Flutter app is what made it possible for someone else to pick it back up five years later. That handoff is the rewrite paying for itself.

Stack.

— What it's built with
FlutterDartLaravelMySQLFirebase Cloud MessagingMixpaneliOSAndroid
— Next caseFor don.