Git ‘Er Done!
Git Workflows That Help You Move Faster
Gitflow, Forking, Feature Branch, and Centralized are all Git workflows. But which one can help you deliver stable working software the fastest? In this post, we’re going to di...
Git Workflows That Help You Move Faster
Gitflow, Forking, Feature Branch, and Centralized are all Git workflows. But which one can help you deliver stable working software the fastest? In this post, we’re going to di...
What it is, where it falls short and how we can fix it
If you are a software developer or if you work with software developers, chances are you have at least heard of DevOps. But, what does it really mean? What is the state of DevOp...
What it is, what it does, and how to implement it
Software development automation != Continuous Integration (CI). However, the former is a component of the latter. Here, we focus specifically on CI: what it is, what it does, w...
Don't forget to scale down for software development
Somehow we commonly forget about supporting the software developers who are responsible for the future development of the software product. We get so wrapped up in making sure ...
Techniques For Managing Terraform State and Modules
Terraform is a great tool for developing Infrastructure as Code (IaC). But it’s not without a few gotchas, specifically the management of Terraform state and reusable Terraform...
About a month or so back, a (self proclaimed) Junior Developer asked me, “In your opinion, what is the difference between a Junior Developer and a Senior Developer?” That was a...
Sometimes Your Container Needs Friend
Sidecar containers can be a great way to provide atomic Deployments that bind containers together. But like all things, sidecar containers can have drawbacks, like increased dep...
Do you really need to jump aboard?
It seems like the entire software development world has jumped on the microservices train. But the decision to do so is not without its consequences.
Celebrate success, not the appearance of success
Dressing failures up like successes or worse, not being able to tell the difference between success and failure is a recipe for disaster and a sign of a dysfunctional organizat...
Transitioning from individual contributor to a manager
Breaking into management can be a tough nut to crack for any professional. However, for technology workers, the path to people management comes with some unique challenges.
Kubernetes has its own RBAC (Role-Based Access Control). But if you are in AWS, then there are also IAM roles with policies. If your Kubernetes containers need access to other A...
React Single Page Applications (SPAs) are great! But they do create a problem when you refresh a page on a path that’s different from the originating page or when you link direc...
In this post we dive deeper into why L2 cache can help performance and why Redis is a good choice. We also discuss the limitations of the free version of Redisson and why we im...
If you have heard of DevOps then you have probably also heard of Kubernetes. But what is Kubernetes? Why is it important and how can you get started with it? Read on to find out.
So, you want to run Kubernetes in AWS and it looks like Amazon’s Elastic Kubernetes Service is your golden ticket… Not so fast. There are a ton of gotchas. Let’s walk through a ...
Redis is fast, easy to manage and quick to deploy. So, let’s build a Hibernate L2 cache integration with Redis using the popular Java client, Jedis!
Unit testing, component testing, integration testing, acceptance testing, exploratory testing… You’ve heard the terms, maybe even practiced testing at various levels on the Test...
It’s easy to look at a metric like test coverage and equate high test coverage with high code quality. But it’s just not that simple. Test coverage and other “code quality” metr...
If you read our last post Secure Access Using SAML, OAuth and OIDC or if you have a decent understanding of OAuth and you’re looking at OpenID Connect like “Why do I need an ID ...
Does your organization use a single sign-on solution? Do you need to hook into it? Or maybe you want to allow your users to sign on with their Google login? Heck, even if you wa...
We discussed automated Terraform testing using Spock. We discussed zero-downtime deployments with autoscaling groups. Now, we’re going to discuss implementing automated Terraf...
Do you interact with external web services? Do you need to test in a controlled environment where those external services might not be available? If you answered “yes” then you...
A month ago, we discussed zero-downtime updates for autoscaling groups using Terraform. But we omitted capacity matching. This is the post that discusses how to do capacity matc...
Clone repository, run local build… build failure. It works on the build server. It also works on Grant’s workstation. But it doesn’t work for you. Does this sound familiar? If ...
For many modern programming languages, various levels of automated testing have been around for years. However, for Infrastructure as Code (IaC), and specifically Terraform, the...
Conventional wisdom used to be that different projects should exist in different version control repositories. But maybe that shouldn’t necessarily be the case. Monorepos not on...
Hosting your own web application server? Then you may have heard that autoscaling groups are pretty great. But what happens when you need to update the AMI or replace the under...
This past Thursday marked the 20th anniversary of the Agile Manifesto. And yet, 20 years later, there still seems to be a lot of confusion around what exactly it means to be “Ag...
Anyone who has worked with Terraform knows the pain associated with managing Terraform state. Things get even more interesting when factoring in disaster recovery (DR) for Terra...