RSSAmplifier

Blog

Joel Oliveira

A software engineer in Boston writing mostly ruby. He loves beer and bulldogs and his family.

joeloliveira.comRSS feed ↗83 posts

Latest posts

Self-hosting Garage for object storage

Photo of a full, busy, garage. Courtesy Todd Kent @ Unsplash Due to the work on Shubox block storage had become an interesting little corner that I’ve enjoyed researching. I had previously played with minio and found it to be fine . Recently, the maintainers of Minio had decided to change directions in how “open” they wanted to make their “open source” product. That’s fine. With the velocity and…

On home-cooked software

I’d run into this presentation and blog post from Maggie Appleton before but just this weekend finally had a chance to sit down and really digest it. My opinion? The short version, the verdict, is that I could not agree more. Go read it or watch it . It’s worth it. Her thesis is that the barefoot developer, the person at home writing software to scratch a particular itch, will see a rennaissance…

Deciding to shut down Shubox

Ruth, our puppy, keeping me company while I do some work. For nearly nine years , Shubox has been a part of my life. It started as a passion project — a SaaS product that I dreamed might one day stand on its own. At the time, success , to me, meant autonomy. The more users, more revenue, the more viability, meant that maybe it could replace my day job. That was the vision. (Does that story sound…

Fenway Fest 2025

One of the gifts for my son this past holiday season was that we would bring him to Fenway Park for the first “Fenway Fest”. Typically the Red Sox have a “Winter Weekend” but this year moved it home , which is … much more convenient? For us, at least. Of course getting to meet the players and get some autographs and cards signed was the highlight, but the absolute cherry on top of the entire event…

No one teaches you: Career growth and management

As cliché and corny as this may be, still: tend to your career like a garden. Preface When I say “no one teaches you”, I mean that there are life lessons that are not among the typical curriculum provided to young adults as they begin navigating their ADULT adult lives. Not from their schools, their first jobs, and not from their parents. This post is a reflection on life lessons you may have to…

No one teaches you: Feedback. Giving or Receiving.

Question: is "criticism" always negative? Preface When I say “no one teaches you”, I mean that there are life lessons that are not among the typical curriculum provided to young adults as they begin navigating their ADULT adult lives. Not from their schools, their first jobs, and not from their parents. This post is a reflection on life lessons you may have to learn the hard way - like I did. When…

caddy, docker, and dnsimple

“I’m experimenting wth Caddy as a replacement for Nginx.” Right now, that’s an aspirational statement, and not entirely factual. Because, I would need to get Caddy to run properly to actually experiment with it. Alright, haha – enough sarcasm. In order for me to get Caddy to run with the following requirement - must have a Caddy docker image that supports DNSimple’s TLS challenge. The stock Caddy…

Fujifilm x100vi Part 2: Buttons, knobs, and dials

So much stuff in this thing. What are all the buttons and knobs? What are they called? What can you do with them? At the top of the camera Function 1 button to the right of the On/Off switch. (The un-labeled one.) It turns face detection on and off. The exposure compensation dial is right next to it. This is for when you want to over-expose or under-expose your photos. The big dial towards the…

Fujifilm x100vi Part 1: Introduction

Photo of the Fujifilm X100VI camera, taken with a (clearly inferior) iPhone 14 camera I bought a new camera. Earlier in the year there were a glut of videos on social media about this new Fujifilm X100VI camera that people were freaking out about. I fell down into the rabbit hole, read many reviews, and watched my fair share of videos. Having walked around a little bit with a Nikon DSLR many years…

play with minio

To say that I’m interested in or curious about object storage in the cloud is an understatement. I work on an app in my spare time that acts as an abstraction layer on top of Amazon S3 ( Shubox - go check it out). So, yes, I enjoy looking into anything and everything in that space. Something that’s been on my radar for a long while now, are the self-hosted S3 clones that have popped up over the…

2023 year end review

One of the more beautiful sunsets in our neighborhood this year, which seems fitting, as the sun now sets on another year. Farewell 2023. Well, it’s about that time. We are careening to the end of another year, and in addition to the natural impulse to reflect whilst relaxing during the quietest time of the work year, everyone is also publishing their “year in review” blog posts. With how much I…

One Man's Trash Is Another Man's Treasure

Generated image via ChatGPT/Dall-E illustrating the phrase "one man's trash is another man's treasure" T’is the season and all that. The most wonderful time of the year where we feed capitalism until it’s forced to loosen 2 notches on its belt. Your national and local news are just now sending their reporters out to local malls for “person on the street” interviews about people and their spending…

Challenges in Solopreneurship

An illustration of what solo entrepreneurship, in retrospect, would feel like. Nine years ago, I embarked on a journey with Shubox , a solution to simplify uploading to, and working with, Amazon’s S3. This venture not only evolved along with my career but offered rich lessons worth sharing. In addition to my day job, I work on it my nights and weekends. This is some background information for the…

Terrificon '23

If I’m lucky, I manage to get to about one comics convention a year. Typically that’s FanExpo here in Boston, but this year it was Terrificon down in CT at the Mohegan Sun Casino. The main draw for this was absolutely the creator guest list, which was – I won’t mince words – for me, staggeringly good. As a kid, I got into these books in the late 80’s, early 90’s, at the height of the “mutant”…

ezCater summer sweetness '23

Last week we learned that our CEO of 16 years, Stefania Mallett , would be stepping down as CEO of ezCater . After next month she’ll be embarking on the next chapter of her life, retirement(-ish?). I mention this because this week we had the company’s summer party, AKA “Summer Sweetness”. So it’s fitting that we all got together to celebrate the last year+, and her time as the leader of a company…

Covid, Finally ... I Guess?

After 987 1 days the inevitable happened and Covid-19 got Sara and I. If we’re completely honest, there’s almost no way people are going to escape this thing. The opportunity to extinguish it, in the time of social media, misinformation, and buffoonery, had come and gone in a zeptosecond . So, that leaves folks like us to be ultra-vigilant with precautions, get the vaccine as soon as we could, get…

Another Summer in the Books

As we close the chapter on the summer of ‘22 I’m left dealing with the feelings that hit me every year at this time. “Summer’s over. School’s here. Stoke up the anxiety machine.” As a grown man who hasn’t been in school for more than half his life, yes. I realize this makes no sense. Very well. Tell that to my brain. In any case, I can look back on this summer and consider it a success. G had a…

Weeknotes for the week ending Jul.29

You know the saying - "Nothing in life is free" A year or so ago I bought a Synology NAS and started to consolidate some of the disparate cloud storage services into one single physical box that I knew I could (theoretically) control myself. It worked out well. I liked it! I could install some packages, I could run Plex, I could back up docs, photos, mp3’s, movies, etc. Then I started branching…

Weeknotes for the week ending Jul. 22

Brothers and Sisters Coffee, Brookline Village Most weekday mornings I will walk G to the bus stop near Brookline High School for his trip to his day camp. We’re out the door at around 7:53AM and arriving just about at 8:00AM. The past week or so has been brutally hot so if I was going to get any time outside it’s going to be right after his drop-off. I’m not built for that 90+ degree stuff.…

Fathers Day 2022

After finishing a recent book – Mouth to Mouth (verdict: “meh. ⭐⭐”) – I picked up Michael Ian Black’s “ A Better Man: A (Mostly Serious) Letter to My Son ” and dived in. I figured, hey it’s almost Father’s Day, so let’s see what this funny guy has to say. And as the title of the book says, yes - this really is a mostly serious piece of writing. He gets into the heavy stuff pretty quickly. But…

Porting the blog to TailwindCSS

A couple weeks ago I noticed there were some style-related issues here, so I reached for the CSS to make the necessary fixes. Easy enough. But when I did so - I paused, confused, then realized I had no idea how to edit and rebuild it(?). It had been a long, long, while since I last adjusted the styles. Side note: remember Compass ? This website was using Compass! I loved it! Shout out to a real…

Weeknotes for the week ending Jun.17

Hazel.app is an outstanding utility – one I’ve written about before – for watching directories and doing something based on when things changed, certain criteria, etc. The lightest lift is something like “move all screenshots in my Desktop to the trash after a month”, yadda yadda. I host this blog on Netlify, but new images are being served by an instance of imgproxy that grabs them from an s3…

Weeknotes for the week ending Jun.10

We're in the midst of the NBA Finals, which calls for a trip to TD Garden. I noticed that this week marked the 6 month mark since I started working with Alexa , my trainer via All-Tru Health and Performance . The main reason I took notice? I saw in the Trainerize app that Thursday was the 100th workout since the beginning of December. For those gym-rats among us, that’s no big deal. For me - it’s…

Jekyll Plugin Conventions

When it comes to static-site generators Jekyll is clearly among the old heads (if not the oldest ). I know it’s not sexy. I know it’s not shiny. I don’t care. 😄 It works, and it’s easy to grok. It’s also pretty easy to extend its functionality with plugins – either on your own, adding code to your website’s code-base, or via rubygems. Or creating your own plugin, and distributing it as a gem.…

Weeknotes for the week ending May.13

In keeping with the theme of sharing misery in the hopes that maybe someone, somewhere, runs into this problem on Google some day and can save themselves from hours of struggling with “what the hell is happening here, exactly?” … I present you a meditation on how Unifi’s IPS (intrusion prevention system) can ruin your day. I was home. I was toying around with some stuff. After spinning up some…

Weeknotes for the week ending Apr.22

Revoke LetsEncrypt Certs in Traefik’s acme.json File First, credit where credit is due to Daniel and Senan in this Traefik issue . To them I say “thank you”. Second, a little context. In the past few months I’ve been tinkering with self-hosting some of my own apps, as well as some services at home. Among the things I’ve been experimenting with are Traefik, a “cloud native proxy”. One of the nice…

Weeknotes for the week ending Mar.4

"Middle of nowhere" Utah, mid-x-country drive back to NE from San Diego - November 2001. I’m certain I’ve told this story before to many, many people. But I don’t care - I’ll tell it anyway. Almost 21 years ago I was working at a small-ish web development agency (RIP Screenhouse) and the bottom was just about to start falling out from beneath the “dot com” industry. Easy come, easy go. Things…

Weeknotes for the week ending Feb.25

Obligatory trip to our favorite neighborhood park to enjoy the fresh slush snow Did you know that Docker will automatically write firewall rules, using iptables, so that whatever ports you expose to the host OS will be allow ed visibility out to the world? I didn’t. At least until this week. It makes sense, I suppose? There’s a lot going on under the hood between the OS and network interfaces so…

the weekend in 2 photos

Weeknotes for the week ending Jan.21

When new posts are created and deployed here, they end up getting “announced” on a Slack channel with some local(-ish. New England.) friends from the web development community. I’d noticed that there were some small dinky details in the Slack RSS feed app that tipped me off that things could use some massaging. So. Of course. What better way to spend a weekend afternoon than watching sports and…

Weeknotes for the week ending Jan.14

I’ve never taken a walk through knee-deep molasses before, but I have a feeling it’s similar to the first week back at work after the new year. Glad that’s over. As someone who was not smart and did not take the week between Christmas and New Year’s off, the anxiety from the work you thought you would get done in that time, with the knowledge that people would be coming in with a fresh quarter of…

Weeknotes for the year ending 2021

Wellp. Another one in the books. Instead of regaling you with all of the awful things that happened in 2021 let’s take a look back on one specific thing that made me happy this year. Let’s consider something truly remarkable - the move from our tiny condo, our home of 13 years, into our (more) spacious new home around the corner. Specifically, the room I occupy for most of my time during working…

Weeknotes for the week ending Dec.25

We’ll get the obvious point out of the way, which is, of course, it’s Christmas weekend. As I get older, the more complicated and layered the reality(-ies?) of this holiday are for me, personally. This year has an additional (bonus!) layer of frosting called “the Omicron variant”. It’s not as if we had any plans to speak of that were canceled as a result, but that in a time when we could be taking…

Weeknotes for the week ending Dec.18

Several years ago I met this guy, Matt. He and I had been setting up shop at a co-working space in our neighborhood. It didn’t take long before the two of us realized there were some overlapping interests – startups, basketball, the Boston tech scene, mutual connections, and our own personal side projects. Years later we’re still friendly, supportive of each others’ ventures, and, of course, rabid…

Weeknotes for the week ending Dec.11

The Instagram CEO testifying to congress and asserting that Instagram isn’t harmful is genuinely pretty funny. I’m over here falling into 40 mins to an hour of scrolling through videos of bulldogs doing funny shit, people dancing, and memes, being sold shit I never knew I needed (and legit almost buying all of it) – and someone is trying to tell me that digital crack-cocaine isn’t bad for me.…

Happy 11th Birthday Pearl!

I’d mentioned in the previous post that it was a busy week. So much going on that I neglected to mention that this week we celebrated Pearl’s 11th trip around the sun. It’ll be March before we celebrate her “Gotcha Day” with us, but, it still feels like yesterday, and a million years ago, that we met her on Pond Ave near JP. She was a tiny meatball covered in white fur, clad in a pink sweater,…

Hanukkah 2021

In what has been an atypical, overwhelmingly busy, week, the highlight has been a very early Hanukkah. When my son was born I remembered thinking about how great it would be experiencing the holidays with him when he was just old enough to fully understand and appreciate the whole “deal”. As a 6½-year-old kid, I think he’s well crossed over into that threshold. After this week we are drowning in…

Back at it, (maybe?). Thanksgiving 2021.

I would be remiss if I didn’t mention that it’s been well over 5 years – almost 6 – since I last updated this blog. Long time. Regardless, “there is no better time than now” right? So here I am, in an effort to dump some of the things that have been in my brain I am going to commit to seeing out the rest of the year by posting once a week, putting whatever pithy thoughts here that may have ended…

Announcing Shubox.io

I am super excited to share what I’ve been working on for these past few months. Shubox.io is a SaaS product that allows you to outsource all of your image and file uploads, directly to S3 - never touching your app-servers, process/resize/convert your images, and provide you the file data back, via webhooks, for all of your uploads. While accepting file uploads is no longer the tedious and arduous…

Correctly Syntax Highlight Your Shell Scripts

Not all shell scripts are created equal. You may have a do-something.sh script, or maybe you call it do-something ? Maybe it uses the bourne shell? Maybe bash? Maybe zsh? I don’t know. We all have opinions. You’re probably using vim to edit that thing though, right? If you’re reading this, you probably do. Isn’t it bothersome when you’re editing that file and want it highlighted with the correct…

Writing in Markdown With Vim

While writing a post yesterday I noticed there were some gaps in my vim setup for when I’m authoring a markdown file so here are a few tips for polishing up your markdown experience in vim, specifically for jekyll blogs. Front Matter Starting at the top, literally, with the front matter. It was looking a bit weird out of the box: It’s rather inconsequential data compared to the meat of the…

Adios 2015. You were alright.

I’ll get right into it - 2015 was a good year. And, there’s no way around this, it was because of the birth of my son, Grayson. That’s pretty much it. That’s the TLDR version of our year. The Longer Version There isn’t a single event in the 38 years of my life that has had as profound an effect on my day to day life as the birth of this child. Most things people tell you – “There’s you the day…

Auto-delivering Downloaded Kindle Books

I will often buy self-published programming books and send them to my kindle (and iPad, and iPhone) via email. Amazon’s kindle platform will allow you to distribute documents (books) to your devices via custom email addresses . As mentioned I have three devices that I will often read from and need to send emails to those three with a downloaded mobi attachment. This is far from difficult but…

Timezones

Did you know you can tell if someone is a programmer simply by saying the word "timezones" and seeing if they cringe? — Michael Rooney (@MikeRooney) January 29, 2014 Gah, timezones. — micah rich (@micahbrich) February 17, 2014

Maintain Style with Rubocop

Have you heard of this Rubocop yet? It’s a static code analysis tool that enforces many of the guidelines outlined in the community Ruby Style Guide . Despite my initial hesitance — it felt a little “ cargo-cult’y ” — there are several reasons why I consider something like Rubocop valuable and fantastic. As a development team grows the importance of keeping everyone moving in the same direction…

Taking a Break

There are, I’m sure, people wondering why on earth I would leave a job like the one I’ve had for 18 months at thoughtbot. For a little while I thought the same thing. Smart people around me every day. Good salary. Security. Opportunities around every corner. Perks to being a “thoughtbotter” (there are plenty). Those barely scratch the surface as there are more. I’m going to miss working there – a…

Rails engines won't reload per request in dev

When working on a rails engine or plugin you might notice that, when running your dummy/test app in development mode, it will not reload any changes to your engine. If this is bothering you, then the solution is to add config.reload_plugins = true to your spec/dummy/config/environments/development.rb file. Restart your server and you should be able to reload your browser and see your changes take…

Goodbye Wordpress

Hello Jekyll . I’m behind the curve and finally moved my old neglected website to a new neglected website. This has, for a long while, been on my list of things to get to. The reasons why are too many to count, but at the core the wordpress experience is a terrible chore. Jekyll, once it’s all set up and ready to go, moves into the background. It’s an afterthought. I can now concentrate on writing…

Woops!

# Site’s been down for a while – sorry about that everyone!

RIP Steve Jobs, the Icon

# I started writing this over at Hacker News and figured I would re-post it here. I, just now, walked into my home office after a trip to my doctor for a check-up … a check-up I’d been putting off for 2 years or so. The timing is impeccable with what happened yesterday in Mr. Jobs’ passing. Health and my personal well-being have never been more important to me than it is now. I have lost a little…