Don Restarone
Software engineer & YouTuber from Toronto with a passion for building cool stuff and helping people transition into tech. Founder of https://www.restarone.com/

A checklist to ensure a smooth transition

Image for post
Image for post
photo by author

I was recently tasked with migrating a large, legacy, self-managed PostgreSQL 9.6 database hosted on AWS EC2 to AWS RDS running PostgreSQL 12.3.

The goal was to complete the migration in under 30 minutes and I needed to perform the following within that time frame:

Here are some of the lessons I learned along the way and some tips for those of you migrating a multi-gigabyte database between major versions of PostgreSQL. …


A practical guide to supercharging your Rails workflow with a deterministic development environment

Image for post
Image for post
Image credit: Author

This guide covers configuring Docker for Rails development on your local machine. My goal is to walk you through setting up an ergonomic and reproducible development environment for building Ruby on Rails applications.

The Docker configuration was created with the following goals in mind:


An incremental approach to adding React components to your Phoenix application

Image for post
Image for post
Image credit: Author

I recently started implementing a highly interactive, web-based productivity tool using Elixir and React. Here’s how I added React components to Phoenix views where needed. You can find the source code here.


The quickest way to build a real-time application

Hotwire, Turbo, and Rails logos
Hotwire, Turbo, and Rails logos
Photo by the author.

Hotwire is a shiny new HTML-over-WebSocket framework developed by Basecamp. Its purpose is to perform real-time DOM-patching using ActionCable and JavaScript. You can compare it to Phoenix LiveView, but unlike LiveView, Hotwire is stateless.

I took Hotwire for a test drive along with ActionText and was able to build a real-time Twitter feed in less than 30 minutes. You can find the complete source code on GitHub.


How I scored 947 in less than three weeks of studying with no prior experience

Certified Developer Associate DVA-C01 badge by Amazon Web Services
Certified Developer Associate DVA-C01 badge by Amazon Web Services
Certified Developer Associate DVA-C01 badge by Amazon Web Services

One of my goals for 2020 was to get better at DevOps-related tasks. I had practically no experience with AWS, except for using Rekognition and S3 to implement a facial recognition feature in an application I had built over two years ago.


When RDS is beyond your budget, run Postgres on EC2

a rack of servers
a rack of servers
Photo by Taylor Vick on Unsplash

The Motivation

The biggest reason to run your database out of EC2 would be cost savings. As of writing this article, the cheapest/smallest RDS deployment costs around $30.88 USD/month. In contrast, we can run a t2.micro EC2 instance with 8GB of storage for around $6 USD/month. This cost can be further reduced if you opt for reserved billing.

Caveats / When You Should Opt for RDS

As a rule of thumb, if budget allows, always opt for RDS. It provides replication via a standby instance in a different availability zone and handles automatic fail-over. This is desirable for two reasons:


an introduction to my latest project that can watch over your passion projects

Image for post
Image for post
image from https://bishop.restarone.com

Having worked in the software development industry for a few years, I have noticed 2 things: first, app downtime is not cool and it shatters customer trust — and second, monitoring tools are often expensive and difficult to setup.

I wanted a platform where I could simply specify a web address and be notified if problems are detected. I wanted it to be cheap (preferably, free) and easy to setup — and for the life of me I couldn’t find an off-the-shelf solution.

So I went ahead and built one, check it out here.


A guide to building an AI model using TensorFlow, Python, matplotlib, and packaging it for the web using Ruby on Rails

woman reaching out to pat a horse on the nose, with colored rectangles drawn around the woman and the horse
woman reaching out to pat a horse on the nose, with colored rectangles drawn around the woman and the horse
Original photo by Daniel Cano on Unsplash

I was recently tasked with building a web API for fruit classification. I realized that such a product would need to have the ability to detect general objects to weed out images of non-fruits. So I decided that I would start the project by getting my hands dirty by exposing a TensorFlow model to the web.

In this article, I will cover the functionality and architecture of this app from a practical, code-first approach. …


3 tips to maximize your chances of getting your app approved on Google Play and Apple’s App Store Connect

The number 3.
The number 3.
Photo by Tony Hand on Unsplash.

Submitting your first app for review can be an intimidating process. Here are some tips that have helped me get my apps approved by Google and Apple.

Disclaimer: These are tips that worked for me and may not apply to your situation. I am not responsible for any of these backfiring and/or causing you to lose time/revenue.

1. You May Need an Incorporation + DUNS Number if Your App Is a Commercial Service

Having hit this roadblock personally, it delayed my app from being approved for distribution by about a week. In my experience, this change was enforced by Apple — Google Play didn’t seem to care.

You will need to provide Apple with a DUNS number if your app accepts payments via in-app purchases and/or happens to be disconnected from your Apple Developer account in a way that makes it an entity of its own. …


8 tips to kick-start or advance your software development career

A few months ago I set out on a quest to rebuild my portfolio from scratch. Here are some insights I gathered along the way;

1. Identify your strengths & figure out your niche

Particularly when you are trying to begin your software development career, its tempting to cast a wide-net by listing a laundry list of skills on your website. This does more harm than good by giving the reader the impression that you are at best, a master-of-none and at worst — a quack.

Image for post
Image for post
Instead of listing a bunch of skills, I opted to show logos of technologies I had worked with in the past

Start by listing all the demonstrable skills you currently have and picking a handful of them you are confident in. Skills that are not easily demonstrable on a portfolio website (ie; optimization, database design etc) should be either showcased through practical projects (ie; an external link to a high traffic messaging app you helped optimize at your previous job) or not at all. …

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store