I have been developing web applications for roughly 8 years now. I’ve been able to work for Fortune 500 and Fortune 50 companies. I’ve developed applications that process hundreds of thousands of jobs, and apps that are used by maybe a dozen people. This is a short story about the app I never thought I’d finally write, let alone write it for myself.
I started a project idea nearly three years ago with Laravel 5.1. It was a crude attempt, but it got some basic ideas across and monitored my websites to make sure things looked good. This went nowhere. I never even got it out the proverbial ‘door’. Some time passed and I explored another version of the idea, this time with a great new feature and name! I called this iteration OmniPulse, a fancy uptime monitoring tool that would also crawl your site and collect dead links, error logging and some SEO analysis. I actually somewhat launched this version. Naturally, life became hectic and I had to put it aside for a while, so when I came back to it, everything was quite out of date. No one was using PhantomJs anymore and the project was not very well structured.
So time passes yet again, and the idea becomes lost in the backlog of my life. I then was asked by the team at DataDog to do some code as part of an interview process. I am curious by nature so I obviously try out the challenge. They then reject me on the basis of “your code didn’t wow us.” So I said to myself, “well that’s a really weak criticism, I suppose I should make use of this code now.” Thusly, I decided to build Mission Control. The app I always wanted to build, which monitors my applications uptime, lets me track my errors in a SUPER simple UI, get basic traffic data reports back from my applications along with basic information regarding the performance of my servers. In just seconds I can get a real snapshot of my application’s well being. In the process I re-wrote (for the 3rd time) the scanners of the uptime, certificates, domains, SEO, and screenshots. I then wrote the reporting packages that developers can add to their applications and easily deploy; no agents to manually install separately and track. I’ve now been testing it for over a month, monitoring applications which process over two hundred thousand jobs weekly with Slack notifications regarding performance and key queued jobs completing their tasks to keep me on top of the application’s state.
I’ve issued various bug fixes as the days and nights have gone on, keeping a smooth workflow using CodeShip and Laravel Forge for continuous delivery. I have Travis-CI running tests on the open source packages that integrate with Mission Control, and have had my team running QA on the application for the past two weeks.
Developing applications is challenging and doing it while working a full time job is even more challenging. If you’re like me and have been working on an idea, even if its been done by a hundred other companies, develop your application and own it. It’s a remarkably rewarding experience to see it get completed and releasing it to the world.
I built Mission Control because it solves a series of problems that I have had with the development process and it allows me to express myself creatively. I’m looking forward to the challenges maintaining it and enhancing it will bring in the future, but in this moment, I’m simply happy I followed through on a goal I’ve had for a long time. Even if it takes you 8 years to do it, make sure you build something for yourself.
A dreamer is one who can only find his way by moonlight, and his punishment is that he sees the dawn before the rest of the world. ~ Oscar Wilde
If you liked this entry connect with me on