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.
1. Tomorrow will always come
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.
2. Sometimes you have to make tradeoffs
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:
3. It's better with a team
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!
Top comments (4)
I can totally relate to this. Nothing beats that feeling of accomplishment, you know. During the lockdown period, I developed a web-based project management app for my company to be used across its branches in West Africa.
It was one of the most challenging yet exhilarating things I have ever done; the sleepless nights... the countless times I slammed my hands on the table in exasperation... the endless cups of coffee and bottles of diet coke... the tweeny feelings of self-doubt... all faded away when the app went live in July.
I mean, I almost twisted my arm trying to pat myself on the back the morning after deployment night. The mere fact that my invention, something I single-handedly built, is powering the company's operations across its 9 branches in West Africa gives me so much joy and satisfaction. I must confess though, dealing with the bugs afterwards are no fun. But like we say here in Nigeria "Lass-lass, we go all dey alright" (means, everything would work out at the end).
Cheers man!
Absolutely!! Diet coke is my drug of choice as well!!! :)
But yes, everything what you just said, 1000x. It's the euphoric feeling of creation, coupled with that crippling fear that everything is on your shoulders and it will all go wrong.
Cheers to you!
That is so cool. What tech stack did you use?
Great question!!
It is all web based, and it's hosted on Google App Engine using Cloud SQL for database management.
For the frontend, it's just vanilla HTML/SCSS and TypeScript. No frontend frameworks used at all. For the backend it's all PHP connecting to that MySQL database. Only one small framework for the backend, but that's mainly for making the database connections and sanitizing data.