Timing - Automated Time Tracking for macOS

The Context

Working on the macOS time-tracking app Timing for over three years was a unique experience. During this time with Daniel Alm, Timing felt like home – very much like working on my own apps.

Core Contributions

My work focused on:

Technical Challenges

Third-Party Integrations

One of my main contributions was developing the integration system that allows Timing to automatically track time spent in various applications. This required spelunking in SQLite databases to find out ways to ingest data.

RxSwift

The app’s reactive architecture using RxSwift allowed us to:

Team Dynamics

What made this project special was the collaborative environment and the trust to make architectural decisions. The codebase was well-maintained and actively worked on, Daniel emphasized pragmatic testing, and there was always room for suggesting improvements and implementing them.

Personal Reflections

This project felt like home: like my apps, it was crafted by a single mind with a focus, not a group with shifting participants and styles – which you notice quickly as you walk through a code-base. We’ve worked together on this app for a long while before parting ways, so I knew some corners like our pantry at home.

I also remember that I didn’t need to touch client/server synchronization until very late in our collaboration, and it was kind of weird to find an unknown part of the app so late in the process. The feeling of homeliness didn’t fit the surprise of discovering how that stuff worked, so that was quite a weird dissonance.

I wonder if I would’ve made some decisions differently, had I not been shielded from these internal workings. Then again, it’s hard to justify the time and cost of walking someone new on the team through all the parts “just in case”. And dumping information up front, when it cannot yet be anchored to experience, will make very little of the tour actually stick.

For my projects, I took away a lesson here: that it’s important to onboard someone with narrowly scoped tasks that touch as little of the code base as possible, and expand in scope slowly, while also offering a tour of the code base every now and then to help the new teammember orient themselve – a lesson I took to heart as I prepared things to work on for Marin in my app TableFlip later.

Impact

The features and improvements I contributed to Timing helped serve thousands of users who rely on accurate time tracking for their billing, productivity analysis, and work-life balance. The stuff I was allowed to create, like the “Entry-O-Matic” (actual working title “Task-O-Matic” rolled better off the tongue, but was inaccurate) reduced the repetetive work that users needed to do, and that must surely have saved a couple of years of people’s lives, combined, which is a crazy thought.

I’m using Timing myself and enjoy watching it grow up and change even since I left. It’s a great piece of software.

Team & Collaborators

Team size: Small team


Enjoyed this project story?

← Back to Portfolio Overview to explore more projects, or view my CV for a comprehensive overview.

Ready to build something great together? Let's talk about your project →