The Ops Community

Drew Khoury
Drew Khoury

Posted on

Optimizing for a Cloud-native Developer Experience

Chris and Drew share their combined knowledge around developer experience, why (micro) feedback loops matter a whole lot, and present a live demo of a Cloud Native application working locally - complete with unit tests, end-to-end tests and smoke tests.

This talk is packed with real patterns used by Chris and Drew working with teams to help them increase their effectiveness. The demo was designed so you can follow along on your own workstation - and be up and running within minutes without the need to install and configure the underlying tech (Node, AWS SAM, Python, Playwright, etc).

Meetup Video: https://www.youtube.com/watch?v=6MP1u7O_3bY

Micro feedback loops

"From what I have observed, you have to nail the basics, the things that developers do 10, 100 or 200 times a day. I call them micro-feedback loops. This could be running a unit test while fixing a bug. It could be seeing a code change reflected in your local environment or development environments." - Tim Cochran

Demo

Demo Repo: GSD-AWS-CDK-Serverless-Example

If you have make, docker-compose and docker installed you should be able to have a local env running in a few minutes.

git clone git@github.com:chrishart0/gsd-aws-cdk-serverless-example.git && cd gsd-aws-cdk-serverless-example
make install && make run
Enter fullscreen mode Exit fullscreen mode

Hint: If you run make after cloning the repo, it will show you the help menu and let you know what commands to run to build, test and deploy the application.

Micro feedback loops demonstrated in this repo:

  • Unit tests (front-end, back-end, infra)
  • Local environment - available in the browser
  • End-to-end tests
  • Direct deployment to AWS from your workstation
  • CI/CD runs the same as local, with additional security checks

Giving us your feedback (loop)

We'd love to hear what you think about these patterns, and get some feedback on your own developer experience using the demo repo.

Discussion (0)