5 Things to Know Before Using Kafka Streams
The Kafka Streams API has been around since Apache Kafka v0.10 and as the adoption of Kafka booms, so does Kafka Streams. The Streams library enables developers to create distributed processing...
View ArticleUsing Directives in Scaled Apollo GraphQL
A bit ago I wrote about scaling an Apollo GraphQL Server using schema federation. Read that here. Directives are basically annotations that can be added to any line of a schema, which start up some...
View ArticleCreating a custom DJI Drone Controller App: Part 1
Introduction Working with my current client has given me the incredible opportunity to program a drone path using the DJI SDK and iOS. I wanted to show a quick walkthrough of how to get setup to...
View ArticleBuilding a Scalable Terraform Project Framework
In this post I will be introducing a framework we have developed for managing Terraform projects, which helps us keep our code reusable and consistent across environments. This post assumes you are...
View ArticleMigrating to an Event-Driven System
Unless you have been granted the golden ticket to greenfield development, there isn’t a hard and fast approach to migrating to an Event-Driven System. However, there are designs, technologies, best...
View ArticleDeploying Azure Functions with Tekton CI/CD
Tekton is a set of shared, open source components for building CI/CD systems and a part of the new Continuous Delivery Foundation. While still in early stages, there is significant investment in the...
View ArticleHashiConf ‘19 Recap
With HashiConf 2019 wrapping up, I’d like to take a moment to review some of the big announcements HashiCorp has made. The most notable announcements centered around the general release of Terraform...
View ArticleSome Command Line Tools for AWS
I’ve been working a lot in AWS lately and while I like the tech stack, going through the console to do stuff is really annoying to a command-line junkie such as myself. I could cook up my own scripts...
View ArticleDesign Considerations for CI/CD Pipelines
When developing a new application, teams often take a close look to design application architecture, mitigate security concerns, address non-functional requirements, and plan delivery around critical...
View ArticleLocal Testing for GCP Cloud Functions
It’s easy to write Google Cloud Functions in Python. The trick to is put a function that takes a single object in a file called main.py. Their example is simply: def hello_world(request): """Responds...
View ArticleRefreshing AWS Access Token with Amplify and Axios
Authentication is one of those foundational pieces of your application that can be complex if your requirements don’t fit some predetermined mold. For that reason, I am aiming to provide you a quick...
View ArticleNew Year’s Resolution: Spotless Code
As your team enters the new year fresh off of a “holiday reboot”, broaden your next retrospective to look at the previous year as a whole. What went well? Where did things fall short? What will you...
View ArticleValidating Terraform Plans using Open Policy Agent
When developing infrastructure as code using terraform, it can be difficult to test and validate changes without executing the code against a real environment. The feedback loop between writing a line...
View ArticleKeeping Secrets Out of Terraform State
There are many instances where you will want to create resources via Terraform with secrets that you just don’t want anyone to see. These could be IAM credentials, certificates, RDS DB credentials,...
View ArticleAdd a custom object to your Liquibase diff
Adding a custom object to your liquibase diff is a pretty simple two step process. Create an implementation of DatabaseObject Create an implementation of SnapshotGenerator In my case I wanted to add...
View ArticleAndroid Development for iOS Developers
Android development has greatly improved since the early days. Maybe you tried it out when Android development was done in Eclipse, emulators were slow and buggy, and Java was the required language....
View ArticleModern Development Environment for C++: Part 1
As an experienced Java (or C#, or Python, or any modern language) developer, the entire C/C++ ecosystem may appear, at best, somewhat drab and, at worst, maybe even dilapidated. The tools are...
View ArticleLarge Data Migrations Django
Been working with a Django project with a large dataset and wanted to insert a bunch of inter-related data in a migration. Where Django has support for data migrations via the migration framework, it...
View ArticleLocal WordPress Development with Docker
For the past couple of months I’ve been working on Object Partners’ new WordPress site and I’ve learned a couple of things about doing WordPress development that I thought would be helpful to share....
View ArticleUsing Spring Beans in a Kafka Streams ExceptionHandler
There are many things to know before diving into Kafka Streams. If you haven’t already, check out these 5 things as a starting point. Bullet 2 mentions designing for exceptions. Ironically, this seems...
View Article