Designer to DevOps 🤓
Hello makers,
I learned Photoshop long before I learned how to write HTML. I started my career as a designer, pushing pixels. While I was going to art school, I started writing front-end code. Still, the design was front-and-center, and the programming played a supporting role.
This past week, I provisioned a Ubuntu server with Rails, Redis, and PostgreSQL, deployed a Docker stack on Kubernetes with a Varnish cache, a Node.js express app, a Sidekiq job runner, and WebSockets. I'm currently sharding a production database to improve performance during major traffic spikes, using a read-only follower.
How did I get here? I just want to make stuff.
Â
The early days
Things were simpler when I started out in web development. Knowing the basics of web programming gave me an edge as a designer. Front-end development consisted of HTML, CSS, and vanilla JavaScript (sorry, no VBScript, Microsoft people). You write your code, test it locally, and fire up an FTP client to upload it to the server. FTP was the closest thing to DevOps for me at that time.
Eventually, the tech stack expanded a little. We started using Subversion for version control (long before Git existed). I fell in love with Flash and ActionScript. I began to think about what else I could do.
Since Flash was owned by Macromedia (before Adobe bought it), ColdFusion was being marketed heavily to the community. With ColdFusion, I could start building things with persistence. Now we're moving to the back-end. I learned about databases, SQL queries, and how to design an API. All in ColdFusion at first.
Then Flex was released, and suddenly everything was code. No more Flash timelines, and seamless integration with ColdFusion. Consuming web services, and drawing to the view all in one place. Using the languages I knew, ActionScript and ColdFusion.
At some point, I picked up a side-project that required a database, and suddenly I became a full-stack dev, although I wasn't aware of that term at the time.
Â
Languages
In my experience, once you've learned two distinct languages (spoken or programming), it's easier to learn a third, and a fourth, and so on. You start noticing universal rules, and everything comes down to syntax. So having learned JavaScript, and ActionScript, and ColdFusion, it wasn't a stretch to learn PHP, and later Ruby, and jQuery, and React.js.
So very quickly, languages stop being a barrier to learning. The front-end and the back-end have little to separate them.
Â
Incremental tech creep
It starts with a file. You need to set up a redirect on your WordPress site, and the best way to do it, in this case, is to modify the .htaccess file. Then you need to resize images in order to generate thumbnails, and you have to learn to install ImageMagick. You're already navigating Linux with terminal commands. Rebooting Apache. Checking if MySQL is running. Using Vim.
For me, I really had to dive into Linux-land when I provisioned my own virtual web server. Learning how Apache works, and how to install requirements, keeping the server up to date. We're not dabbling in DevOps anymore. Working on the server has become just another part of web development.
Â
The cloud
The cloud changed everything. Heroku was my introduction to infrastructure as a service. Instead of fumbling around with uploading files or custom deployment scripts, managing databases, and SSL certificates, the cloud did this for us.
My biggest side-project, Link My Photos runs on Heroku. When the app became popular, suddenly I was faced with legitimate DevOps challenges. I had to scale to meet demand. Learning about concurrency, caching, sharding, followers, and background job runners became routine. Extending some pieces of the app into AWS was essential. DevOps became the primary focus, and design is a distant memory.
Â
Getting back to the front
I'm not really interested in DevOps. I love learning about all the underlying technologies that power the internet, but I'd much rather make something cool. I'm interested in the parts where the user meets the app, and if everything else works, great!
But when you're a solopreneur, or a generalist, or a bootstrapper, it's not so easy to just do that one thing. And over time, you learn the full stack, almost by osmosis. Ask any React developer if all they need to know is JavaScript. Things aren't that simple anymore. Just getting React to run locally involves Node, Yarn, Babel, and a host of other technologies. And I haven't even mentioned CSS for React apps.
All this knowledge is priceless, but I find it's too easy to get lost in the intricacies of DevOps and forget about the rest. Fortunately, there are programmers out there looking to simplify. There's the no-code movement. Netlify makes hosting and deployment incredibly simple. And services like Next.js offer full-stack React and Node environments with little responsibility on the developer.
Hopefully soon, those of us who want to focus on the front-end will have that option. Fingers crossed 🤞
Keep making, and thanks for reading! 🙌
Hit reply to tell me what you're making. I'm looking for anyone interested in talking about their own side-projects and maker journey, so speak up if you'd like to appear in Serial Maker. I'd also love to know what you thought of this issue, and what you want to hear about in the future. Check out the past editions if you missed them, and don't forget to continue the conversation on Discord!Â
Â
Until next week,
Craig 👋
Â


