All blogs / DevOps / SRE / infrastructure
Brave New Geek
Introspections of a software engineer
DevOps / SRE / infrastructureDistributed systems / cloudSoftware / engineering practice
- Posts
- 114 from 1 Dec 2012 to 8 May 2025
- Posting
- now and then
- Kind
- personal blog
- Feed
- https://bravenewgeek.com/index.xml
2025 2
2024 10
- Platform Engineering as a Service
- Deployment-Driven Development
- Automating Infrastructure as Code with Vertex AI
- Understanding Konfig’s Opinionation
- No assembly required: the benefits of an opinionated platform
- How Konfig provides an enterprise platform with GitLab and Google Cloud
- Security, Maintainability, Velocity: Choose One
- Introducing Konfig: GitLab and Google Cloud preconfigured for startups and enterprises
- Choosing Good SLIs
- Cloud without Kubernetes
2022 1
2021 1
2020 10
- Structuring a Cloud Infrastructure Organization
- We suck at meetings
- Getting big wins with small teams on tight deadlines
- Continuous Deployment for AWS Glue
- Implementing ETL on GCP
- Using Google-Managed Certificates and Identity-Aware Proxy With GKE
- #94 06-22 Zero-Trust Security on GCP With Context-Aware Access
- #93 04-28 Liftbridge 1.0
- #92 02-05 Digitally Transformed: Becoming a Technology Product Company
- #91 01-03 Microservice Observability, Part 2: Evolutionary Patterns for Solving Observability Problems
2019 9
- #90 10-03 Microservice Observability, Part 1: Disambiguating Observability and Monitoring
- #89 09-17 What’s Going on with GKE and Anthos?
- #88 08-20 Serverless on GCP
- #87 04-26 Planting Perennials Next to Potholes
- #86 03-26 Security by Happenstance
- #85 01-29 Authenticating Stackdriver Uptime Checks for Identity-Aware Proxy
- #84 01-25 API Authentication with GCP Identity-Aware Proxy
- #83 01-24 Operations in the World of Developer Enablement
- #82 01-03 How to Level up Dev Teams
2018 11
- #81 09-14 Multi-Cloud Is a Trap
- #80 09-12 The Observability Pipeline
- #79 07-27 Introducing Liftbridge: Lightweight, Fault-Tolerant Message Streams
- #78 07-17 GCP and AWS: What’s the Difference?
- #77 04-18 Scaling DevOps and the Revival of Operations
- #76 04-11 More Environments Will Not Make Things Easier
- #75 02-06 There and Back Again: Why PaaS Is Passé (And Why It’s Not)
- #74 01-29 Plant Trees Before You Need the Shade
- #73 01-23 Building a Distributed Log from Scratch, Part 5: Sketching a New System
- #72 01-18 Building a Distributed Log from Scratch, Part 4: Trade-Offs and Lessons Learned
- #71 01-08 Building a Distributed Log from Scratch, Part 3: Scaling Message Delivery
2017 12
- #70 12-27 Building a Distributed Log from Scratch, Part 2: Data Replication
- #69 12-21 Building a Distributed Log from Scratch, Part 1: Storage Mechanics
- #68 11-30 Thrift on Steroids: A Tale of Scale and Abstraction
- #67 10-04 Software Is About Storytelling
- #66 08-02 FIFO, Exactly-Once, and Other Costs
- #65 07-24 Are We There Yet: The Go Generics Debate
- #64 06-30 You Cannot Have Exactly-Once Delivery Redux
- #63 06-29 Smart Endpoints, Dumb Pipes
- #62 06-03 Engineering Empathy
- #61 05-03 The Future of Ops
- #60 04-07 Pain-Driven Development: Why Greedy Algorithms Are Bad for Engineering Orgs
- #59 04-05 Decision Impact
2016 9
- #58 12-28 Fast Topic Matching
- #57 12-20 Take It to the Limit: Considerations for Building Reliable Systems
- #56 11-27 Benchmarking Commit Logs
- #55 11-16 You Are Not Paid to Write Code
- #54 04-14 Shit Rolls Downhill
- #53 02-27 Abstraction Considered Harmful
- #52 02-24 So You Wanna Go Fast?
- #51 02-13 Benchmarking Message Queue Latency
- #50 01-01 From the Ground Up: Reasoning About Distributed Systems in the Real World
2015 20
- #49 12-27 Breaking and Entering: Lose the Lock While Embracing Concurrency
- #48 12-15 Infrastructure Engineering in the 21st Century
- #47 12-12 Everything You Know About Latency Is Wrong
- #46 12-06 Probabilistic algorithms for fun and pseudorandom profit
- #45 09-22 You Own Your Availability
- #44 08-23 What You Want Is What You Don’t: Understanding Trade-Offs in Distributed Messaging
- #43 07-21 Designed to Fail
- #42 06-07 Service-Disoriented Architecture
- #41 06-03 Distributed Systems Are a UX Problem
- #40 05-20 Go Is Unapologetically Flawed, Here’s Why We Use It
- #39 05-05 Product Development is a Trust Fall
- #38 04-18 CAP and the Illusion of Choice
- #37 04-07 Writing Good Code
- #36 03-25 You Cannot Have Exactly-Once Delivery
- #35 03-08 If State Is Hell, SOA Is Satan
- #34 02-13 Stream Processing and Probabilistic Methods: Data at Scale
- #33 02-01 On Hireability and Recruiting
- #32 01-18 CS Literature of the Day
- #31 01-10 Fast, Scalable Networking in Go with Mangos
- #30 01-02 Benchmark Responsibly
2014 13
- #29 12-06 Not Invented Here
- #28 11-12 Sometimes Kill -9 Isn’t Enough
- #27 11-01 From Mainframe to Microservice: An Introduction to Distributed Systems
- #26 10-21 Scaling Shared Data in Distributed Systems
- #25 09-24 Understanding Consensus
- #24 08-28 The Sharing Economy: A Race to the Bottom
- #23 07-22 Iris Decentralized Cloud Messaging
- #22 07-07 Dissecting Message Queues
- #21 06-29 A Look at Nanomsg and Scalability Protocols (Why ZeroMQ Shouldn’t Be Your First Choice)
- #20 06-11 Distributed Messaging with ZeroMQ
- #19 05-27 Using Make with React and RequireJS
- #18 05-21 Building User Interfaces with React
- #17 03-08 Real-Time Client Notifications Using Redis and Socket.IO
2013 9
- #16 12-09 No More Ninjas
- #15 09-07 The Art of Software
- #14 06-10 Discipline in Prototyping
- #13 06-09 Productivity Over Process
- #12 06-08 How is Software Valued?
- #11 03-19 Bluetooth Blues
- #10 01-05 Implementing Spring-like Classpath Scanning in Android
- #9 01-04 Introducing InfinitumFramework.com
- #8 01-01 He Sed, She Sed
2012 7
- #7 12-27 Modularizing Infinitum: A Postmortem
- #6 12-19 The Importance of Being Idle
- #4 12-17 Proxies: Why They’re Useful and How They’re Implemented
- #5 12-17 Dalvik Bytecode Generation
- #3 12-04 A Look at Spring’s BeanFactoryPostProcessor
- #2 12-02 Probabilistic Primality Testing
- #1 12-01 Solving the Referential Integrity Problem