Principal Software Engineer for @awscloud Container Services. Ferry rider, homemade jam scientist, soprano, better half of @anliguori. Tweets are my own.
Nov 1, 2021 • 8 tweets • 3 min read
I hear these a lot from mentees & others, especially when remote:
☹️ "My manager doesn't really know what I do"
☹️ "I'm overloaded, but my mgr keeps piling on"
☹️ "My mgr & I never talk about anything other than status"
Here's what works for me: the "Clare's Plate" doc!
👇🧵
My manager (👋 @mndoci!) & I have a shared document where I describe what's currently on my plate and list alllll the stuff I'm working on. 3 categories: Current, Back Burner, and Done. My manager gets async visibility into what I'm doing + can provide comments & ask questions.
Dec 19, 2020 • 6 tweets • 3 min read
Today is my last 2020 workday so I'm reflecting a bit on what I did this year, but also about my approach to time management this year and how I attempted to answer for myself that age-old principal engineer question "Why don't I have any time to do real work???" - a thread 👇
Last year, breaking down how I spent my time into buckets of "types" of work helped a lot to visualize some areas where I needed to better balance, but this year I had a different balancing act working across a few different projects
Last week, CodeDeploy & CloudFormation added support for doing ECS blue-green / canary deployments as part of CFN stack updates, yay! aws.amazon.com/about-aws/what…
The way it works is pretty cool, so I'll dig into what happens during a stack update in this thread 👇
To switch to blue-green deployments in CFN, you need to make two changes to your template:
1) Use an ECS task set resource instead of specifying all the config in the ECS service resource. This lets the deployment create "blue" and "green" task sets in your ECS service.
Feb 18, 2020 • 10 tweets • 4 min read
I've been meaning to set up canaries for reinvent-trivia.com, after a while ago someone told me they couldn't load the site b/c the cert expired (so embarrassing!)
So I tried out the CloudWatch Synthetics preview, and it's nice! I'll show an example "incident" it prevented👇
CW Synthetics has some "blueprints" to get started. I created a custom canary that loads the site's main page, plus calls all three backend APIs, and had the canary tests run against both my test and prod endpoint. CW Synthetics automatically created CW alarms for my canaries
Dec 20, 2019 • 4 tweets • 2 min read
A question I get a lot: "What exactly does a Principal Engineer do at AWS?"
Every PE plays a mix of roles unique to them, so I put together this rough estimate of how I personally spent my time in 2019, broken down into a few buckets of activities
This is how I defined the types of activities that fall into each bucket
May 10, 2019 • 9 tweets • 3 min read
I recently spoke about "Career Growth" as an individual contributor in tech, and I realized there's some pieces of advice that stuck with me a long time, and they keep popping into my head when I talk about this topic. Thread below!
What are the gems that have stuck with you?
"How to be a Star at Work" (corny title, but full of gems) introduced me to the concept of small-l leadership and Big-L Leadership. Engineers are small-l leaders: we lead through influence & teamwork, not through Authority with a capital A. fastcompany.com/33955/are-you-…
Jan 22, 2019 • 6 tweets • 2 min read
I wrote a tool called img2lambda to take Docker images and convert them to AWS Lambda layers! 🥳 github.com/awslabs/aws-la…
Thread below on when img2lambda is useful 👇
If you like Docker for building stuff & want to use Lambda layers, img2lambda is for you!
Write a Dockerfile to compile a custom runtime & install libraries, then take advantage of all the goodness of Docker build caching to get fast builds
docker build -t my-custom-runtime .
Aug 29, 2018 • 17 tweets • 3 min read
Colm's thread on shuffle sharding reminded me of how important it is that clients participate in fault tolerance, and how frustrated I get when a client library *doesn't* do this by default in my application. Let's talk about some best practices!
There are three important behaviors for fault-tolerant clients: 1) Retry 2) Timeout 3) Backoff
Good client libraries have knobs for each one, so you can tune for your application's needs.