What your commit timestamps say about how you build
Favorite hour, weekend share, longest streak, burst pattern — commit metadata quietly measures how you actually work. Here's what's real, what's noise, and where the honest limits are.
The data you quietly produce
Every commit carries an author timestamp. You almost never think about it — it's just there, in the plumbing. But aggregate a few hundred of them and patterns appear that you'd recognize instantly, even unsigned:
hour histogram → when your brain writes code
weekday share → whether the week or weekend is yours
streak lengths → how you sustain momentum
burst ratios → inspiration-driven vs. schedule-driven
message style → how you explain work to your future self
This is the data behind Commit Canvas's developer fingerprint — archetypes like The Night Builder, The Sprinter, The Shipper. They're fun. They're also, importantly, measurements — and it's worth understanding exactly what they do and don't measure.
Five signals worth reading
1. Peak hour
The hour-of-day histogram is the most personal signal in the dataset. A 10pm–5am share above 30% is a night builder by any reasonable definition. Morning peaks (5am–noon) are rarer and tend to belong to people who protect a fixed block before the day starts. Neither is better; they're just different operating systems.
2. Weekend share
Above ~30% weekend commits usually means one of three things: side project, startup, or on-call. Context matters — the number can't tell you which, but you can.
3. Streaks
The longest run of consecutive active days measures consistency, not intensity. A 30-day streak of one commit a day and a 3-day burst of 200 commits look identical in commit count — and completely different in streak.
4. Burst ratio
Divide the busiest month by the median month. Around 1–2×: steady builder. Above 4×: sprint-driven. The highest burst ratios I've seen belong to projects with long silences — the comeback is the burst.
5. Message discipline
Average message length and the ratio of fix/vague messages says something about how a team (or a person) treats their future self. It's the difference between a history that reads like documentation and one that reads like a lottery of regrets.
The honest limits
Any tool in this space should say this out loud, so here it is: git behavior is not personality.
- Timestamps are local. Git records author-time in the author's timezone — move cities, and your "night commits" were somebody else's afternoon. (Mostly this averages out over years, but edge cases exist.)
- History gets rewritten. Rebases, squashes, and imports distort timestamps. Long-lived projects with strict merge discipline look different from squash-merge shops.
- Bots commit too. Dependabot doesn't have a favorite hour. Well-maintained repos can have a significant share of automated commits, which is why naive "who works nights" claims on big projects are often about scheduled CI.
- Correlation is small. When you commit says something about when you work, full stop. It doesn't say why, and it definitely doesn't predict anything about you as an engineer.
That's why the fingerprint is framed as "your git behavior", not "your developer personality." The claims stop where the data stops.
Patterns in the wild
Run the analysis over famous repositories and the archetypes are instantly legible. On Flask, the dominant contributor's fingerprint lands on The Shipper — years of tagged releases, disciplined cadence, a long history of versions shipped. On quieter solo projects you'll see The Lone Wolf: one name on every commit, weekends and nights, bursts and silences. Open-source maintainer repos tend toward The Marathoner — moderate peaks, very long streaks, few dramatic spikes. The pattern matches the job description.
Use it as a mirror, not a verdict
The useful question isn't "am I a Night Builder?" It's "is how I'm working how I want to be working?" If your 2–5am share surprises you, that's information about your schedule, not your identity. If your longest streak was the month before burnout, the graph knows.
Your history is the most complete record of your working life that exists. Reading it takes one command:
./run.sh /path/to/your-project