---
title: "Sohag Hasan (@sohag) | Hashnode"
description: "Tech Lead at MobyPay | Certified Laravel Developer | PHP JS GO | DevOps Enthusiast | Open to projects. Read the latest articles by Sohag Hasan on Hashnode."
url: "https://hashnode.com/@sohag"
---

@sohag

# Sohag Hasan

@sohag · Dhaka, Bangladesh · Joined July 2022

Tech Lead at MobyPay | Certified Laravel Developer | PHP JS GO | DevOps Enthusiast | Open to projects

[Website](https://sohag.pro/)

### [Deleting One Server Fixed Twenty Audit Findings](https://notes.sohag.pro/deleting-one-server-fixed-twenty-audit-findings?utm_source=hashnode&utm_medium=feed)

Our 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.pro](https://notes.sohag.pro/deleting-one-server-fixed-twenty-audit-findings?utm_source=hashnode&utm_medium=feed)

[1](https://hashnode.com/posts/deleting-one-server-fixed-twenty-audit-findings/6ad1cd1a803cc5fac413d6fe) [Oct 16](https://hashnode.com/posts/deleting-one-server-fixed-twenty-audit-findings/6ad1cd1a803cc5fac413d6fe)

### [Run ECS Fargate tasks without a public IP using a NAT Gateway](https://notes.sohag.pro/ecs-fargate-private-subnet-nat-gateway?utm_source=hashnode&utm_medium=feed)

Move 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.pro](https://notes.sohag.pro/ecs-fargate-private-subnet-nat-gateway?utm_source=hashnode&utm_medium=feed)

[Aug 25](https://hashnode.com/posts/ecs-fargate-private-subnet-nat-gateway/6a8d8cc16a34468764183590)

### [Big Problem With Your List: You Ain't on It](https://notes.sohag.pro/big-problem-with-your-list-you-aint-on-it?utm_source=hashnode&utm_medium=feed)

I had a solid list of reasons my life wasn't moving faster, until a grainy old lecture pointed out the one name missing from it

8 min read · [notes.sohag.pro](https://notes.sohag.pro/big-problem-with-your-list-you-aint-on-it?utm_source=hashnode&utm_medium=feed)

[Jul 22](https://hashnode.com/posts/big-problem-with-your-list-you-aint-on-it/6a60de2e6940c6d1aa83ef63)

### [I Built a Production Go Payment Ledger in 14 Weeks. Here's What I'd Do Differently.](https://notes.sohag.pro/what-id-do-differently?utm_source=hashnode&utm_medium=feed)

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.pro](https://notes.sohag.pro/what-id-do-differently?utm_source=hashnode&utm_medium=feed)

[Jul 14](https://hashnode.com/posts/what-id-do-differently/6a55eb02a733d94ab1d4a5cf)

### [Approval Workflows and an Outbox Event Stream in Go: Eventing Without Kafka](https://notes.sohag.pro/approval-workflows-and-event-stream?utm_source=hashnode&utm_medium=feed)

How 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.pro](https://notes.sohag.pro/approval-workflows-and-event-stream?utm_source=hashnode&utm_medium=feed)

[Jul 13](https://hashnode.com/posts/approval-workflows-and-event-stream/6a55231367d61a2457d796a5)
