Deleting One Server Fixed Twenty Audit FindingsOur static documentation site ran on an EC2 box behind nginx, with SSH open to the internet. A quarterly PCI scan returned twenty-plus findings on that one host. Here is how we migrated it to S3 and CloudFront and dropped the finding count to zero, including the parts the AWS docs skip over.11 min read·notes.sohag.pro1COct 16
Run ECS Fargate tasks without a public IP using a NAT GatewayMove an ECS Fargate service into private subnets, turn off auto-assign public IP, and route outbound traffic through a NAT Gateway so every call leaves from one fixed Elastic IP.5 min read·notes.sohag.pro2Aug 25
Big Problem With Your List: You Ain't on ItI had a solid list of reasons my life wasn't moving faster, until a grainy old lecture pointed out the one name missing from it8 min read·notes.sohag.pro1Jul 22
I Built a Production Go Payment Ledger in 14 Weeks. Here's What I'd Do Differently.The finale isn't a victory lap. It's the story of the control I shipped that did nothing, the footgun still sitting in my demo, and the handful of things I'd keep exactly as they are.11 min read·notes.sohag.proJul 14
Approval Workflows and an Outbox Event Stream in Go: Eventing Without KafkaHow do you hold a large payment for a second pair of eyes without ever letting the unapproved money touch a balance, and how do you stream that decision to the outside world without standing up a broker?11 min read·notes.sohag.proJul 13