56,966 blogs · [ { "id": "01a087db-2ff8-71e0-8c2b-ec98a6502c37", "title": "The Organization of the Future: Smaller Teams, Harder Constraints", "url": "https://sanderknape.com/2026/04/organization-future-smaller-teams-harder-constraints/", "published_at": "2026-04-07T09:00:00+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98a68db10a", "title": "The Engineer of the Future: From Builder to Orchestrator", "url": "https://sanderknape.com/2026/04/engineer-future-builder-to-orchestrator/", "published_at": "2026-04-07T08:00:00+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98a764eef1", "title": "Engineering Is Moving Up the Stack", "url": "https://sanderknape.com/2026/04/engineering-moving-up-the-stack/", "published_at": "2026-04-07T07:00:00+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98a79dba07", "title": "Terraform 'data source will be read during apply' messages - What is it and how to fix", "url": "https://sanderknape.com/2024/11/terraform-data-source-read-during-apply-messages-fix/", "published_at": "2024-11-09T10:43:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98a872725f", "title": "Measure your golden signals with GKE Managed Prometheus and the nginx-ingress", "url": "https://sanderknape.com/2022/05/measure-golden-signals-gke-managed-prometheus-nginx-ingress/", "published_at": "2022-05-23T06:47:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98a968677e", "title": "Shift left AWS tag enforcement with Terraform and tfsec", "url": "https://sanderknape.com/2021/05/shift-left-aws-tag-enforcement-terraform-tfsec/", "published_at": "2021-05-03T19:03:01+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98a96bf938", "title": "Go crazy with GitHub Actions", "url": "https://sanderknape.com/2021/01/go-crazy-github-actions/", "published_at": "2021-01-13T14:32:12+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98aa31347a", "title": "A Serverless Payment Workflow using AWS Lambda and the AWS CDK", "url": "https://sanderknape.com/2020/12/serverless-payment-workflow-lambda-cdk/", "published_at": "2020-12-15T15:38:12+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98aa695973", "title": "Nuances around centralized platform teams", "url": "https://sanderknape.com/2020/11/nuances-around-centralized-platform-teams/", "published_at": "2020-11-20T11:49:11+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98aad390f3", "title": "Using Amazon Cognito JWTs to authenticate with an Amazon HTTP API", "url": "https://sanderknape.com/2020/08/amazon-cognito-jwts-authenticate-amazon-http-api/", "published_at": "2020-08-02T14:29:33+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98ab175769", "title": "From toil to self-service: automate what matters", "url": "https://sanderknape.com/2020/06/from-toil-self-service-automate-matters/", "published_at": "2020-06-22T09:44:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98ab837d77", "title": "Deploy your pull requests with GitHub Actions and GitHub Deployments", "url": "https://sanderknape.com/2020/05/deploy-pull-requests-github-actions-deployments/", "published_at": "2020-05-06T10:49:31+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98ac2860a4", "title": "Why it's great to write blog posts", "url": "https://sanderknape.com/2020/04/why-great-write-blog-posts/", "published_at": "2020-04-17T04:32:55+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98ac98376b", "title": "Running self-hosted GitHub Actions runners in your Kubernetes cluster", "url": "https://sanderknape.com/2020/03/self-hosted-github-actions-runner-kubernetes/", "published_at": "2020-03-16T07:23:33+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98acc03d39", "title": "Building a static serverless website using S3 and CloudFront", "url": "https://sanderknape.com/2020/02/building-a-static-serverless-website-using-s3-cloudfront/", "published_at": "2020-02-12T17:25:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98ad33f57f", "title": "Roundup of the most important pre-re:Invent 2019 releases - so far", "url": "https://sanderknape.com/2019/11/most-important-pre-reinvent-releases/", "published_at": "2019-11-25T09:04:24+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98ad9b46b8", "title": "Five ways to enable developer autonomy in AWS", "url": "https://sanderknape.com/2019/07/five-ways-enable-developer-autonomy-aws/", "published_at": "2019-07-23T10:00:00+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98ae942584", "title": "Installing private Git repositories through npm install in Docker", "url": "https://sanderknape.com/2019/06/installing-private-git-repositories-npm-install-docker/", "published_at": "2019-06-17T11:30:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98af362291", "title": "Building serverless applications with the AWS CDK - and testing them locally", "url": "https://sanderknape.com/2019/05/building-serverless-applications-aws-cdk/", "published_at": "2019-05-31T14:35:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b027fd88", "title": "Improving Kubernetes deployments with Helm", "url": "https://sanderknape.com/2019/03/improving-kubernetes-deployments-helm/", "published_at": "2019-03-15T20:47:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b09f9228", "title": "Using Kubernetes Helm to push ConfigMap changes to your Deployments", "url": "https://sanderknape.com/2019/03/kubernetes-helm-configmaps-changes-deployments/", "published_at": "2019-03-07T06:47:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b13007f3", "title": "Automated deployments to Kubernetes with GitLab", "url": "https://sanderknape.com/2019/02/automated-deployments-kubernetes-gitlab/", "published_at": "2019-02-28T11:47:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b213680b", "title": "Blocking account-wide creation of public S3 buckets through a CloudFormation custom resource", "url": "https://sanderknape.com/2018/11/blocking-account-wide-creation-public-s3-buckets-cloudformation-custom-resource/", "published_at": "2018-11-16T15:25:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b2696ff0", "title": "How to easily test your AWS IAM credentials locally", "url": "https://sanderknape.com/2018/09/easily-test-aws-iam-credentials-locally/", "published_at": "2018-09-02T16:30:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b35f6633", "title": "Two years with CloudFormation: lessons learned", "url": "https://sanderknape.com/2018/08/two-years-with-cloudformation-lessons-learned/", "published_at": "2018-08-09T10:43:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b40a242c", "title": "The hidden challenges of Serverless: from VM to function", "url": "https://sanderknape.com/2018/08/hidden-challenges-serverless-vm-function/", "published_at": "2018-08-02T10:29:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b4c2d417", "title": "How to manage any kind of secret with AWS Secrets Manager", "url": "https://sanderknape.com/2018/07/manage-custom-secrets-aws-secrets-manager/", "published_at": "2018-07-07T18:04:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b4dda147", "title": "Secret management design decisions: theory plus an example", "url": "https://sanderknape.com/2018/03/secret-management-design-decisions-theory-plus-an-example/", "published_at": "2018-03-08T20:29:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b5b11d49", "title": "Comparing AWS SAM with the Serverless framework", "url": "https://sanderknape.com/2018/02/comparing-aws-sam-with-serverless-framework/", "published_at": "2018-02-22T18:39:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b6187c91", "title": "Creating a serverless API using AWS API Gateway and DynamoDB", "url": "https://sanderknape.com/2017/10/creating-a-serverless-api-using-aws-api-gateway-and-dynamodb/", "published_at": "2017-10-14T12:54:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b685cfb9", "title": "A custom CloudFormation resource example for CodeDeploy", "url": "https://sanderknape.com/2017/08/custom-cloudformation-resource-example-codedeploy/", "published_at": "2017-08-17T19:25:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b6dd8f38", "title": "Using pre-signed URLs to upload a file to a private S3 bucket", "url": "https://sanderknape.com/2017/08/using-pre-signed-urls-upload-file-private-s3-bucket/", "published_at": "2017-08-08T16:12:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b75d769f", "title": "CloudFormation StackSets: automated cross-account/region deployments", "url": "https://sanderknape.com/2017/07/cloudformation-stacksets-automated-cross-account-region-deployments/", "published_at": "2017-07-26T17:53:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b8246dc7", "title": "Integrating ReactJS with the Google Maps widget", "url": "https://sanderknape.com/2017/07/integrating-reactjs-google-maps-widget/", "published_at": "2017-07-10T18:25:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b8cd34dd", "title": "Building a serverless website in AWS", "url": "https://sanderknape.com/2017/05/building-a-serverless-website-in-aws/", "published_at": "2017-05-01T17:25:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b95cefe3", "title": "Use Infrastructure as Code for automated security in the deployment pipeline", "url": "https://sanderknape.com/2017/05/infrastructure-as-code-automated-security-deployment-pipeline/", "published_at": "2017-05-01T17:25:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98b990b073", "title": "Dynamic image generation with AWS API Gateway and Lambda", "url": "https://sanderknape.com/2017/02/dynamic-image-generation-with-aws-api-gateway-and-lambda/", "published_at": "2017-02-21T18:49:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98ba4c2a24", "title": "Getting started with AWS Cognito", "url": "https://sanderknape.com/2017/02/getting-started-with-aws-cognito/", "published_at": "2017-02-04T21:32:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98bb0b6a95", "title": "Securing your server's SSH configuration", "url": "https://sanderknape.com/2016/11/securing-your-server-ssh-configuration/", "published_at": "2016-11-06T10:43:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98bbd6eff8", "title": "Get insight into your server with Datadog", "url": "https://sanderknape.com/2016/10/insight-server-datadog/", "published_at": "2016-10-09T15:44:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98bc9107c0", "title": "Integration tests with Travis CI", "url": "https://sanderknape.com/2016/09/integration-tests-travis-ci/", "published_at": "2016-09-20T17:46:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98bd4d9338", "title": "Using Let's Encrypt for free automated SSL certificates", "url": "https://sanderknape.com/2016/09/lets-encrypt-automated-ssl-certificates/", "published_at": "2016-09-01T11:07:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98be3d14b5", "title": "Multi-datacenter container orchestration with Nomad and Consul", "url": "https://sanderknape.com/2016/08/nomad-consul-multi-datacenter-container-orchestration/", "published_at": "2016-08-26T17:17:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98be8725d4", "title": "Getting a Qualys SSL Labs A+ rating with Nginx", "url": "https://sanderknape.com/2016/06/getting-ssl-labs-rating-nginx/", "published_at": "2016-06-19T10:01:02+00:00" }, { "id": "01a087db-2ff8-71e0-8c2b-ec98bee91ae8", "title": "About", "url": "https://sanderknape.com/about/", "published_at": null } ] posts Claim your blog
Back to sanderknape.com
Blog · corpus.blog/blogs/sanderknape.com/posts

sanderknape.com

sanderknape.com

2026

2024

2022

2021

2020

2019

2018

2017

2016

Undated