<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on Brave New Geek</title><link>https://bravenewgeek.com/posts/</link><description>Recent content in Posts on Brave New Geek</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 08 May 2025 09:12:33 -0600</lastBuildDate><atom:link href="https://bravenewgeek.com/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>What is Koreo?</title><link>https://bravenewgeek.com/what-is-koreo/</link><pubDate>Thu, 08 May 2025 09:12:33 -0600</pubDate><guid>https://bravenewgeek.com/what-is-koreo/</guid><description>&lt;h2 id="the-platform-engineering-toolkit-for-kubernetes"&gt;The platform engineering toolkit for Kubernetes&lt;/h2&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://bravenewgeek.com/wp-content/uploads/2025/05/og-image-1024x538.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Last month we open sourced &lt;a href="https://koreo.dev"&gt;Koreo&lt;/a&gt;, our “platform engineering toolkit for Kubernetes.” Since then, we’ve seen a lot of interest from folks in the platform engineering and DevOps space. We’ve also gotten a lot of questions from people trying to better understand how Koreo fits into an already crowded landscape of Kubernetes tools. Koreo is a fairly complex tool, so it can be difficult to quickly grasp just what exactly it is_,_ what problems it’s designed to solve, and how it compares to other, similar tools. In this post, I want to dive into these topics and also discuss the original motivation behind Koreo.&lt;/p&gt;</description></item><item><title>Controller-Driven Infrastructure as Code</title><link>https://bravenewgeek.com/controller-driven-infrastructure-as-code/</link><pubDate>Wed, 19 Mar 2025 14:36:25 -0600</pubDate><guid>https://bravenewgeek.com/controller-driven-infrastructure-as-code/</guid><description>&lt;h2 id="harnessing-the-kubernetes-resource-model-for-modern-infrastructure-management"&gt;Harnessing the Kubernetes Resource Model for modern infrastructure management&lt;/h2&gt;
&lt;p&gt;Infrastructure as Code (IaC) revolutionized how we manage infrastructure, enabling developers to define resources declaratively and automate their deployment. However, tools like Terraform and CloudFormation, despite their declarative configuration, rely on an &lt;em&gt;operation-centric&lt;/em&gt; model, where resources are created or updated through one-shot commands.&lt;/p&gt;
&lt;h3 id="the-evolution-of-iac-from-operations-to-controllers"&gt;The evolution of IaC: From operations to controllers&lt;/h3&gt;
&lt;p&gt;In contrast, Kubernetes introduced a new paradigm with its &lt;a href="https://kubernetes.io/docs/concepts/architecture/controller/"&gt;controller pattern&lt;/a&gt; and the &lt;a href="https://github.com/kubernetes/design-proposals-archive/blob/main/architecture/resource-management.md"&gt;Kubernetes Resource Model&lt;/a&gt; (KRM). This &lt;em&gt;resource-centric&lt;/em&gt; approach to APIs redefines infrastructure management by focusing on desired state rather than discrete operations. Kubernetes controllers continuously monitor resources, ensuring they conform to their declarative configurations by performing actions to move the actual state closer to the desired state, much like a human operator would. This is known as a &lt;em&gt;control loop&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>Platform Engineering as a Service</title><link>https://bravenewgeek.com/platform-engineering-as-a-service/</link><pubDate>Thu, 14 Nov 2024 13:47:29 -0700</pubDate><guid>https://bravenewgeek.com/platform-engineering-as-a-service/</guid><description>&lt;p&gt;Like most industry jargon, “DevOps” means a lot of things to a lot of different people. While many folks view it as specific to certain tooling or practices, such as CI/CD or Infrastructure as Code (IaC), I’ve always viewed it as an organizational model for how software is built and delivered. In particular, my interpretation is that DevOps is about shifting more responsibilities “left” onto developers, moving away from the more traditional “throw it over the wall” approach to IT operations. No doubt this encompasses tooling or practices like CI/CD and IaC, which are responsibilities that developers now shoulder, perhaps with the support of dev tools, productivity, or enablement teams—some companies just call this the “DevOps” team.&lt;/p&gt;</description></item><item><title>Deployment-Driven Development</title><link>https://bravenewgeek.com/deployment-driven-development/</link><pubDate>Mon, 11 Nov 2024 15:57:13 -0700</pubDate><guid>https://bravenewgeek.com/deployment-driven-development/</guid><description>&lt;p&gt;&lt;a href="https://bravenewgeek.com/wp-content/uploads/2024/11/pipeline.png"&gt;&lt;img loading="lazy" src="https://bravenewgeek.com/wp-content/uploads/2024/11/pipeline.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Most people use “DDD” to refer to &lt;em&gt;Domain-Driven Design&lt;/em&gt;, which is a useful tool for thinking about API boundaries and system architecture. It provides a way to map a business problem into software. At &lt;a href="https://realkinetic.com"&gt;Real Kinetic&lt;/a&gt;, we regularly help our clients utilize Domain-Driven Design as well as other strategies to architect their systems, avoid some of the pitfalls of DDD, and build an effective foundation for designing software. But &lt;em&gt;this&lt;/em&gt; DDD only speaks to one small aspect of building and shipping software.&lt;/p&gt;</description></item><item><title>Automating Infrastructure as Code with Vertex AI</title><link>https://bravenewgeek.com/automating-infrastructure-as-code-with-vertex-ai/</link><pubDate>Tue, 05 Nov 2024 15:23:09 -0700</pubDate><guid>https://bravenewgeek.com/automating-infrastructure-as-code-with-vertex-ai/</guid><description>&lt;p&gt;&lt;a href="https://bravenewgeek.com/wp-content/uploads/2024/11/konfigurate_ai.gif"&gt;&lt;img loading="lazy" src="https://bravenewgeek.com/wp-content/uploads/2024/11/konfigurate_ai.gif"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A lot of companies are trying to figure out how AI can be used to improve their business. Most of them are struggling to not just implement AI, but to even find use cases that aren’t contrived and actually add value to their customers. We recently discovered a compelling use case for AI integration in our &lt;a href="https://konfigurate.com/?utm_source=bravenewgeek.com&amp;amp;utm_campaign=vertex-ai"&gt;Konfigurate platform&lt;/a&gt;, and we found that implementing generative AI doesn’t require a great deal of complexity. I’m going to walk you through what we learned about integrating an AI assistant into our production system. There’s a ton of noise out there about what you “need” to integrate AI into your product. The good news? You don’t need much. The bad news? It took too much time sifting through nonsense to find what actually helps deliver value with AI.&lt;/p&gt;</description></item><item><title>Understanding Konfig’s Opinionation</title><link>https://bravenewgeek.com/understanding-konfigs-opinionation/</link><pubDate>Tue, 11 Jun 2024 13:59:57 -0600</pubDate><guid>https://bravenewgeek.com/understanding-konfigs-opinionation/</guid><description>&lt;p&gt;In my &lt;a href="https://bravenewgeek.com/no-assembly-required-the-benefits-of-an-opinionated-platform/"&gt;last post&lt;/a&gt;, I talked about the benefits of an opinionated platform. An opinionated platform allows your engineers to focus on things that matter to your business, such as shipping and improving customer-facing products and services. This is in contrast to engineers spending substantial time on non-differentiating work like platform infrastructure. Rather than infrastructure architecture, developers can focus more on the product architecture. &lt;a href="https://konfigurate.com/?utm_source=bravenewgeek.com&amp;amp;utm_campaign=understanding-opinionation"&gt;Konfig&lt;/a&gt; is an opinionated platform which provides two key value drivers: 1) reducing the investment and total cost of ownership needed to have an enterprise cloud platform and 2) minimizing the time to deliver new software products.&lt;/p&gt;</description></item><item><title>No assembly required: the benefits of an opinionated platform</title><link>https://bravenewgeek.com/no-assembly-required-the-benefits-of-an-opinionated-platform/</link><pubDate>Thu, 23 May 2024 15:28:49 -0600</pubDate><guid>https://bravenewgeek.com/no-assembly-required-the-benefits-of-an-opinionated-platform/</guid><description>&lt;p&gt;&lt;img loading="lazy" src="https://bravenewgeek.com/wp-content/uploads/2024/05/assembly-1024x697.png"&gt;&lt;/p&gt;
&lt;p&gt;When you talk to a doctor about a medical issue they will often present you with all of the options but shy away from providing an unambiguous recommendation. When you talk to a lawyer about a legal matter they frequently do the same. While it’s important to understand your options and their trade-offs or associated risks, when you go to these specialists you are likely seeking the counsel of an experienced and knowledgeable expert in their field who can help you make an informed decision. What most people are probably looking for is the answer to “what would you, someone who knows a lot about this stuff, do if you were in this situation?” After all, many of us are probably capable of finding the options ourselves, but the difficult part is determining what the right course of action is for a particular situation.&lt;/p&gt;</description></item><item><title>How Konfig provides an enterprise platform with GitLab and Google Cloud</title><link>https://bravenewgeek.com/how-konfig-provides-an-enterprise-platform-with-gitlab-and-google-cloud/</link><pubDate>Mon, 29 Apr 2024 14:24:31 -0600</pubDate><guid>https://bravenewgeek.com/how-konfig-provides-an-enterprise-platform-with-gitlab-and-google-cloud/</guid><description>&lt;p&gt;&lt;img loading="lazy" src="https://bravenewgeek.com/wp-content/uploads/2024/04/konfig.png"&gt;&lt;/p&gt;
&lt;p&gt;In a &lt;a href="https://blog.realkinetic.com/security-maintainability-velocity-choose-one-cf9eb9533d71"&gt;previous post&lt;/a&gt;, I explained the fundamental competing priorities that companies have when building software: security and governance, maintainability, and speed to production. These three concerns are all in constant tension with each other. For companies either migrating to the cloud or beginning a modernization effort, addressing them can be a major challenge. When you’re unfamiliar with the cloud, building systems that are both secure and maintainable is difficult because you’re not in a position to make decisions that have long-lasting and significant impact—you just don’t know what you don’t know. One small misstep can result in a major security incident. A bad decision can take years to manifest a problem. As a result, these migration and modernization efforts often stall out as analysis paralysis takes hold.&lt;/p&gt;</description></item><item><title>Security, Maintainability, Velocity: Choose One</title><link>https://bravenewgeek.com/security-maintainability-velocity-choose-one/</link><pubDate>Wed, 17 Apr 2024 11:41:24 -0600</pubDate><guid>https://bravenewgeek.com/security-maintainability-velocity-choose-one/</guid><description>&lt;p&gt;There are three competing priorities that companies have as it relates to software development: security, maintainability, and velocity. I’ll elaborate on what I mean by each of these in just a bit. When I originally started thinking about this, I thought of it in the context of the “good, fast, cheap: choose two” &lt;a href="https://en.wikipedia.org/wiki/Project_management_triangle"&gt;project management triangle&lt;/a&gt;. But after thinking about it for more than a couple minutes, and as I related it to my own experience and observations at other companies, I realized that in practice it’s much worse. For most organizations building software, it’s more like security, maintainability, velocity: choose &lt;em&gt;one&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>Introducing Konfig: GitLab and Google Cloud preconfigured for startups and enterprises</title><link>https://bravenewgeek.com/introducing-konfig-gitlab-and-google-cloud-preconfigured-for-startups-and-enterprises/</link><pubDate>Thu, 04 Apr 2024 14:51:23 -0600</pubDate><guid>https://bravenewgeek.com/introducing-konfig-gitlab-and-google-cloud-preconfigured-for-startups-and-enterprises/</guid><description>&lt;p&gt;&lt;a href="https://realkinetic.com/"&gt;Real Kinetic&lt;/a&gt; helps businesses transform how they build and deliver software in the cloud. This encompasses legacy migrations, app modernization, and greenfield development. We work with companies ranging from startups to Fortune 500s and everything in between. Most recently, we finished helping Panera Bread migrate their e-commerce platform to Google Cloud from on-prem and led their transition to GitLab. In doing this type of work over the years, we’ve noticed a problem organizations consistently hit that causes them to stumble with these cloud transformations. Products like GCP, GitLab, and Terraform are quite flexible and capable, but they are sort of like the piles of Legos below.&lt;/p&gt;</description></item><item><title>Choosing Good SLIs</title><link>https://bravenewgeek.com/choosing-good-slis/</link><pubDate>Mon, 19 Feb 2024 14:11:17 -0700</pubDate><guid>https://bravenewgeek.com/choosing-good-slis/</guid><description>&lt;p&gt;&lt;img loading="lazy" src="https://bravenewgeek.com/wp-content/uploads/2024/02/dashboard-1024x671.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Transitioning from an on-prem environment to a cloud environment involves a lot of major shifts for organizations. One of those shifts is often around how we monitor the overall health of systems. The typical way to measure things like the availability, reliability, and performance of systems is with SLIs or &lt;a href="https://sre.google/sre-book/service-level-objectives/"&gt;Service Level Indicators&lt;/a&gt;. SLIs are a valuable tool both on-prem and in the cloud, but when it comes to the latter, I often see organizations carrying over some operational anti-patterns from their data center environment.&lt;/p&gt;</description></item><item><title>Cloud without Kubernetes</title><link>https://bravenewgeek.com/cloud-without-kubernetes/</link><pubDate>Mon, 12 Feb 2024 11:58:13 -0700</pubDate><guid>https://bravenewgeek.com/cloud-without-kubernetes/</guid><description>&lt;p&gt;&lt;img loading="lazy" src="https://bravenewgeek.com/wp-content/uploads/2024/02/Kubernetes-or-Cloud-Run-1024x683.jpeg"&gt;&lt;/p&gt;
&lt;p&gt;I think it’s safe to say Kubernetes has “won” the cloud mindshare game. If you look at the CNCF &lt;a href="https://landscape.cncf.io/"&gt;Cloud Native landscape&lt;/a&gt; (and manage to not go cross eyed), it seems like most of the projects are somehow related to Kubernetes. KubeCon is one of the fastest-growing industry events. Companies we talk to at Real Kinetic who are either preparing for or currently executing migrations to the cloud are centering their strategies around Kubernetes. Those already in the cloud are investing heavily in platform-izing their Kubernetes environment. Kubernetes competitors like Nomad, Pivotal Cloud Foundry, OpenShift, and Rancher have sort of just faded to the background (or simply pivoted to Kubernetes). In many ways, “cloud native” seems to be equated with “Kubernetes”.&lt;/p&gt;</description></item><item><title>Meeting notes lose value the moment you finish writing them—and it’s time to fix that</title><link>https://bravenewgeek.com/meeting-notes-lose-value-the-moment-you-finish-writing-them-and-its-time-to-fix-that/</link><pubDate>Fri, 10 Jun 2022 10:25:44 -0600</pubDate><guid>https://bravenewgeek.com/meeting-notes-lose-value-the-moment-you-finish-writing-them-and-its-time-to-fix-that/</guid><description>&lt;p&gt;I like to be prepared in meetings. In some ways it’s probably an innate part of my personality, but it also became more important to me as my role has changed throughout my career. In particular, the first time I became an engineering manager is when I started to become a more diligent notetaker and meeting preparer. I think this is largely because my job shifted from being output-centric to more people- and meeting-centric. I still took notes and prepared when I was a software engineer, but it was for a very different context and purpose. As an engineer, my work centered around code output. As a manager, my work instead centered around coordinating, following up, and supporting my team. If you’ve never worked as a manager before, this probably just sounds like paper-pushing, but it’s actually a lot of work—and important! The work product is just &lt;em&gt;different&lt;/em&gt; from that of an individual contributor.&lt;/p&gt;</description></item><item><title>SRE Doesn’t Scale</title><link>https://bravenewgeek.com/sre-doesnt-scale/</link><pubDate>Wed, 06 Oct 2021 09:44:55 -0600</pubDate><guid>https://bravenewgeek.com/sre-doesnt-scale/</guid><description>&lt;p&gt;&lt;a href="https://bravenewgeek.com/wp-content/uploads/2021/10/sre-book.jpeg"&gt;&lt;img loading="lazy" src="https://bravenewgeek.com/wp-content/uploads/2021/10/sre-book.jpeg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We encounter &lt;em&gt;a lot&lt;/em&gt; of organizations talking about or attempting to implement SRE as part of our consulting at Real Kinetic. We’ve even discussed and debated ourselves, ad nauseam, how we can apply it at our own product company, &lt;a href="https://witful.com/"&gt;Witful&lt;/a&gt;. There’s a brief, unassuming section in the &lt;a href="https://sre.google/sre-book/table-of-contents/"&gt;SRE book&lt;/a&gt; tucked away towards the tail end of &lt;a href="https://sre.google/sre-book/evolving-sre-engagement-model/"&gt;chapter 32&lt;/a&gt;, “The Evolving SRE Engagement Model.” Between the SLIs and SLOs, the error budgets, alerting, and strategies for handling change management, it’s probably one of the most overlooked parts of the book. It’s also, in my opinion, one of the most important.&lt;/p&gt;</description></item><item><title>Structuring a Cloud Infrastructure Organization</title><link>https://bravenewgeek.com/structuring-a-cloud-infrastructure-organization/</link><pubDate>Mon, 07 Dec 2020 11:21:46 -0600</pubDate><guid>https://bravenewgeek.com/structuring-a-cloud-infrastructure-organization/</guid><description>&lt;p&gt;Real Kinetic often works with companies just beginning their cloud journey. Many come from a conventional on-prem IT organization, which typically looks like separate development and IT operations groups. One of the main challenges we help these clients with is how to structure their engineering organizations effectively as they make this transition. While we approach this problem holistically, it can generally be looked at as two components: product development and infrastructure. One might wonder if this is still the case with the shift to DevOps and cloud, but as we’ll see, these two groups still play important and distinct roles.&lt;/p&gt;</description></item><item><title>We suck at meetings</title><link>https://bravenewgeek.com/we-suck-at-meetings/</link><pubDate>Tue, 10 Nov 2020 13:16:18 -0600</pubDate><guid>https://bravenewgeek.com/we-suck-at-meetings/</guid><description>&lt;p&gt;&lt;img loading="lazy" src="https://bravenewgeek.com/wp-content/uploads/2020/11/dilbert.gif"&gt;&lt;/p&gt;
&lt;p&gt;I’ve worked as a software engineer, manager, consultant, and business owner. All of these jobs have involved meetings. What those meetings look like has varied greatly.&lt;/p&gt;
&lt;p&gt;As an engineer, meetings typically entailed technical conversations with peers, one-on-ones with managers, and planning meetings or demos with stakeholders.&lt;/p&gt;
&lt;p&gt;As a manager, these looked more like quarterly goal-setting with engineering leadership, one-on-ones with direct reports, and decision-making discussions with the team.&lt;/p&gt;
&lt;p&gt;As a consultant, my day often consists of talking to clients to provide input and guidance, communicating with partners to develop leads and strategize on accounts, and meeting with sales prospects to land new deals.&lt;/p&gt;</description></item><item><title>Getting big wins with small teams on tight deadlines</title><link>https://bravenewgeek.com/getting-big-wins-with-small-teams-on-tight-deadlines/</link><pubDate>Mon, 02 Nov 2020 15:52:40 -0600</pubDate><guid>https://bravenewgeek.com/getting-big-wins-with-small-teams-on-tight-deadlines/</guid><description>&lt;p&gt;Part of what we do at Real Kinetic is give companies confidence to ship software in the cloud. Many of our clients are large organizations that have been around for a long time but who don’t always have much experience when it comes to cloud. Others are startups and mid-sized companies who may have some experience, but might just want another set of eyes or are looking to mature some of their practices. Whatever the case, one of the things we frequently talk to our clients about is the value of both serverless and managed services. We have found that these are critical to getting big wins with small teams on tight deadlines in the cloud. Serverless in particular has been key to helping clients get some big wins in ways others didn’t think possible.&lt;/p&gt;</description></item><item><title>Continuous Deployment for AWS Glue</title><link>https://bravenewgeek.com/continuous-deployment-for-aws-glue/</link><pubDate>Thu, 15 Oct 2020 10:51:25 -0500</pubDate><guid>https://bravenewgeek.com/continuous-deployment-for-aws-glue/</guid><description>&lt;p&gt;&lt;a href="https://aws.amazon.com/glue"&gt;AWS Glue&lt;/a&gt; is a managed service for building ETL (Extract-Transform-Load) jobs. It’s a useful tool for implementing analytics pipelines in AWS without having to manage server infrastructure. Jobs are implemented using Apache Spark and, with the help of &lt;a href="https://docs.aws.amazon.com/glue/latest/dg/dev-endpoints.html"&gt;Development Endpoints&lt;/a&gt;, can be built using Jupyter notebooks. This makes it reasonably easy to write ETL processes in an interactive, iterative fashion. Once finished, the Jupyter notebook is converted into a Python script, uploaded to S3, and then run as a Glue job.&lt;/p&gt;</description></item><item><title>Implementing ETL on GCP</title><link>https://bravenewgeek.com/implementing-etl-on-gcp/</link><pubDate>Wed, 15 Jul 2020 15:53:17 -0500</pubDate><guid>https://bravenewgeek.com/implementing-etl-on-gcp/</guid><description>&lt;p&gt;ETL (Extract-Transform-Load) processes are an essential component of any data analytics program. This typically involves loading data from disparate sources, transforming or enriching it, and storing the curated data in a data warehouse for consumption by different users or systems. An example of this would be taking customer data from operational databases, joining it with data from Salesforce and Google Analytics, and writing it to an OLAP database or BI engine.&lt;/p&gt;</description></item><item><title>Using Google-Managed Certificates and Identity-Aware Proxy With GKE</title><link>https://bravenewgeek.com/using-google-managed-certificates-and-identity-aware-proxy-with-gke/</link><pubDate>Wed, 24 Jun 2020 11:31:44 -0500</pubDate><guid>https://bravenewgeek.com/using-google-managed-certificates-and-identity-aware-proxy-with-gke/</guid><description>&lt;p&gt;Ingress on Google Kubernetes Engine (GKE) uses a Google Cloud Load Balancer (GCLB). GCLB provides a single anycast IP that fronts all of your backend compute instances along with a lot of other &lt;a href="https://cloud.google.com/load-balancing"&gt;rich features&lt;/a&gt;. In order to create a GCLB that uses HTTPS, an SSL certificate needs to be associated with the ingress resource. This certificate can either be &lt;a href="https://cloud.google.com/load-balancing/docs/ssl-certificates/self-managed-certs"&gt;self-managed&lt;/a&gt; or &lt;a href="https://cloud.google.com/load-balancing/docs/ssl-certificates/google-managed-certs"&gt;Google-managed&lt;/a&gt;. The benefit of using a Google-managed certificate is that they are provisioned, renewed, and managed for your domain names by Google. These managed certificates can also be configured directly with GKE, meaning we can configure our certificates the same way we declaratively configure our other Kubernetes resources such as deployments, services, and ingresses.&lt;/p&gt;</description></item></channel></rss>