I like to keep myself busy, so I’m always working on a number of projects at any given time. I’m no stranger to entrepreneurship, so some of these are side-hustles, while others are simply for fame and glory 🙌. I also do a fair amount of consulting, which let’s me work with other teams, learn new things, and fund my expensive guitar effects pedal habit. 🎸
Below are some of the projects I’m currently working on and/or maintaining. If you have any questions or thoughts on any of these, or are interesting in my consulting services, I’d love to hear from you. Please feel free to contact me at firstname.lastname@example.org.
- Serverless Chats Podcast
- Lambda API
- Serverless MySQL
- Data API Client
- DynamoDB Toolbox
- Serverless Stage Manager
- Serverless Cloudside Plugin
Off-by-none is a weekly email newsletter that focuses on the technical details of building applications and products in the cloud using serverless technology. Every Tuesday, I publish a new issue that includes links to interesting articles, tools, use cases, industry news, insights from experts, and much more. Sometimes I’ll even sprinkle in some updates about the serverless products and projects I’m currently working on.
Serverless Chats is a podcast designed to geek out on everything serverless. Each week, I chat with another serverless champion to explore and do a deep-dive into specific topics in the serverless space.
Lambda API is a lightweight web framework for your serverless applications. It was designed for use with AWS API Gateway and AWS Lambda using Lambda Proxy integration. This closely mirrors (and is based on) other routers like Express.js, but is significantly stripped down to maximize performance with Lambda’s stateless, single run executions.
- Apr 2, 2018: v0.4 Released
- Mar 21, 2018: v0.3.0 released
- Mar 15, 2018: v0.2.0 released
- More updates…
Serverless MySQL is an NPM module for managing MySQL at serverless scale. It is a wrapper for Doug Wilson’s amazing mysql Node.js module. It adds a connection management component to the
mysql module that is designed specifically for use with serverless applications. The module can monitor the number of connections being utilized, and then based on your settings, manage those connections to allow thousands of concurrent executions to share them. It will reuse connections when possible, clean up zombie threads, enforce connection limits per user, and retry connections using trusted backoff algorithms.
In addition, Serverless MySQL also adds modern
async/await support to the
mysql module, eliminating callback hell or the need to wrap calls in promises. It also dramatically simplifies transactions, giving you a simple and consistent pattern to handle common workflows.
- Mar 30, 2020: v1.5.4 released
- Jan 31, 2020: v1.5.3 released
- Dec 14, 2019: v1.5.2 released
- Jul 17, 2019: v1.5.0 released
- May 24, 2019: v1.4.0 Released
- More updates…
AWS.RDSDataService client to make working with async/await or Promise chains easier AND dramatically simplifies transactions.
The DynamoDB Toolbox is a simple set of tools for working with Amazon DynamoDB and the DocumentClient. It lets you define your data models (with typings and aliases) and map them to your DynamoDB table. You can then generate parameters to
UpdateExpressions for you.
The Serverless Stage Manager is a super simple Serverless plugin for validating stage names before deployment. I made a dumb mistake one time when publishing a Serverless project, so I built this to prevent it from happening again.
This Serverless Framework plugin allows you to use AWS CloudFormation intrinsic functions (such as
!GetAtt) to reference cloud resources during local development. When added to your environment variables, these values are replaced with the same identifiers used when deployed to the cloud. You can invoke your functions locally, use the
serverless-offline plugin, or use a compatible test runner that uses the
serverless invoke test command. This allows you to keep your
serverless.yml files free from pseudo variables and other concatenated strings and simply use the built-in CloudFormation features.