Ideas for the future
This is my favorite part of the book. I vividly remember writing this section in
version 1
with much passion, and can't help but laugh at how my ideas were either never implemented, or just completely ridiculous (probably the latter caused the former hahaha).
So you landed a job interview at an Awesome Company? Congrats! But guess what, I'm convinced your job description will change within the first 6 months of working there. New tasks, new technologies, new challenges, new teammates. Again, that's where your adaptability will be pivotal.
If you want to be hired, you'll need to use your brain a little, but preferably a lot. You need to provide VALUE to your future employer. If you're just a cog who works aimlessly and then goes home, you're useless. You'll increase your chances of landing the job if you can provide them with some great ideas for improving their infrastructure, lowering latency, saving money, or even making more money.
Below is my personal list of ideas for an awesome company. You can try using them, but remember you're probably not the only person to have read this book, which means they'll know it's not your original idea. Regardless, if you know what you're talking about, it might just work ;)
.
Less
For the last five years or so, I've gone on a personal tech minimalism rampage. It sounds rough, but I believe it's exactly the right call for our industry.
We're often so focused on adding more servers, more CPU power, more RAM, more disk space, more network gear. More. Bigger. More. Bigger. Faster. More... is there an end to it? can we do better?
I want to propose less: Less servers, less RAM, less CPU, less disk, less resources, smaller minimum requirements, less software, less external dependencies, less layers of abstractions. Less JavaScript. Please, can we please use less JavaScript? (not none, just less).
I didn't invent the concept, and it was one of the recurring themes in Getting Real, but less is still where it's at. Even more now than it was nearly twenty years ago when it was first published.
I'm in love with the idea of small, focused, independent, standalone, self-contained tech.
I want to help an awesome company move in the direction of less. Can we run our apps with less memory? Can we store less data? Can we ask our users for less permissions? Can we provide them with smaller downloads? Can we tweak things so they don't need so much? Can we scale from 10k users to 100k users without adding 10x more compute? How about 1M users?
Now I'm not advocating we push our servers to full CPU load all the time. Of course I do believe under-utilized hardware should be virtualized and moved to containerized loads, I know there's diminishing returns from running a server at full capacity versus running two servers at half capacity. Let's not forget the massive headache you'll have when that one server crashes. Oops.
So, that's where I am now. Less. I want less. I can't help but wonder where all of this is going. I think containers really revolutionized the IT industry in the last decade, but they're almost like a trojan horse. The abstractions they provide often lead to lazyness and poor engineering practices, which is what leads to "bloated" systems requiring way more resources than necessary. Can we put less in our containers? Can we deploy smaller kernels? Can we provision minimal versions of our apps?
I want to provide solutions for getting to less. If I do my part, it could influence others to do theirs. The sum of our efforts will be greater for the long-term.
And that's one of my ideas for an awesome company. I'm very well aware that not everything is possible, but we need to start somewhere.