If your app has never experienced memory issues, is it really in production?
An Erlang-Inspired Node.js project I deployed at work runs out of memory randomly. It maintains a relatively flat memory usage profile at about 10% of the server’s RAM, but it will suddenly spike to 1.5x ~ 2x RAM.
Thankfully Heroku is flexible enough to tolerate spikes under 2x of the allotted RAM so in most cases the app continues to do its job and the worst that happens is I get notified about it. Despite its ability to elegantly recover from crashes, my pride felt like it was being curb-stomped whenever Slack notified me the server ran out of memory again.
After determining to redeem my self-respect by fixing the issue, I quickly realized I had no idea where to begin!
Despite the unshakable feeling that I’m a terrible programmer, I’ve end up going on some very experimental journeys writing code that reflects the way I think about software.
I feel like a teenager who just discovered he has super-powers!
Last year we gave our production servers the ability to send notifications to Slack and it’s been so helpful! Each one comes with all the relevant data, sometimes with a link to an admin page where you can fix the problem. It’s been truly empowering to deal with many types of problems without needing to write code.
One of the notifications is for a problem we can’t fix without input from our customers, so we needed to move the data from Slack to a Google Spreadsheet we could share with them.
Quickly discarding the idea creating an endpoint that gave me a CSV-formatted version of the data, I settled on copying the text straight from Slack (it was already there for the copy-pasting so don’t judge me) to a file and writing a program to process the Markdown-formatted data from Slack to generate the CSV.
The formatting program itself is nothing special, so straightforward I didn’t need to import a single library to make it work, but you wouldn’t believe how much more useful the program got after a tiny change at the beginning and the end of the code.
I’m a dummy. I have so much to learn and an embarrassingly high number of things I’ve forgotten.
I’ve estimated it’ll take 10 minutes to do something and I’m still at it 3 hours later.
I’ve started tasks with confidence only to realize you need the manual to do finish what you started.
There’s nothing wrong with being a dummy. It doesn’t mean I don’t know anything; simply means the fields I know almost nothing about far number the ones I excel in.
Most people are dummies. Nobody has the time to master every subject and get real life experience in all of them.
Keep this in mind when you’re making things for people because chances are the person is a dummy. They don’t know a lot and they’ll often forget the little they knew a while ago. It’s not their fault. They’re too busy trying to be better parents, partners or people in general.
People you care about, work with, are married to or gave birth to are dummies. Lets make the world a better place for them. Do it for the dummies.