Solving Problems Without a Single Line of Code
July 13, 2024
Solving Problems Without a Single Line of Code
The year is 2017, and Dennis Marchand is fresh out of a coding bootcamp, ready to take on the world and prove his detractors wrong. Critics said he was making a mistake getting into coding, predicting that platforms like Wix would make him obsolete. But Dennis, armed with the brash confidence earned from solving FizzBuzz and a rudimentary understanding of Ruby, was eager to prove himself to his peers.
One of the first assignments I received was to create a CSV bulk uploader feature. The client I worked for needed a way for their operations team to upload stores that carried their merchandise to their website. It seemed simple enough, so I dove right in.
Initially, things went smoothly, but soon I realized there was more complexity than anticipated. It was the typical CSV uploader scenario, but with added layers of difficulty:
- The uploader would take considerable time to execute due to the amount of data to be persisted per row, necessitating an asynchronous job.
- Users needed to be notified of mistakes in their CSVs via email, with details of all errors and row numbers.
- The email should list all errors, not just the first encountered.
- Users should be able to fix errors on specific lines and re-upload without removing successfully uploaded lines (atomic transactions).
As the project grew more complex, I found myself two sprints in and the project veering off track. That’s when my mentor stepped in, bringing a fresh perspective.
I recalled my mentor’s conversation with the stakeholder:
“How many times a year do you think you’re going to use this feature?”
“Once every quarter.”
“Ah, I see. We should just hire a temporary data entry worker for a day every quarter at $15/hour instead of writing this software.”
This moment was a major turning point in my career. As engineers, it’s easy to get fixated on solving problems with the tools we know best. I was so invested in solving what I saw as a complex and critical engineering challenge that I lost sight of the bigger picture.
My mentor’s creativity, experience, and lack of ego led to a simpler, more efficient solution. Instead of over-engineering a complex software solution for a low-impact problem, my mentor suggested a practical and cost-effective alternative.
I carry this lesson with me to this day. Often, the problems we face can be solved more efficiently by thinking outside the box and considering non-technical solutions. It’s a reminder that sometimes, the best way to solve a problem doesn’t involve a single line of code.