Ask a contractor what they’ve worked on in the last year and you’ll get a vague answer. Something like “infrastructure, some web stuff, bit of everything really.” Ask me and I’ll give you a categorised breakdown of 489 logged tasks across 560 hours — because I tracked all of it.
Why Track at This Level
I use Kimai, an open-source time tracker I self-host. Every task gets a description. Not “did some work” — an actual note. Migrated LND wallet to new channel database. Configured Caddy reverse proxy with mTLS passthrough. Wrote Python script to reconcile UTXO set against xpub descriptors. That kind of thing.
I didn’t start doing this for any strategic reason. It’s just how I work. But recently I pointed Claude Code at the Kimai API and asked it to pull and categorise everything I’d logged over the past 11 months. A temporary API token, some paginated queries, and a bit of inline Python later — I had a complete inventory of what I’d actually built, configured, debugged, and deployed.
The result surprised me.
What I Found
The breadth was wider than I remembered. Across 11 months of contract work, the entries spanned:
- Infrastructure — Proxmox virtualisation, LXC containers, Docker Compose stacks, systemd service management, kernel upgrades, disk provisioning
- Networking — Tailscale mesh configuration, HAProxy L4 passthrough, Caddy TLS termination, UFW rules, DNS management, nginx stream proxying
- Bitcoin — Full node operation, Lightning (LND) channel management, wallet architecture, BIP-322 message signing, descriptor-based address derivation, UTXO verification
- Security — Passkey (WebAuthn) authentication, encrypted-at-rest blob storage, API token lifecycle management, SSH hardening, backup verification
- Web development — SvelteKit applications, REST API design, SQLite schemas, responsive UI, dark mode implementation
- Monitoring & ops — Cron job auditing, log analysis, backup automation, disk space management, service health checks
- Compliance & reporting — PDF generation pipelines (Pandoc + LaTeX), automated report templating, audit trail design
That’s not a list I could have written from memory. I’d have missed half of it, or been vague about the specifics. But with 489 documented entries, each with a description, the data writes the list for you.
From Timesheets to Capability Statement
Here’s what I didn’t expect: a well-maintained timesheet is essentially a first draft of your professional portfolio.
When every entry has a description, you can query your own history and answer questions like:
- What networking technologies have I configured in production? — Tailscale, HAProxy, Caddy, nginx, UFW. Not “I’ve done some networking.”
- How deep is my Bitcoin infrastructure experience? — 200+ hours across node operations, Lightning channel management, and wallet tooling. Not “I know a bit about Bitcoin.”
- Can I do full-stack web development? — Here are the SvelteKit apps I built, the API endpoints I designed, the SQLite schemas I wrote. Not “I’ve done some web stuff.”
The specificity matters. Anyone can claim broad competence. But being able to say “I’ve spent 73 hours in a single month on infrastructure work, and here’s what that included” is a different kind of statement. It’s verifiable, it’s precise, and it’s convincing.
The Technical Side
The reason this works is that Kimai exposes a REST API. A web dashboard shows you your hours. But when you want to categorise, cross-reference, and summarise a year of entries, you need programmatic access.
The query was straightforward — paginated GET requests to /api/timesheets with date range filters, joined against /api/activities and /api/projects for metadata. Claude Code handled the aggregation: grouping by activity type, calculating hours per category, extracting the description text for pattern analysis.
Self-hosting matters here. The data lives on my server, in my database. No export limitations, no vendor lock-in, no wondering whether the SaaS will still exist when I need the data in three years. Kimai runs in Docker and the API is clean. If you contract and you don’t already track your time at this resolution — this is the tool.
Bottom Line
Your timesheet isn’t just a billing record. Maintained with enough detail, it becomes a searchable, queryable log of everything you’ve actually done — the kind of evidence that lets you describe your capabilities with specificity instead of hand-waving.
Track your time. Write descriptions. Self-host the data. You’ll be surprised what it tells you about yourself.