-
What about Engineering Principles?
There are many great resources that can be used as a manifesto for quality engineering. Having a baseline for your work can never be a bad thing; my favorites are the principles of Lean Manufacturing, Manifesto for Agile Software Development, Bauhaus Principles, and Amazon Leadership Principles. And - of course - The Frugal Architect.
-
AWS: Serverless Extended Validation (EV) Code-Signing with KMS
The AWS Key Management System can manage FIPS 140-2 Level 3 compliant private keys for Extended Validation (EV) Code Signing Certificates. Using AWS KMS and AWS Fargate for Amazon ECS, you can build a serverless Code Signing Service for Microsoft Windows binary files.
-
AWS: Identify Language in Audio Files with Amazon Transcribe
I am a huge fan of Computer Interfaces; especially non-textual ones. Spoken words can be a powerful interface to digital services; Amazon Web Services has various services and products available that work with audio. To identify language in spoken words and extract textual information, you can use Amazon Transcribe and analize audio files.
-
bunq API: Callback Integration with Amazon EventBridge
The weekend was nice; I had some fun using the bunq API and configure webhooks for account activities and explained how to use Amazon EventBridge Pipes to process and transform messages from SQS. Now, it’s time to combine both and get bunq events to Amazon EventBridge!
-
AWS CDK: Amazon EventBridge Pipes and SQS
When managing continuous events, Amazon EventBridge is a powerful and fully managed service. With Amazon EventBridge Pipes it’s easy to organize, structure, and transform incoming data messages. Using the AWS Cloud Development Kit, this guide will configure an Amazon SQS Queue and use Amazon EventBridge Pipes for data processing and transformation.
-
bunq API: Configure Callbacks for your Banking Accounts
The digital banking service bunq has an API for their banking accounts. With support for webhooks, you can easily track any activity within your account! bunq calls them Callbacks. This guide explains how to use the bunq mobile application and some cURL requests to get a JSON request for every activity in your bunq banking accounts.
-
Generative AI: Amazon Bedrock with AWS Step Functions
AWS Step Functions can easily be used to wrap existing AWS services and persist specific use cases. For example, AWS Step Functions can call the Amazon Bedrock API to generate text responses using the AI21 Labs Jurassic-2 models. You can create a Step Function using the AWS Management Console, or the AWS Cloud Development Kit.
-
Bluesky API and AT Protocol using TypeScript
The current en vogue alternative for Twitter is the invite-only services Bluesky. Based on the open specifications of the foundational concept, the AT Protocol, and the available API client on GitHub, it is not that complex to retrieve details of one of your posts; for example the number of likes.
-
AWS CDK: API Gateway Service Integrations for Amazon EventBridge
The previous post described how to create an Amazon EventBridge Event Bus with Amazon CloudWatch Log forwarding using the AWS CDK. Publishing events works fine with the AWS Management Console or the AWS CLI, but you can also use Service Integrations for Amazon API Gateway; this works for HTTP and Rest API Gateways.
-
AWS CDK: Amazon EventBridge and CloudWatch Logs
Amazon EventBridge is a powerful service to build event-driven applications at scale across AWS. To get started with EventBridge, you just need to create an Event Bus; for example, using the AWS Cloud Development Kit. Next, forwarding all events to an Amazon CloudWatch Log group enables basic insights into all processed events.
-
AWS CDK: AppSync GraphQL API for Amazon Bedrock
Based on invoking Amazon Bedrock with AWS Lambda and Amazon API Gateway, you can adapt the AWS Cloud Development Kit example code to use AWS AppSync and GraphQL for accessing Amazon Bedrock.
-
AWS CDK: Use Amazon Bedrock with AWS Lambda & API Gateway
After using Amazon Bedrock Generative AI with the AWS CLI and AWS JavaScript SDK, this guide will explain how to create an Amazon API Gateway and use the AWS Cloud Development Kit and AWS Lambda to invoke Amazon Bedrock.
-
Generative AI: Amazon Bedrock using the JavaScript SDK
After using Amazon Bedrock Generative AI with the AWS CLI, you may also want to use the AWS JavaScript SDK to invoke an available Amazon Bedrock Model.
-
Generative AI: Amazon Bedrock using the CLI
With AWS re:Invent 2023 just around the corner, the frequency of AWS press releases increases. Generative AI is a hot topic everywhere, tools like Midjourney and ChatGPT lower the bar for non-technical people, and I wonder how and when AWS will introduce a more solution-like Genrative AI service.
-
AWS SDK: Pagination Pattern for JavaScript SDK v3
When using the AWS Software Development Kit, pagination in API responses is a common and sometimes annoying to deal with. Thanks to a shared interfaced in
@aws-sdk
clients, can you can establish a common pattern to interact with AWS paginated API actions using the JavaScript SDK v3. Retrieving all AWS Accounts in your AWS Organization is a neat example use case for this. -
AWS CDK: Configure Alternative Operations & Security Contacts using StackSets
To maintain a common foundation of resources across a complex AWS Organization, CloudFormation StackSet is the perfect companion. Usually, you want to deploy a common baseline of AWS resources and additionally specificy custom deployments; like setting custom contact information for billing, operations, or security communications.
-
Generative AI: Prompt Battle in Hamburg
What do I like the most about Generative AI? The endless possibilities and different perspectives on the process. In my opinion, a reliable prompt design will be an important skill for using generative AI effectively. Sure, anybody can sign up for a service like Midjourney.com or Leonardo.Ai, but how can you achieve reliable results? In Hamburg, the Design Zentrum Hamburg by the Hamburg Kreativ Gesellschaft organized two Prompt Battle events to explore generative AI.
-
Theming with Amplify UI, AWS Amplify Studio, and Figma
Following the first guide on how to use AWS Amplify Studio and Figma to create React components, this guide covers theme management with Figma and the Amplify UI. Based on Design Tokens and System UI Theme Specification.
-
Create React Components using Figma and AWS Amplify Studio
At re:Invent 2021, AWS Amplify announced AWS Amplify Studio, a visual development portal to build and operate web applications. Together with Figma, you can easily manage UI components and generate React components without any development tasks.
-
AWS CDK: Cross-Region S3 Replication with KMS
AWS has everything you need for secure and reliable data storage. With Amazon S3, you can easily build a low-cost and high-available solution. Together with the available features for regional replication, you can easily have automatic cross-region backups for all data in S3.
-
Custom wrapper for AWS Control Tower Account Factory
For managing a multi-account AWS environment, Control Tower is a great tool. But, using the Account Factory to create new AWS accounts is always annoying. With AWS Systems Manager Automations, you can build a custom interface to create AWS accounts.
-
AWS CDK: Use Lambda with Application Load Balancer
When coming from a serverless perspective, setting up an Application Load Balancer with VPC sounds like much to do for just invoking an AWS Lambda function. Thanks to the AWS CDK, it’s not that complex.
-
superwerker: Automate multi-account AWS environments
Managing and securing multiple AWS accounts gets complex. superwerker is a free and open-source solution to automate the setup and management of your multi-account AWS environments. Based on our experiences at superluminar, we teamed up with kreuzwerker from Berlin to bundle prescriptive best practices from multiple years of cloud consulting and created superwerker.
-
AWS IoT Core2 EduKit Overview & First Steps
During Re:invent 2020, AWS announced an official AWS IoT Edukit hardware device. The M5Stack Core2 is an ESP32 development kit loaded with a display, touchscreen, motion sensor and microphone. Everything is powered either using USB or the built-in battery. The device supports FreeRTOS and is validated through AWS Device Qualification Program.
-
Wallpapers for iOS
All photos on my Instagram account are in landscape format. Some photos are great to be used as wallpapers, I try to group them here. You can download, use, and adapt all wallpapers using the CC BY-SA 4.0 License.
-
AWS: Encrypted SQS with SNS Subscription using KMS
To decouple services on AWS, it’s a common pattern to use Amazon SQS and Amazon SNS. With AWS Key Management Service, you can encrypt the messages stored in the SNS topic and SQS queue. For the AWS Cloud Development Kit using TypeScript, you can easily create an architecture for secure message processing.
-
AWS: CloudFormation StackSet IAM Roles
With AWS CloudFormation StackSets you can deploy a CloudFormation template to multiple AWS Accounts or AWS Regions. You can use the AWS Management Console, the AWS CLI, or CloudFormation to use StackSets. Before using StackSets, you need to configure specific IAM roles to be used with CloudFormation StackSets.
-
AWS CDK: Amazon API Gateway integration for SQS
Most people know Amazon API Gateway from using it to build HTTP interfaces for AWS Lambda functions. But, in general, you can use API Gateway to call a variety AWS APIs using HTTPS. This post shows how to create an HTTPS interface for Amazon SQS using the AWS Cloud Development Kit.
-
AWS CDK: API Gateway Service Integration for Step Functions
Most people only use Amazon API Gateway as an HTTP interface to invoke AWS Lambda functions. But, the service has way more to offer. For example, you can easily create an HTTP interface for nearly any AWS Service; not only AWS Lambda. Based on the previous post, on how to create a State Machine with AWS Step Functions and AWS Cloud Development Kit, this post describes how to create an HTTP interface to start an execution of a State Machine using the AWS CDK.
-
AWS CDK: State Machine with Step Functions
With AWS Step Functions, you can easily orchestrate serverless functions and sequence them with other AWS services to a bundle application. You can create AWS Step Functions with CloudFormation, the AWS Cloud Development Kit, or - of course - using the visual interface available in the AWS Management Console. This post shows how to orchestrate AWS Lambda functions to a simple State Machine using AWS Step Functions.
-
AWS CDK Construct: Lambda Fleet for Dockerfile
Using the AWS Cloud Development Kit, deploying a AWS Lambda function using Docker container images is pure gold. The installation of dependencies for Lambda functions always stressed me out. Regardless of using Node.js or Python, managing dependencies for AWS Lambda was never fun.
-
AWS CDK: Deploy Lambda with Docker
The AWS Cloud Development Kit supports building docker images for AWS Lambda. With the most recent version, the CDK builds your docker images if needed and can push the image directly to AWS Elastic Container Registry. Personally, I think this is a great feature. With supporting docker images, AWS Lambda has immutable deployment artifacts!
-
Event-Driven Continuous Integration & Delivery
The more complex your application and architecture becomes, the more complex your deployment process usually gets. Most people and engineering teams only think about pipelines as a fix path of actions, that need to happen in a specific order. That’s true, no questions about that. But your process for Continuous Integration and Continuous Delivery does not need to be a monolith!
-
AWS Lambda Container Image Support example for Node.js
During Re:Invent 2020, AWS announced Container Image Support for AWS Lambda functions using the AWS Elastic Container Registry. Personally, I think this is a great feature. With supporting docker images, AWS Lambda has immutable deployment artifacts!
-
Github Deployments and Github Actions for Continuous Releases
The Example for Continuous Deployment with Github Actions and AWS ECR uses a GitHub Deployment to trigger releases of tagged docker images. Using GitHub Actions, a task can be triggered for every created deployment.
-
Continuous Deployment With Github Action for AWS ECR
Automated releases and deployments wil speed up your development prozess. After setting up Semantic Releases, a tagged software version can be deployed with GitHub Actions. For projects using Amazon Elastic Container Registry, you might want to build and tag a docker image for every GitHub release.
-
Semantic Releases With Github Actions
If you stick to Conventional Commits for your commit messages, you can create tags and releases with GitHub Actions for every code change you push to a repository. This is great for automated and continuous releases!
-
Moved Website to Hugo
I managed to migrate all content from Gatsby to Hugo within the weekend. Old links redirect to the new structure and the bundled JavaScript and CSS assets are way smaller. For website analytics, I use Fathom (if you use this link for Fathom you save 10$ on your first bill).
-
AWS Serverless Application Repository
-
Rotate secrets with AWS Secrets Manager
-
About Diversity and an inclusive work spaces
-
Cross-account sharing with AWS Secrets Manager and KMS
-
Private NPM Registry using AWS CodeArtifact
-
AWS CDK: Read data from AWS Parameter Store
When you orchestrate an architecture von AWS, you’ll often end up with the need to read information like hostnames, identifiers, resource names or ARNs from somewhere for further processing. CloudFormation Stacks can have configured Outputs and Parameters, but using the AWS Parameter Store proved to be a more flexible solution. Using the AWS Cloud Development Kit in TypeScript, you can easily read data from AWS Parameter Store.
-
AWS CDK: Store data in AWS Parameter Store
When you orchestrate an architecture von AWS, you’ll often end up with the need to store information like hostnames, identifiers, resource names or ARNs somewhere for further processing. CloudFormation Stacks can have configured Outputs, but using the AWS Parameter Store proved to be a more flexible solution. Using the AWS Cloud Development Kit in TypeScript, you can easily store data like an S3 Bucket domain name in AWS Parameter Store.
-
React SPA with server-side rendering on AWS Lambda
React is great for creating websites and writing applications using JavaScript. But, whenever the use of React is rejected, one of the most common reasons is the lack of a simple implementation for server-side rendering (SSR). When you search on Google for this topic, you’ll find various approaches and most of the time, people will tell you it’s complicated. But Why?
-
AWS CDK: Deploy AWS Lambda function
AWS Lambda functions are great. Using the AWS Cloud Development Kit in TypeScript, you can easily deploy files to AWS Lambda functions and configure an AWS Lambda Layer in the same CloudFormation Stack. After the deployment is done, the AWS Lambda function name to invoke the uploaded sources will be exposed as a CloudFormation Stack Output.
-
AWS CDK: Deploy static files to an Amazon S3 Bucket
You can easily deploy static files stored in a folder to an Amazon S3 Bucket. If you configure your S3 Bucket for static website hosting, you can access all files via HTTPS from any browser or tool. Using the AWS Cloud Development Kit in TypeScript, your CloudFormation Stack can look like this. After the deployment is done, the domain name to access the uploaded content will be exposed as a CloudFormation Stack Output.
-
Deployments with serverless.com, AWS CDK, or AWS SAM?
-
Deploy React SPA with CodePipeline and CodeBuild using AWS CDK
There are plenty of tools and services for continuous delivery available. Most of them are either directly built into the source code management tools you already use, or perfectly integrate with them. You might be familiar with CircleCI, Travis CI, GitLab CI, or GitHub Actions.
-
AWS re:Invent 2019 Recap & Videos
I was able to attend the AWS re:Invent 2019 conference. A week full of learning about current and new technologies, services, and general approaches is definitely overwhelming. There is no much content available, during the conference, and as videos and slide decks afterwards. I tried to list my favourite talks. There are way too much of them.
-
AWS Single Sign-On and Multi-Account Cloud Setup
-
GraphQL with AWS AppSync and AWS Lambda
-
CloudFormation Best-Practices
You can find plenty of frameworks and tools to provision your AWS resources. Some of them do a great job for a specific purpose, others are more generic. Nevertheless, I do prefer to use native CloudFormation templates as much as possible.
-
Makefile Best-Practices
The more projects you work on, the more streamlined your tooling gets. Hopefully. Various services using different languages have different tooling requirements, of course. A sweet Makefile can be the entry to a unified tooling interface.
-
AppSync GraphQL API with Custom Domain and CloudFormation
With AWS AppSync, it’s easy to run your own serverless GraphQL service API. Thanks to Velocity Mapping Templates, DynamoDB, and AWS Lambda your can aim for an architecture without any maintenance at all.
-
Serverless GraphQL with AWS AppSync and Lambda
Let me be honest with you: GraphQL is the shit! Once you use GraphQL, you will never want to use anything else again. The same is true for a working and maintainable serverless FaaS infrastructure. Combine both technologies to run a genuinely serverless GraphQL API using AWS AppSync and Lambda resolvers.
-
AWS AppSync GraphQL API using CloudFormation
Amazon recently announced CloudFormation support for AppSync and all its features. Together with the Serverless Application Model it’s now dead simple to deploy a GraphQL API and custom Lambda resolvers without using the API at all. The GraphQL RSS Proxy example project is a serverless GraphQL API using AppSync, with an AWS Lambda function as a custom Query Resolver writting in Go.
-
Notify Slack about GitHub Releases using AWS Lambda
Do you use GitHub to manage your software projects and Slack for communication? With GitHub Webhooks and a simple AWS Lambda function, you can notify Slack channels about new releases of your projects.
-
AWS AppSync GraphQL API with Golang Lambda source
GraphQL has been a buzzword for a while now. I immediately fell in love with it when GitHub announced a public GraphQL API. A few weeks ago AWS introduced AppSync, a serverless GraphQL with support for custom data sources using AWS Lambda. Together with the recently introduced Go support for AWS Lambda, this is just awesome!
-
Deploy Golang Lambda with AWS Serverless Application Model
Amazon just recently announced native Golang support for AWS Lambda. Together with the Serverless Application Model (SAM) you can easily deploy your Golang code and create an HTTP interface using Amazon API Gateway.
-
68% Mechanical Keyboard with 68Keys.io
With the content on 68Keys.io, you can build your own custom 68% Mechanical Keyboard! Sounds great, right? You will find all information about the needed Circuit Board, Aluminium Case, and modified TMK firmware on the project’s site.
-
Use SequelPro with OpenPGP cards like a YubiKey
The YubiKey is a great OpenGPG smart card compatible hardware device. I use my YubiKey to store my private GnuPG key and for authenticating SSH connections. A few applications, however, don’t work with the OpenGPG card and require a file containing the key per default; Sequel Pro is one of them.
-
Use TypeScript and CircleCI v2 Workflows for NPM packages
If you love software workflows as much as I do, you should check out my basics for deploying NPM packages using TypeScript, CircleCI v2, and GitHub Releases.
-
AWS Lambda with MaxMind GeoLite2 IP database
The MaxMind GeoLite2 database is basically the standard solution when you need to get the geo information for an IP address. Together with the mmdb-reader NPM package you can easily deploy your own serverless API to AWS Lambda to lookup locations for IP addresses.
-
Serverless Analytics with Amazon Kinesis and AWS Lambda
AWS Lambda functions together with an Amazon Kinesis Stream offer a great way to process continuous information. I created an example project called Serverless Analytics to demonstrate this. You can use this as the starting point to create your very own Google Analytics clone and run it serverless and hopefully maintenance-free on Amazon.
-
Serverless DynamoDB Auto Scaling with CloudFormation
Since a few days, Amazon provides a native way to enable Auto Scaling for DynamoDB tables! Luckily the settings can be configured using CloudFormation templates, and so I wrote a plugin for serverless to easily configure Auto Scaling without having to write the whole CloudFormation configuration.
-
Process Serverless CloudFormation Stack Output
When you use a serverless environment for your service (and you should!), chances are high you might be using the Serverless framework and may end up in a situation like me with the need to process the AWS CloudFormation Stack Output after deploying the service.
-
Serverless Amazon SQS Worker with AWS Lambda
Have you ever wondered how to process messages from SQS without maintaining infrastructure? Amazon Web Services perfectly support SNS as a trigger for AWS Lambda functions, but with SQS you have to find a custom solution. This tutorial will show an experimental setup using Serverless to read messages from an SQS queue and build auto-scaling worker processes.
-
Serverless Alexa skill for Amazon Echo with AWS Lambda
If you read my first article about Amazon Alexa and AWS Lambda, you already know how to deploy a custom Alexa skill using Apex. With this article, you will learn how to use the Serverless framework to deploy a function to AWS Lambda and invoke it with your Amazon Echo using voice commands.
-
In Software, you don't plan for the Happy Path
It’s a recurring task in software development to forecast the amount of time something will take. There are Roadmap Meetings, Sprint Planning Meetings or even the spontaneous estimates you must provide in the hallway. All of them require you to pull out your divining rod and predict the future.
-
Custom Alexa skill for Amazon Echo with AWS Lambda
After watching all Mr. Robot episodes, I somehow felt the need to buy an Amazon Echo and get introduced to Alexa. Luckily Amazon sent me an invite to buy Echo just a couple of days before Christmas and so I got the perfect gift for myself and an awesome reason to spend some time coding during the Christmas holidays.
-
Manage notes from the command line with CLI Notes
On the past few friday evenings I started to write a side-project to get going with server and client development using Go. The result is the CLI Notes project for managing text notes from the command line. All code for hosting the API server and building the needed client application is available at GitHub using the GPL license
-
Host a Golang Slack bot as a worker on Heroku with hanu
After attending a talk at the GitHub Universe 2016 about Hubot, I felt the need to write a little
Go
library to speed up my process of creating bots for Slack. With hanu you can get started with the buzzword ChatOps in seconds. The final bot will be running on Heroku using a worker dyno, but of course this works fine on your local machine as well. -
Publish Go binary to Amazon S3 and Homebrew
After the setup of a go command line tool with Cobra it’s now time to release it to the public and publish it to Homebrew for easy installation on MacOS. Together with the steps to use AWS S3, CloudFront and SSL Certificate Manager for easy web hosting it’s a pretty neat setup for your Homebrew application formula and go binary.
-
Create a Golang CLI application with Cobra and goxc
Cobra is an awesome and widely used library and generator for Command Line applications written in Go. Together with goxc you can easily create a neat setup to get started with CLI interactions.
-
Use Golang at Heroku and free SSL from CloudFlare.com
It only takes a couple of minutes to deploy a go application to a free Heroku dyno, use a custom domain name and enable free SSL using CloudFlare. If you still have some seconds left - and you will - it’s dead simple to add Prometheus metrics as well.
-
Hosting on AWS S3, CloudFront and SSL Certificate Manager
It’s not a secret you can easily host any static website on Amazon S3 without cryptic configuration. When you add CloudFront for HTTPS delivery and the Amazon Certificate Manager for free SSL certificates you will get a neat setup.
-
How to build static web sites with Express, SASS and Jade
The release of a static website, no matter of which complexity, always comes with the question of how? Of course nobody likes to write plain HTML and CSS, or use a system without the possibility to include and re-use common lines of code.