AWS announced multi-attribute composite keys for DynamoDB global secondary indexes on November 19th . That's a lot of words, but what does it actually mean? It means it's easier to pull data out of DynamoDB in ways you hadn't planned initially, without a bunch of extra work. To fully explain why, I need to explain keys in DynamoDB. I'll assume you know that DynamoDB is a NoSQL database, that the…
AWS just released flat-rate plans for CloudFront and related services, wrapping together WAF, Route53, CloudFront Function, logging, and more. Sounds tempting, especially with a free tier. You can read more about AWS's announcement on their blog . Is it really worth it? AWS has announced four pricing tiers: Free, Pro ($15/month), Business ($200/month), and Premium ($1,000/month). Of course, each…
I completely missed that AWS added pull through cache rules for private ECR (Elastic Container Repository) repositories earlier this year. If you're an organization making use of publicly available container images this goes a long way towards helping you avoid throttling issues, accelerating deployments, and letting you have some confidence that the container versions you depend on will remain…
Last month, I tried out using Bun as a custom JavaScript Lambda runtime and was surprised by the performance difference between Bun and AWS's managed Node.js runtime. The Node runtime had a shorter cold start time, and the invocations had a shorter duration. The cold start times weren't surprising given AWS's caching and performance optimizations, but the difference in the invocation durations was…
I've previously tried out Lambda functions with a custom runtime using Deno , and it had great security and convenience benefits. But Deno isn't the only alternative to the Node.js runtime. Bun is a more recent entrant to the space, but it has an impressive number of features, including not requiring TypeScript to be transpiled, and it makes a lot of claims around speed. Bun also has everything…
Have you ever been on a team where it seemed like it took forever to get anything done? You had constant status meetings and could never seem to get a handle on what was being done. It's not an unusual situation, and it can have a variety of causes. How big was the team? Was it six or seven people? Maybe more? That could have been your problem. I was recently asked to propose a solution to…
Use AWS FIS with Lambda to practice chaos engineering & test resiliency. Learn how to set up experiments & simulate failures to build confidence in your serverless app.
Learn about the AWS Certified AI Practitioner beta exam from a Certification SME's perspective. Discover if this certification is suitable for your role, explore the exam structure, and find out how to prepare effectively.
Discover Amazon CodeCatalyst's standout feature: quality reports. Dig into the supported reports and setup without configuration or external tool integrations.
I spoke at Indy.Code() in Indianapolis, Indiana, earlier this month. I remember attending the first Indy.Code() several years ago and thinking, “I could give a talk here,” and it has finally happened. It was a great conference to give a talk at, and I’m very grateful to those who attended my talk and their questions! I recorded the talk and have shared that recording on YouTube . I also have my…
Discover the partitions within AWS that safeguard resources and ensure security. Learn about their distinct features, requirements, and potential future updates
Learn how to enhance security and streamline the deployment process from GitHub to AWS using OpenID Connect (OIDC). This article explains how to establish a trust relationship between AWS and GitHub, configure an IAM Role, and update GitHub Workflow to leverage OIDC for temporary credentials.
Learn how to reduce tightly-coupled services in serverless applications on AWS and discover the benefits of service discovery and how it can save time and effort in the development process
AWS has great services for building a resilient static website and it isn't difficult, the real challenge comes with deploying it through infrastructure as code
I recently tried out Plausible as an alternative to running my own Countly . With Plausible I was able to reduce the effort I needed to put in as well as my costs, the only trade-off was giving up some advanced capabilities I didn’t use. I like Plausible’s commitment to privacy, which is part of the driver behind avoiding using a SaaS service up to this point, as well as their price point. One…
This past week AWS announced Lambda Function URLs , public endpoints you can enable for Lambda functions to allow them to be invoked. These endpoints can be authorized with IAM, or have no authorization. These new endpoints are well suited to one-off endpoints that don’t require all the capabilities of API Gateway. These URLs are very well suited for use with webhooks. You can also use them to…
I’ve noticed people trying to return HTTP status codes from AWS Lambda functions when those functions are set up to receive events from SQS. That’s not necessarily “wrong”, but it really isn’t necessary. What is wrong is returning an object that tries to set the response status code to 500 and expecting SQS to retry the message. That is not how this works, you’re not working with API Gateway. AWS…
A coworker of mine recently was having issues with calling an AWS API Gateway he had deployed. He was getting responses but no Lambda functions were being executed. Not his Lambda Authorizer or the Lambda integrated to the endpoint. All that was happening was he got an HTTP 401 status code back and the HTTP body was {"message":"Unauthorized"} . No matter what he tried, he couldn’t get his Lambda…
Spotify’s Failed #SquadGoals Remember those super cool videos from Spotify on how they set up their agile teams? The ones that get you all excited for how smoothly agile can go? Turns out it doesn’t work as advertised and was never fully implemented. Introducing the AWS CDK public roadmap I am currently making use of the AWS Cloud Development Kit (CDK) and it is a phenomenal improvement over…
My favourite Git commit It’s worth it to put some effort into git commit messages, especially when the change is truly consequential. This article shows off an amazing git commit message that is for a single character change. Without the message, you would never have been able to understand why this one change was ever occurring and the consequences it has. It’s a master class on git commit…
All Pluralsight Content is Free in April Pluralsight has opened up its content for free in April. I’ve used their videos in the past and they have some good content. If you’re stuck at home and want to try and use some videos to improve your skills give Pluralsight a try, you have nothing to lose. If you’d like to use a referral link, here you go . Best Practices for Secondary Indexes with…
Ready for changes with Hexagonal Architecture An internal development group was tasked with building an application that would touch a wide variety of data sources across the entire business. Worse still, they knew their data sources would change. To handle this they developed their application using the layered approach of the Hexagonal Architecture, completely divorcing their business logic and…
GraphQL In Action: Introduction GraphQL has been gaining a lot of popularity in recent years, and some of that for good reason. Instead of pulling down massive models and hierarchies from a REST API you build a GraphQL query that returns to you only exactly what you want. Nothing more, nothing less. When it comes to mobile development that can be a huge benefit. This article is an excerpt from an…
Amazon and commercial open source in the cloud: It’s complicated The war between open source and Amazon/Insert Large Cloud Corporation Here is going to continue for a while. This article dives in and provides analysis and references on the different battles of the war and what the risks are. The article wraps up by discussing “The Commons” and relating the ongoing war to an issue generally seen…
Best Practices for Secondary Indexes with DynamoDB - CloudProse This is an excellent overview of AWS DynamoDB Secondary Index best practices. There’s not much else I can say; if you use DynamoDB make sure you at least skim this. It’s much easier to digest than AWS’s documentation. Opinion: The unspoken truth about managing geeks This opinion piece is all about managing people in IT. Depending on…
Supercharge your command line experience: GitHub CLI is now in beta If you work with GitHub and are frequently working in your terminal you may want to take a look at the GitHub CLI tool that is now in beta. It will let you view information about issues and pull requests associated with your repository. From there you can easily open a link to the item in your browser. Microsoft REST API…
Conference Talk Proposal Examples Speaking at conferences is a great way to help your career, it gets your name out there and helps you learn public speaking. Some companies have internal opportunities to give talks, and those are great for practice but eventually, you’ll need to step up to a larger audience. This article discusses the proposals one speaker has put out and the things they learned…
Clean Code concepts adapted for JavaScript Every example I can remember in Clean Code was in Java. That’s not necessarily an issue, but it doesn’t always translate cleanly to other languages, like JavaScript. That’s what this is. Examples of key concepts from Clean Code, but written in JavaScript. Name the Abstraction, Not the Data How you name things in your code is important; there is even an…
No, dynamic type systems are not inherently more open There is a battle between static and dynamic typing in the programming world, and the battle will likely always be there so long as humans write code. I maintain that both dynamic and static types have their place. This article pushes against one particular argument used for why dynamic types are better in systems where types are unknown.…
From 15,000 database connections to under 100: DigitalOcean’s tale of tech debt Tech debt can be a nasty thing, but when the scale of your application or infrastructure keeps growing that tech debt can turn into a many-headed hydra. DigitalOcean is a developer-focused cloud hosting provider and has been enjoying quite a bit of success, but that success meant their tech debt was getting out of…
Deming’s Rules of Management and Agile Methods This article lists out W. Edwards Deming’s 14 key principles for transforming business effectiveness and compares and relates them to the Agile Manifesto and other agile methodologies. It’s an interesting read if you’re on an agile team in any sort of leadership role. Ben Northrop - The Myth of Architect as Chess Master This is a relatively short…
Beware SAFe (the Scaled Agile Framework for Enterprise), an Unholy Incarnation of Darkness I’ve recently started on a project that is using SAFe, so this was an especially interesting article for me to read. I went through SAFe training last month and am expected to get my certification this month. I can see an understand a lot of the issues the author has run into. I’ve seen some of the same…
It’s been another one-article kind of week. Peacetime Productivity, Wartime Productivity When you have room to breathe and things are calm you can work your normal processes and just keep getting things done. But when something goes very wrong you need to shift your strategy. This article talks a little about this productivity dynamic and provides resources to find more information.
I started a new project this week so it’s been long and I’ve been busy. So here’s one good solid link. The Amazon Builders’ Library There are a lot of different concepts to try and keep track of when building applications. AWS has created a library focusing on architectural and continuous integration/continuous deployment topics, providing an easy reference point for finding information on these…
The Relationship Between Modularity and Polymorphism How much of your Object-Oriented theory do you remember? I don’t generally remember much of it and this article was a great refresher. It may have even gone into more detail than my OOP course in college did. OOP isn’t always important for everyone, but I know a couple of companies that are big on Clean Code and I’m sure they are at least…
Announcing the Bytecode Alliance: Building a secure by default, composable future for WebAssembly – Mozilla Hacks - the Web developer blog Recently the Bytecode Alliance was formed with Mozilla, Fastly, Intel, and Red Hat as founding members. The goal of the Alliance is to create standards and guide the development of WebAssembly outside the browser. By implementing “nano processes” with…
Addressing Technical Debt Let’s talk about technical debt. You have it, I guarantee it. Maybe you’re lucky and it isn’t much, but it is still there. It’s not necessarily your code. It could be your documentation. It could be that you’re not using the latest version of your programming language. It’s always something and it will keep piling on until it becomes an issue. Take time and address it.…
Technical Considerations to Help Scale Your Product It’s important to ensure you “right-size” your application. Scaling it to be too big too soon costs money, keeping it too small for too long costs you users. This article goes into what scaling means and how you should work on scaling an application from the cheapest options to the most expensive. Let’s Not Misuse Refactoring The word “refactor”…
How To Maximize Value at Tech Conferences (as an Introvert) Conferences can be nerve-wracking and draining for a lot of people. I know they are for me. This article discusses how to get the most value out of attending a conference. Announcing Distributed Application Runtime (Dapr), an open source project to make it easier for every developer to build microservice applications Dapr is a new runtime…
Rules of Thumb for Software Engineering There are plenty of great sources for details on programming guidelines, but it takes a bit of time to get through them. In the meantime, this article provides a great list that is short and will make your code better if you follow it. How to Unlock More Resilient Microservices by Being Idempotent Idempotence can be a major benefit for an application. For…
Don’t lead by example The title is a little misleading, it’s not that you shouldn’t lead by example. It’s that you need to chill out, set expectations, and be a part of the team. This article is a good read based on an engineer’s experience as a tech lead at Dropbox. Digging into Postgres’s Lesser Known Features Depending on your use-case you may not need to add Redis or Elasticsearch to your…
Hacktoberfest presented by DigitalOcean and DEV Hacktoberfest is here! Contribute to the open-source community during the month of October and receive a free t-shirt and stickers! Role Base Access Control (RBAC) Design For Microservices This article provides a brief overview of how one might implement role-based access control in a microservices application, including a diagram of the architecture…