AKA...the story of Luminary.
In May of 2019, I made the largest declaration of my entire career that changed how my company interacts with our customers forever.
I said that I would build our entire sales and marketing platform and be ready to roll it out to our sales floor of 15 salespeople, in three months. From May 6th - August 6th.
I was sworn to it by the CEO of my company, and in large letters on my whiteboard I wrote "August 6th", with a crude drawing of an airplane next to it. It was going to come, by hell or high water.
Since then, it has processed tens of millions of dollars of revenue, had hundreds of employees use it within the company, and processed over 500,000 phone calls, 100,000 text messages, and 45,000 leads.
In this time, I learned a lot, made a lot of mistakes, and came to three key realizations in how I built it, that I want to share today.
Right after a launch, (and especially after a launch that quick), there will be bugs. And oh boy, did we have our share of bugs. Every day for days after this is a good representation of how I felt:
But the sun always rises on a new day. You will deal with bugs, and as long as you make your users feel cared for and important, all issues will be worked out.
There comes a time when building software that you have to make tradeoffs. That may seem like a very basic realization, but to me, I thought all software was either built right or it wasn't. It wasn't until I undertook this massive project, that I realized shades of gray exist. Sometimes, you have to hard code that feature. Other times, you need to tell a stakeholder what they want isn't going to happen, yet. Until you learn this lesson, you will ALWAYS hold yourself to unreasonably high standards, and end up looking like this:
I built the entire thing by myself, from UI implementation to database architecture. While I did this, the rest of the engineering team that I managed worked on maintaining other web properties.
After the initial build, we started moving the whole team onto the maintenance and building out features for the system. And my goodness!! It was so much better when I could bounce ideas of other engineers, and give things better suited to their specific talents to them. Again, that seems like a shallow realization, but sometimes, while doing development seems better in a vacuum, it's always better when done with others!
In the end, I succeeded! I delivered a fully functional CRM that worked for the entire sales and marketing team in three months. And while it has grown far past what I initially built, the core functionality is still there, and it's a thrill to work on it every day a year and a half later with how far it's come!
Let me know if you all want to hear more about this and specific engineering decisions in the comments below!