AWS Consulting
Architecture reviews, well-architected assessments, cost optimization, and technical leadership.
I help teams design, migrate, and operate modern cloud infrastructure — from serverless APIs to Kubernetes on EKS.
End-to-end cloud engineering — from architecture and migration to hands-on implementation.
Architecture reviews, well-architected assessments, cost optimization, and technical leadership.
Lift-and-shift, re-platform, and re-architect strategies with zero-downtime migrations.
Serverless APIs, event-driven systems, IaC with AWS CDK, and microservices on Lambda and EKS.
Broad hands-on experience across compute, integration, data, security, and operations.
Infrastructure as code, event-driven architectures, and patterns for maintainable AWS systems.
import * as cdk from 'aws-cdk-lib';
import * as lambda from 'aws-cdk-lib/aws-lambda';
import * as sqs from 'aws-cdk-lib/aws-sqs';
import * as sns from 'aws-cdk-lib/aws-sns';
import * as subs from 'aws-cdk-lib/aws-sns-subscriptions';
export class WorkerStack extends cdk.Stack {
constructor(scope: cdk.App, id: string) {
super(scope, id);
const queue = new sqs.Queue(this, 'Jobs', {
visibilityTimeout: cdk.Duration.seconds(300),
});
const topic = new sns.Topic(this, 'Events');
topic.addSubscription(new subs.SqsSubscription(queue));
new lambda.Function(this, 'Processor', {
runtime: lambda.Runtime.NODEJS_20_X,
handler: 'index.handler',
events: [new lambdaEventSources.SqsEventSource(queue)],
});
}
}
import { SQSClient, SendMessageCommand } from '@aws-sdk/client-sqs';
import { SNSClient, PublishCommand } from '@aws-sdk/client-sns';
const sqs = new SQSClient({});
const sns = new SNSClient({});
export const handler = async (event) => {
for (const record of event.Records) {
const body = JSON.parse(record.body);
await sns.send(new PublishCommand({
TopicArn: process.env.TOPIC_ARN,
Message: JSON.stringify({ status: 'processed', id: body.id }),
}));
}
return { statusCode: 200, body: 'ok' };
};
# values.yaml — platform chart on EKS (IRSA + IAM role)
replicaCount: 3
serviceAccount:
create: true
name: platform-app
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/platform-app
image:
repository: 123456789012.dkr.ecr.eu-central-1.amazonaws.com/platform
tag: "1.4.2"
ingress:
enabled: true
className: alb
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
# Deploy with Helm
$ helm upgrade --install platform ./chart \
-f values.yaml -n platform --create-namespace