I’m Hugh Grigg, a UK freelance and contract software developer, and AWS is the platform I work on most. I hold three AWS certifications, two of them at Professional level, and I’ve delivered AWS systems on contract for companies including Fanalysis, Octopus Energy and Omnipresent.
Contact me about your AWS project — whether that’s building something new, taking over something that already exists, or getting an existing system under control.
What I can build for you
- A new serverless application or API on AWS, delivered end to end.
- Migration of an existing system onto AWS, or off infrastructure that has become expensive or fragile.
- Infrastructure as code for systems currently configured by hand.
- Deployment pipelines, monitoring and alerting.
- Cost reduction on AWS bills that have grown faster than the product.
- A complete MVP built on AWS from nothing.
You get one engineer accountable for all of it, rather than a back-end contractor, a front-end contractor and a DevOps consultant whose work you have to keep aligned yourself. Decisions get made when they come up, and you have one person to ask about any part of the system.
Where I focus
Serverless architecture
Most of the AWS systems I build are serverless: Lambda, API Gateway, DynamoDB, SQS, SNS, EventBridge and S3. For the majority of business systems this is the right default. You pay for what you use, there are no servers to patch, and the platform absorbs variable load without anyone having to plan for it.
Where containers genuinely fit better, I use ECS and Fargate instead — I’d rather choose the right one than apply the same answer everywhere.
Infrastructure as code
I define infrastructure in CloudFormation, AWS SAM or Terraform, so that environments are reproducible and changes are reviewable. Console-configured infrastructure works right up until the day you need to change it, recover it or explain it, and then it stops working very sharply.
It also means the system isn’t something only I understand. Whatever I build for you can be rebuilt or handed to someone else from the code.
Testing AWS systems properly
Systems built on managed services are notoriously awkward to test. The usual options are slow integration tests against real AWS, or mocks so detailed and brittle that they end up testing themselves rather than your system.
I built and released @kensio/yulin, an open source TypeScript package that simulates AWS in-process, to solve exactly this. It lets a single fast test cover behaviour across several AWS services at once — a Lambda writing to SQS, picked up by another Lambda, or a DynamoDB stream triggering downstream work. That’s the level at which tests are actually worth having.
The point of it is delivery speed. A system with tests at that level can still be changed quickly in the last week of a project, which is usually when it matters most.
AWS certifications
- AWS Certified DevOps Engineer – Professional
- AWS Certified Solutions Architect – Professional
- AWS Certified Developer – Associate
Certifications aren’t a substitute for delivery, but they do mean the breadth is real rather than four services deep. The Professional-level exams in particular cover the operational side — deployment, monitoring, incident response, cost and security — which is the part that usually decides whether a system is pleasant or painful to run.
AWS work I’ve delivered
- Fanalysis — joined as the second employee and Staff Software Engineer, building on Lambda, ECS, API Gateway, DynamoDB, S3 and Rekognition.
- Octopus Energy — contract Software Engineer, working with Lambda, SAM, CloudFormation, DynamoDB, SNS and SQS.
- HOA Mailers — delivered the AWS infrastructure alongside the back-end and front-end systems, using Lambda, RDS and SAM.
Hire a freelance AWS developer
Contact me about your AWS project. Tell me what you’re building or what’s currently causing you trouble, and I’ll give you a direct view on the approach and what it would take.
I usually build on AWS with TypeScript, and I’m available for freelance and contract work from the UK.
