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:

  1. Go to the Elastic Beanstalk console

  2. Click "Upload and Deploy" under the Versions tab

  3. Upload the new JAR file directly from my machine

  4. 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:

  1. Gets the new SSL cert via Certbot

  2. Automatically reloads nginx

  3. 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 traceability

  • Automate 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

or to participate.