Moments is a Ruby on Rails application that does one thing: it saves a record to a database every minute. That's it. No grand purpose, no practical utility—just the mechanical act of marking time's passage, one moment at a time.
Why build something useless? Because sometimes the best projects are the ones that exist purely as exercises in engineering, deployment, and infrastructure. This became a playground for containerization, background jobs, ARM architecture, and AWS orchestration—all wrapped around the simplest possible application logic. A Sidekiq job, its own container, doing nothing more than enqueuing itself once a minute, is a sledgehammer built to crack a walnut on purpose.
For an application that saves a record every minute, having both Datadog and Sentry watching it is complete overkill—and that's exactly the point. It's the same instinct as the separate Sidekiq container: build it like it matters, even though it doesn't.
This wasn't just an academic exercise—it came from a real work requirement. Our team needed to migrate workloads to ARM64, since our CTO wanted production to match our dev machines, and the whole team was on Apple Silicon MacBooks. Moments became my testing ground for that migration: a place to hit ARM64 Docker gotchas and work through deployment issues on my own time, before touching production systems at work. ARM instances like Graviton are also just cheaper, so the learning came with a cost benefit too.
Rather than RDS, PostgreSQL runs on its own EC2 instance on Amazon Linux—a conscious choice to keep practicing manual database administration. Amazon Linux being RHEL-based meant my Red Hat knowledge transferred directly: package management with yum, systemd, general Linux administration all worked exactly as expected.
There's something oddly satisfying about an application that exists purely to mark time. Every minute that passes gets recorded, acknowledged, saved. It's useless in the practical sense, but it's a working system that demonstrates competence with modern deployment practices.
Sometimes the best learning projects are the ones that don't need to justify their existence. They exist because you wanted to see if you could build them, deploy them, and keep them running.