I design and build serverless applications on AWS
I have run production workloads at scale in AWS since 2009. In that time I have designed and built cloud-native applications in a variety of industries and workloads including:
- mobile and Facebook games with tens of millions of users
- a social network which is almost entirely serverless
- sports streaming app with over a million concurrent viewers at peak
I’m one of the most recognised names when it comes to serverless. I have written extensively on the topic and my articles have been read millions of times and have helped many made the successful shift to serverless. I’m also the author of a best selling video course by Manning named Production-Ready Serverless. I have spoken about serverless at many conferences worldwide, including big industry events such as re:invent and QCon, and was the keynote speaker for several ServerlessDays events around Europe. I have advised and collaborated with serverless vendors to help improve the ecosystem for serverless applications. And I have made numerous contributions towards popular serverless development tools.
For my contributions towards the AWS community, AWS has recognised me as an AWS Serverless Hero since 2018.
Since transitioning to consulting, I have been working with clients around the world to help them get up and running with serverless architectures and avoid costly mistakes. I have worked with clients from many industries, ranging from stealth-mode startups to large, multi-national enterprises. Some of my past and present clients include:
In 3 days we went from zero to having a good understanding of the Serverless landscape.
– Quynh Nguyen, Engineering Manager at Simply Business
Accelerate your adoption of serverless technologies and avoid common pitfalls and costly mistakes. I offer the following services:
- Provide advice and guidance on how to transition to serverless.
- Provide advice and guidance on different AWS services, and help you choose the right service to use for your use case.
- Provide assistance with initial architecture design.
- Review your architecture with a focus on security, performance, scalability and cost.
- Implement proof-of-concept or set up templates for your project.
- Support your engineers with pair programming sessions and workshops.
Education and Training
Enable yourself and your team to build and operate cloud native, serverless applications running in AWS. I offer onsite training that covers everything you need to know to build production-ready serverless applications in two days. The detailed curriculum is available here, here are the highlights:
- Building serverless applications with API Gateway, Kinesis and Lambda
- Security for API Gateway and Lambda
- Testing strategy for serverless applications
- Configuration and secret management
- Building observability into serverless applications
Besides my onsite training, I have also published a lot of materials online.
- Video course: Production-Ready Serverless
- Video course: Complete guide to AWS Step Functions
- Blog: theburningmonk.com
Are you looking for a partner to help you implement your project? I can offer my assistance with:
- Implementing serverless applications
- Building CI/CD pipelines
- Infrastructure as Code
- Setting up AWS infrastructure for scale and resilience.
- Securing AWS infrastructure and your serverless application.
|Part of the core team for the middy middleware engine for Node.js Lambda functions.|
The project is a collection of tightly integrated tools, including:
- a correlation-ids package for recording correlation IDs.
- a logger package that supports structured logging and would automatically include the current correlation IDs.
- a collection of middy middlewares for extracting correlation IDs from the invocation event, sample logging, logging timeout errors, stopping infinite recursions and obfuscation.
- a collection of client libraries for HTTP, SNS, SQS, Kinesis, Step Functions and Lambda, all of which knows how to forward the current correlation IDs on.
- a wrapper which applies and configures the aforementioned middlewares to your handler.
Serverless Application Repository apps
- lambda-janitor: cron job to delete old, unused versions of all Lambda functions in the region to free up storage space.
- auto-subscribe-log-group-to-arn: subscribes new and existing CloudWatch log groups to a Lambda function, Kinesis stream, or Firehose delivery stream by ARN.
- auto-set-log-group-retention: updates the retention policy for new and existing CloudWatch log groups to a specified number of days to reduce CloudWatch Logs cost.
- async-custom-metrics: lets you record custom metrics by writing to stdout (which is recorded in CloudWatch Logs) which is then parsed and forwarded to CloudWatch metrics as custom metrics.
- autodeploy-layer: automatically deploys a Lambda layer to all new and existing functions in the region. Supports opt-in and opt-out via function tags.
Serverless framework plugins
- serverless-step-functions: lets you define Step Functions state machines in the serverless.yml.
- serverless-apigateway-service-proxy: supports AWS service integrations with API Gateway.
- serverless-plugin-extrinsic-functions: gives you the ability to use additional Fn:: functions such as StartsWith, Substring, etc.
- serverless-lumigo: makes it easy to install the Lumigo tracer to your functions.
I have published many demo apps with accompanying blog posts to illustrate techniques for building serverless applications, such as:
- lambda-config-demo: demonstrates approaches for managing configs for Lambda functions.
- lambda-protobuf-demo: demonstrates how to build APIs that uses protobuffer with Lambda and API Gateway.
- lambda-saga-pattern: demonstrates how to implement the Saga pattern with Lambda and Step Functions.
Common Serverless Use Cases
Web and Mobile apps
Serverless technologies such as AWS Lambda, API Gateway and AppSync can dramatically reduce the complexity and cost of running modern web and mobile applications. These services can all scale automatically based on demand and support many thousands of transactions per second. They are all designed with resilience in mind as your application is deployed to multiple data centres by default, at no extra cost to you. And best of all, you don’t have to pay for when there is no traffic!
Analytics/Data processing pipelines
Building a scalable and resilient web application is still not enough. You need to understand user behaviour and use that knowledge to improve the quality of the product itself. Serverless technologies can help you here as well! With serverless technologies such as AWS Lambda, Kinesis, S3 and Athena, you can easily build a pipeline that captures and analyses exabytes of custom data. As with the web apps, the system scales automatically and is resilient out-of-the-box, and you only pay for what you use.
Internet of Things (IOT)
AWS offers a range of IoT services, and at the heart of it all is IoT Core. IoT Core allows you to connect IoT devices with your backend services using MQTT, WebSockets, or HTTP. iRobot is perhaps the best known user of these services, and the following quote by Ben Kehoe perfectly summarises why serverless is such a big hit with companies in this space.
Many of the companies in the IoT space are startups operating with a small team and constrained by tight budgets. Serverless technologies like Lambda and IoT Core are a natural fit because it allows small teams to focus on feature delivery as opposed to wasting time on infrastructure. The pay-per-use pricing model also allows them to grow their operational costs linearly and not worry about big up-front costs.
Many common chores and cron jobs can be implemented using serverless technologies such as AWS Lambda and CloudWatch Events. When used with CloudTrail or AWS Config, you can respond to state and configuration changes in your AWS environment using Lambda functions.
Ready to go?
Tell me about your project and let’s explore the possibilities.