Hi everyone,
My name is Vaibhav, a backend engineer with almost 5 years of experience working with Java and Spring Boot. A few weeks ago I shipped my first side project end to end.
The problem:
At work we had a scheduled job fail silently for days. No alerts, nothing. Data wasn't being processed and nobody knew until someone manually checked.
Every backend application has cron jobs. Invoice emails, data syncs, report generation, session cleanup. And most of the time nobody is watching them. They either run or they don't. You find out something
broke when a customer complains.
The Solution: Dead Man's Switch Pattern
The idea is simple. Your cron job sends a ping to a URL when it finishes. If the ping stops arriving within the expected window - you get an alert.
One line at the end of any cron job:
**
curl "https://cronsentry.io/ping/abc123?key=xyz"
**
Works with any language, any scheduler - shell scripts, Python, Java, GitHub Actions, AWS EventBridge. If it can make an HTTP request, it will work.
The product:
CronSentry: a lightweight cron job monitoring tool.
Tech stack:
- Backend: Java 21, Spring Boot, MySQL, JWT auth
- Frontend: React (Vite), Tailwind CSS
- Hosting: Railway (backend + database), Netlify (frontend)
- Email: SendGrid
Features:
- Email alerts when a job misses its window
- Recovery alerts when the job comes back
- Configurable interval and grace period per monitor
- Ping key rotation for security
- Simple dashboard with ping history and alert history
- Bell icon with unread notification count
The Journey: 5 Weeks While Working Full Time
I had never deployed anything to the cloud before. At work everything goes through a DevOps team. I had never touched Railway, Netlify, environment variables in production, CORS across different domains, or email delivery issues.
I know this isn't how enterprise software gets deployed. No Kubernetes, no CI/CD pipelines, no load balancers. But for a solo side project - Railway and Netlify got me from zero to live in a few hours once I understood how they worked.
What I Learned
Technical:
- Full stack development end to end for the first time
- React from scratch: hooks, routing, state management, Axios
- Cloud deployment: Railway, Netlify, environment variables
- SendGrid HTTP API for transitive email delivery
Non-technical:
- Shipping something imperfect is better than perfecting something unshipped
- The hardest problems are rarely the ones you expect
- Building alone is slow as every decision lands on you
Try it!
CronSentry is free to try: cronsentryapp.netlify.app
If you have cron jobs running in production and you're not monitoring them, give it a try. Setup takes less than a minute.
Would love feedback from the Dev.to community, on the product,
the tech decisions, anything. What would you have done differently?
Top comments (0)