Often we need to initialize an RDS instance right after it is created to e.g. create multiple databases, users or install plugins.

This post will walk through the process of initializing a postgres RDS instance with CDK. We will create two databases in the same instance and install some plugins in each of them.
This will be done with help of AWS custom resources

Here is the code: https://github.com/felipeloha/aws-init-db


  • A secret with root password “testPassword” of the RDS instance exists with the name “database-credentials-test”


The next section will show how to:

  • Create the database
  • Create the lambda function that will…

We were struggling for a long time to find a cost efficient and stable way to run our appium tests.
We tried AWS device farm but it was unstable and we took a look at genymotion but it was too expensive.

Finally we found the following article series with the amazing idea of autoscaling spot instances, making the instances mostly available and the costs acceptable:

So we took this approach and translated it to CDK with help of https://github.com/budtmo/docker-android and voila, we had finally our cost efficient emulators to run our appium tests.

The result can is here: https://github.com/felipeloha/aws-appium

Our load increased and we came to a point where we had to scale our umbrella application (elixir/phoenix) with two services running on a plain EC2 instance.

The migration had the following requirements:

  • We were having downtime on each deployment and this was restricting us to “deployment times” so we want to avoid downtime on deployments
  • We had cron jobs running on each service so we want our Cron jobs (Quantum) to work in our new architecture. It was not a priority that they scale so they can run on one instance of each service
  • Our business logic sends some…

This blog post discusses some challenges of the tech recruiting process, specially technical assessments.

Recruiting is a difficult process for both sides. The need for software developers nowadays is so high that the applicants can be overwhelmed by all the work they have to invest into the process such as answering messages, scheduling meetings, researching companies and implementing technical assessments.

Some companies opt for not doing any technical assessment as it takes time. …


  • Jenkins is setup in aws and we did not manage to use slaves.
  • Since the platform is big and some artifacts (Java) contain many others, jenkins comes to his limits when multiple developers commit to different repositories and it is forced to run multiple jobs at the same time.
  • The job that verifies the maven multiproject runs around 35 min.


  • Stay with jenkins
  • Run jobs in codebuild and get feedback in jenkins to improve the performance


Jenkinsfiles and buildspecs are in this folder

Following steps were done to build big artifacts (maven multiproject) outside of jenkins

  1. Install jenkins codebuild plugin
  2. Create jenkins pipeline
  3. Store settings.xml for maven build in s3
  4. Store access in…

The following post explains how to deploy and run a simple NodeJS Shopify app on AWS as an ECS fargate service with a dedicated domain and SSL certificate.

The app is based on the NodeJS sample from Shopify CLI. The resources are deployed with CDK.

For more information about the Shopify app itself see:

The full code is stored in this repository: https://github.com/felipeloha/aws-shopify-app

If you are not familiar with AWS, CDK, and specifically with ECS, I recommend reading about it beforehand.

Shopify-app-node Modifications

The following modifications are necessary to make the shopify-cli-app work with ECS. …

I had a lot of trouble trying to connect AWS Quicksight with an RDS following this guide: https://docs.aws.amazon.com/quicksight/latest/user/enabling-access-rds.html

So here is my own guide for the next one trying to get the security groups in place. I still recommend to read the guide as I will not explain some basics here.


What we want to achieve is connecting quicksight to an RDS instance in a VPC without giving it public access.


So we need a user with enough permissions to modify quicksight, rds and security groups.

Overview Network

The diagram shows what we want to achieve:


These are the steps to achieve:

Felipe López

Dog Father, Software Ninja and Climber

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