I’ve been a software engineer for a few years now and I love just about every bit of it. I’ve built and learned a lot of things through my experiences; from macro scripts to self driving Rocket League cars, from inventory imaging programs to distributed IoT power management systems.
Over the course of the past year, I decided I’d take the plunge and finally take on web development. Considering my best language by far is Python my framework options were either Flask or Django. The purpose of the site was fairly ambitious and since I knew next to nothing about web dev, Django was the way to go. The goal was to build everything custom from the ground up because as far as I knew, it was the only way. The fact that I’d never managed a team of developers up to that point presented its own set of challenges.
It. Took. Forever.
How smooth development goes is directly correlated to knowing what your options are. When you don’t know what your options are, well….you’re gonna run into a lot of walls and do a lot of fruitless googling until the answer you were looking for shows up in a completely unrelated thread on a dead forum from 2006. It took 6 months for my team and I to get a salable product out. Not good for a minimum viable product.
By comparison this site was set up in a matter of hours in a single day. Granted some points of my experience over the past year have helped in some ways, the purpose of this site is hardly custom, there’s no need to connect multiple servers together, and there are no users or payment systems to worry about. Other benefits are that there aren’t any nginx or gunicorn configurations to set up, no websocket connections via GitHub nor anywhere else, no setting up user permissions on the server — everything can be managed and configured from the admin console within my browser.
Being able to manage things within a GUI is a mental relief. While I have at times in the past basically lived within a terminal from dawn until dusk and am comfortable with it, it is awful to come back to after even a few weeks. It is mentally taxing to have to try to remember how things are configured, where everything important is, and all the arguments for all the programs needed to run a website.
I have a lot more respect for out-of-the-box solutions now, even if they don’t always 100% satisfy their use case. Getting 100% of something done at 80% quality is better than getting 0% of something done at 100% quality.
In short, keep it simple, stupid.