- Techtopia FYI
- Posts
- Issue #18 - Automate or Die Trying
Issue #18 - Automate or Die Trying
S3, versioning, and scripting my sanity back into the workflow.With Adrian Acosta

Welcome to the 2 new people joining this week! Feel free to reply to this email and let me know how I can make this newsletter more useful.
My recent article:
REPETITION IS A RED FLAG
Let me ask you something:
Have you ever done something manually more than once and thought:
"There has to be a better way..."
That was me, staring at my AWS dashboard for the 10th time — updating my .jar
, fixing environment settings, double-checking SSL… again.
That’s when I realized:
If I don’t automate this stuff, I’m going to burn out before the site even launches.
So I made it my mission to automate everything.
STEP 1: STOP TREATING EC2 LIKE A USB DRIVE
The first real fix?
I stopped treating my EC2 instance like some kind of remote USB stick.
No more dragging and dropping files into the server or SSH’ing in just to update code.
Instead, I started doing it the right way — using Elastic Beanstalk Versions.
Now, whenever I update the JAR (like time-for-price-web-1.0.1.jar
), I:
Go to the Elastic Beanstalk console
Click "Upload and Deploy" under the Versions tab
Upload the new JAR file directly from my machine
Deploy it — no EC2 file juggling required
✨ Clean, fast, and most importantly: repeatable.
STEP 2: AUTOMATE SSL CERTIFICATE MANAGEMENT
Remember the SSL pain from last issue?
Yeah — I wasn’t going through that ever again.
So here’s what I did:
I used Certbot to install a free SSL certificate from Let’s Encrypt
Then, I wrote a cron job to automatically renew the certificate every 60 days
And finally, I updated nginx to reload after each renewal so it picks up the new cert
Now when the certificate renews, the server:
Gets the new SSL cert via Certbot
Automatically reloads nginx
Keeps everything secure with zero manual effort
Set it. Forget it. Sleep better.
STEP 3: MAKE DEPLOYS BORING (IN A GOOD WAY)
Every JAR I build gets versioned:
time-for-price-web-1.0.0.jar
time-for-price-web-1.0.1.jar
time-for-price-web-1.0.2.jar
Then I upload it to Elastic Beanstalk, and it handles the rest.
I no longer touch EC2. I don’t rebuild environments.
I don’t even open half the AWS tabs I used to.
The process became boring — and I mean that in the best way.
CLOSING — "FROM MESSY TO MAINTAINABLE"
Launching Time for Price wasn’t just about building a Chrome extension.
It was about:
Learning the real workings of AWS
Messing up Elastic Beanstalk
Rebuilding everything by accident
Figuring out SSL the long way
And then — finally — making it all automated and clean
It started messy.
But now? I can deploy new versions in minutes, with confidence.
And that…
That’s how you know it’s live for real.
✅ Final Tech Recap:
Deploy from S3, not EC2
Use versioned
.jar
files for traceabilityAutomate SSL renewals + reattachment via cron or Lambda
Use environment variables for cleaner config
Never rebuild Elastic Beanstalk unless you have to
🎬 Outro — “Where We Go From Here”
The extension is live. The site is stable. you can check it out here.
But this is just the beginning.
Now it's time to grow the audience, test features, and maybe even open source part of it.
If you liked this journey, stick around — because the build phase is done.
Now we shift into scale mode.
If you found this helpful, please consider subscribing to my newsletter for more useful articles and tools about software and web development. Thanks for reading!
Reply