Terminal psql TCP/IP connection attempt that failed with “Operation timed out”
Terminal psql TCP/IP connection attempt that failed with “Operation timed out”

I deployed a RDS instance to AWS today and found difficulty connecting over TCP from my local. Below is the experience I faced and the steps I took to resolve. Hopefully I can save you (and future me) some trouble.

Disclaimer: Making your RDS instance accessible to the public is categorically a bad security practice. If your database security matters, you should access it through a bastion host in your VPC.


  • Tried connecting over TCP/IP from terminal, using:
psql --host=xxxxx.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com \
--port=5432 \
--username=xxxxx \
--password \
  • Entered password as…

A brief guide to getting started with dynamic programming.

I can recall a time when I regarded Dynamic Programming as an obscure optimization technique reserved for my technical superiors. I’m here to dispel any such thoughts and show you that, while it takes some time and practice to get quick at breaking down problems to fit a Dynamic Programming approach, it’s something you can start implementing in your problem solving easily starting today.


  1. Identify that your problem can be solved with Dynamic Programming.
  2. Define problem state structure.
  3. Define relationship between state values.
  4. Cache your mapping between state keys and values (Tabulation or Memoization).

1. Is my problem a fit for Dynamic Programming?

The answer to this question…

If you have been using React Native for any length of time, you’re likely familiar with AsyncStorage. This is the React Native equivalent of the browser’s LocalStorage, with the main difference being that it is asynchronous. If you’re unfamiliar with AsyncStorage, check out the documentation here. The docs are well written and include examples for most use cases.

What do the docs say?

One thing the documentation doesn’t fully cover is how to allow our users to clear their application data. …

Retrospective edit: While normalization has proven to be an effective technique for state management, the abstraction introduced by tools like Normalizr can sometimes be a burden over manual normalization. As always, it’s important to consider the tradeoffs of your dependencies.

Normalization is a popular strategy for intelligent redux state management for large applications. This strategy is even recommended in the Redux documentation itself.

“The recommended approach to managing relational or nested data in a Redux store is to treat a portion of your store as if it were a database, and keep that data in a normalized form.” ~ Redux

What is Data Normalization?

EDA is a higher level application design paradigm that defines the way parts of your application interact with each other and with external applications. Interactions are defined in terms of events, event emitters, event managers, and event consumers.

  • Events — are simply actions that took place (e.g. button_clicked, email_sent, or tree_fell_in_the_forest). They don’t care whether anyone was around to hear about them; they simply happen.
  • Event emitters —announce to the world when events take place (e.g. the resounding boom of a tree hitting the forest floor). They have no knowledge of what the world might do with this information.
  • Event…

Today I learn GoLang. Hopefully you find this run-through useful in getting acquainted.

Some resources I have accumulated are:


So far, GoLang is similar to Javascript with some exceptions:

  • Static typing
  • Manual type-conversion
  • Manual management of array/slice lengths
  • For loop has an option to operate like Lodash each
  • Documentation can be retrieved from terminal

Program Interface:

package main
  • Import Statement — imports code from other packages
import “fmt”
  • Function Declarations — building blocks of GoLang code…

“..investing your literal life-savings in a 12-week crash course on the promise of creative freedom and a six figure salary.”

Turn away from the onslaught of the 40-hour work week; sell everything you own, and uproot. Now triple your rent, quarter your living-space, and take out loans so you can invest $20,000 in an unaccredited 12–week software development bootcamp. In exchange for these sacrifices, you receive a vague promise and hopeful flashbacks of price equilibrium learned in early economics courses from college.

The promise — you’ll leave the program in true competition with credentialed software engineers exiting 4-year degrees from…

Justin Ross

Software Engineer and Dog Evangelist.

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