Entering its 15th year, the Emerging Technologies for the Enterprise Conference has brought the leaders of the open source community to Philadelphia to teach about their projects, their work and how these technologies are changing software development. During this time, ETE has become one of the largest gatherings of developers in the mid-Atlantic.

Our community gathered online for 2020 and will be virtual again for 2021. While it goes without saying that we’d prefer to be learning together in person, we look at this as an opportunity to rethink how Philly ETE can be presented — a digital format has…


While watching Avengers: Infinity War for the tenth time (I’m a bit of a fan), I had this realization: designing for accessibility not only helps those with special needs but when done properly it enriches the experience for everyone. I’ll explain…

In case you’ve missed the 20 plus Marvel movies released in the past ten years, they’re quite awesome, and I highly recommend checking them out. With the release of each movie, the Marvel Cinematic Universe is enhanced with details like nothing done before.

This rich development has left superfans (nerds like myself) wanting more. So this time around I…


This blog post is a preview of life with the Windows 10 2019 Fall Update. For thrill seekers now, or in the future, you’ll be able to launch your favorite Linux distro, even with a custom built Linux Kernel, right from Windows, in a matter of a few seconds using the Windows Subsystem for Linux, Version 2.0.

I love Linux/FreeBSD. My love for Unix-like OSes got me down the Mac train for many years (I’m still a devoted fan of the OS, much less of their terrible design flaws in current laptops where keys fail to function and nobody at…


The landscape of AWS compute options is overwhelming: EC2, ECS, EKS, Lambda, Lightsail, Elastic Beanstalk, Batch … did I miss any? At their core, all of these options let you run a program, but they have different characteristics; depending on what you want to do, one will be better than another. This post gives you some criteria to help you pick the best compute option for your needs.

Are you running a user-facing web service?

I’m going to get this out of the way up-front: I don’t think that Lambda is appropriate for web applications. The table below shows why: it compares the average response time for…


According to eMarketer, 2019 was the first year that Americans spent more time on their mobile devices than watching television. This shift to mobile builds on a digital evolution already well underway, one that now sees almost 50% of the world’s population using the internet, 570 new websites launched every minute, and over 3.5 billion Google searches every day.

Pandemic Hastens Move to Mobile

The move to mobile has grown even more urgent with the sudden and expansive nature of remote learning, health, transactions, and more during the global coronavirus pandemic. …


I find the SAM (Serverless Application Model) CLI extremely frustrating to use on Linux, starting with installation. But this week I learned two things that simplify both installation and operation. I’m passing them on in the hopes that they’ll be useful to you as well. Happy Friday!

Homebrew isn’t required

For me, the most annoying thing about the documented process for installing SAM on Linux is the need for Homebrew. It’s not just that I already have a package manager. It’s not just that I have to install Homebrew by running a shell script downloaded from Github. …


Cypress is a relatively new web testing tool that is easier to use than Selenium, and it’s gaining in popularity. But using it in a continuous integration environment like AWS CodeBuild requires some additional steps compared to running it directly on your own computer.

This blog post contains helpful information to configure CodeBuild on AWS to run Cypress.

Requirements for running Cypress on CodeBuild

You’ll need several things to run Cypress on AWS:

  1. An AWS Account with permissions to create S3 Buckets, run CloudFormation, and manage AWS CodeBuild jobs.
  2. A working local Cypress testing project

Things not covered here:

  • How to reset the environment before testing


Short-lived database credentials are a best practice because they have a limited “blast radius” if compromised. However, Spring Boot — indeed, Java connection pools in general — aren’t well-adapted to changing credentials, because they’re normally configured when the application starts. To use short-lived credentials, you must retrieve those credentials whenever you make a database connection.

Yesterday I looked at one way to achieve this, using a database driver from AWSLabs. Today I’m going to dive a little deeper, and show you how to customize a standard JDBC DataSource. This requires a little more work to keep Spring Boot happy, but…


How do you configure database connections for your Spring Boot application? Here’s one way:

spring.datasource.url=jdbc:postgresql://db.example.com:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=my_super_secret_password

The problem with this approach is that “my_super_secret_password” isn’t: it’s sitting in a file in plain text, available to anyone who can either check out your source code or copy your deployment bundle. And even if the only people who can see these files already know the password, a second and bigger problem is that it’s part of the build artifact. If you ever need to change the password, you need to rebuild the application.

A better approach is to use environment variables…


The AWS Cloud Development Kit (CDK) was released just over a year ago. At the time, I was working on a web application deployed to AWS. The infrastructure was simple. There was a Node app, running behind nginx, in an EC2 instance. That instance served a REST API as well as the client-side, static assets (a React bundle). There was an RDS Postgres instance, an Application Load Balancer, and a Cognito User Pool. The whole thing was deployed via CodeBuild and provisioned with Cloudformation.

All together, that’s not a complex deployment. As the lead full-stack engineer, my responsibility was at…

Chariot Solutions

Chariot Solutions is a top IT consulting firm specializing in software and mobile development, and development in the cloud. Visit us at chariotsolutions.com.

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