Essays and field notes

Writing

Long-form essays, practical notes, and production-shaped learning from the Cloud Sandbox.

Browse Writing

63 entries in the Cloud Sandbox.

Year

2026

26 entries

Field note

Centralised AWS networking: what belongs in the network account?

A central AWS network account should own shared address planning, transit routing, central egress, inspection, hybrid connectivity and selected DNS infrastructure. Workload VPCs, application ingress and service-level network controls should normally remain with the accounts that operate those workloads.

27 Jul 2026 · about 27 minutes min read ·

Field note

AWS Control Tower: what it solves and why I chose not to use it

AWS Control Tower can establish and govern a multi-account landing zone using AWS Organizations, IAM Identity Center, CloudTrail, Config, Service Catalog and managed controls. bfstore chose a manually engineered landing zone to preserve explicit ownership, learning depth and a custom policy-testing workflow.

23 Jul 2026 · about 25 minutes min read ·

Field note

Getting AWS telemetry into a self-hosted observability platform

AWS telemetry does not emerge through one universal export path. Application signals can travel through OpenTelemetry, while CloudWatch metrics, managed-service logs, flow logs, CloudTrail and configuration evidence require different streaming, polling and durable-ingestion patterns.

18 Jul 2026 · about 30 minutes min read ·

Field note

DNS failover: where Route 53 failover routing earns its keep

Route 53 failover routing can redirect new DNS resolutions from a primary endpoint to a secondary endpoint. It is valuable when the secondary is independently usable, the health signal represents the service capability, and caching, data recovery, failback and network reachability have all been designed.

14 Jul 2026 · about 26 minutes min read ·

Field note

Route 53 Resolver endpoints: when you actually need them

Route 53 Resolver endpoints extend AWS DNS across hybrid, multi-cloud and external resolver boundaries. Inbound endpoints let other networks query AWS private DNS, while outbound endpoints let AWS forward selected namespaces to external DNS authorities.

10 Jul 2026 · about 25 minutes min read ·

Field note

Route 53 private hosted zones: DNS inside a VPC

Route 53 private hosted zones give selected resolver views a private DNS namespace. Their architecture depends on zone ownership, direct VPC associations or Route 53 Profiles, resolver-rule precedence, split-view behaviour, record design, caching, health, routing and operational evidence.

2 Jul 2026 · about 23 minutes min read ·

Field note

Threat modelling bfstore with STRIDE

A practical STRIDE threat model for bfstore’s checkout and delivery paths. The exercise begins with scope, assets, actors, data flows and explicit trust boundaries before turning threats into prioritised, testable security work.

24 Jun 2026 · about 23 minutes min read ·

Field note

Sizing Go services on Kubernetes: requests, limits and quotas

Kubernetes resource requests, limits, LimitRanges and ResourceQuotas solve different capacity problems. For Go services, those controls must also account for garbage collection, GOMEMLIMIT, container-aware GOMAXPROCS, sidecars, autoscaling and the difference between CPU throttling and memory termination.

23 Jun 2026 · about 24 minutes min read ·

Field note

KMS, cryptographic erasure, and ecommerce data

AWS KMS protects encryption keys, but erasure depends on key boundaries, data copies, recovery design and evidence that no usable route from ciphertext to plaintext remains.

22 Jun 2026 · about 28 minutes min read ·

Field note

Prepared statements and boring SQL safety

Prepared statements prevent SQL values from becoming executable query structure, but safe database access also requires controlled identifiers, explicit authorisation, least-privilege accounts, transactions, timeouts and careful handling of dynamic queries.

21 Jun 2026 · about 40 minutes min read ·

Field note

Transit Gateway: when VPC connectivity becomes a network architecture

AWS Transit Gateway turns many VPC and hybrid connections into a Regional routing architecture. Its attachments, route-table associations, route advertisements, segmentation, inspection paths and operational ownership determine which networks can communicate and how.

19 Jun 2026 · about 27 minutes min read ·

Field note

PrivateLink: private service connectivity without joining networks

AWS PrivateLink lets consumers reach a specific service through private endpoints without creating general routed connectivity between the consumer and provider VPCs. This changes the network contract from joining address spaces to publishing one controlled capability.

16 Jun 2026 · about 23 minutes min read ·

Field note

ALB vs NLB: choose the network layer before the AWS product

Application Load Balancer and Network Load Balancer solve different forwarding problems. Choosing between them begins with HTTP semantics, connection behaviour, TLS ownership, client identity, static addressing and private connectivity, not a product feature checklist.

12 Jun 2026 · about 28 minutes min read ·

Field note

NAT gateways: why private workloads still need an exit

Private workloads often need outbound access for container images, updates, external APIs and other dependencies. NAT gateways provide controlled IPv4 exits without creating direct inbound paths, but zonal, Regional, private and centralised models introduce different routing, availability, cost, capacity and observability decisions.

3 Jun 2026 · about 23 minutes min read ·

Field note

Public and private subnets are about routing, not privacy

In Amazon VPC, public and private describe subnet routing rather than workload confidentiality. A public subnet has a direct route to an internet gateway; a private subnet does not. Actual exposure depends on addressing, security controls, listeners and the complete network path.

27 May 2026 · about 23 minutes min read ·

Field note

IPAM: when address management becomes architecture

IP address management becomes an architectural concern once CIDR allocations span accounts, Regions, environments and network trust boundaries. Amazon VPC IPAM can encode allocation hierarchy, organisational ownership, compliance rules, overlap detection and capacity monitoring.

19 May 2026 · about 25 minutes min read ·

Field note

IPv6: addressing for a network that stopped pretending addresses were scarce

IPv6 expands an IP address from 32 to 128 bits, but the architectural change is larger than the number. Address planning moves away from squeezing hosts into tiny subnets and towards hierarchy, route control, workload identity, cloud-provider constraints and deliberate transition from IPv4.

6 May 2026 · about 25 minutes min read ·

Field note

Reserved subnet addresses across AWS, Azure and Google Cloud

The same IPv4 CIDR block does not provide the same assignable capacity across AWS, Azure and Google Cloud. Understanding provider-reserved addresses, range types, minimum subnet sizes and service consumption prevents deceptively small capacity mistakes.

22 Apr 2026 · about 20 minutes min read ·

Field note

Subnetting without memorising magic numbers

IPv4 subnetting does not require memorising a collection of disconnected masks and block sizes. Starting with capacity, powers of two and valid boundaries provides a repeatable method for designing CIDR allocations.

15 Apr 2026 · about 23 minutes min read ·

Field note

IPv4 from binary to CIDR

IPv4 subnetting becomes easier to reason about when addresses, masks and prefixes are understood as 32-bit binary values. This article builds from binary place values to CIDR ranges, subnet allocation, route aggregation and AWS VPC sizing.

2 Apr 2026 · about 25 minutes min read ·

Field note

SCPs, permission boundaries and IAM policies: who actually wins?

AWS authorization is not a contest between policy documents. Identity and resource policies provide grant paths, permissions boundaries limit individual IAM entities, SCPs and RCPs impose organisational ceilings, and applicable explicit denies determine the result.

17 Mar 2026 · about 18 minutes min read ·

Field note

Testing AWS SCPs instead of hoping they work

Service Control Policies can affect every governed identity and workflow using principals in their member-account scope. Testing must therefore verify intended denials, required permissions, complete service journeys, recovery paths and staged rollout.

17 Feb 2026 · about 18 minutes min read ·

Field note

Service Control Policies: guardrails, not permissions

AWS Service Control Policies define the maximum permissions available to affected principals in member accounts. They do not grant access. Used carefully, SCPs turn organisational invariants into tested, explainable and maintainable guardrails.

3 Feb 2026 · about 18 minutes min read ·

Field note

AWS accounts are architecture boundaries

An AWS account is not merely a billing container or a folder for resources. It creates boundaries around identity, administration, quotas, cost, data, change and failure, making account design one of the earliest architectural decisions in a multi-account platform.

19 Jan 2026 · about 14 minutes min read ·

Field note

AWS Organizations: design the organisation before the infrastructure

A multi-account AWS environment should begin with organisational boundaries, account responsibilities, policy inheritance and delegated administration. Networks, clusters and workloads become safer to build once the organisation around them has been designed.

5 Jan 2026 · about 18 minutes min read ·

Year

2025

7 entries

Field note

ITIL through an engineer's eyes

ITIL is often mistaken for ticket queues, change boards and process bureaucracy. Through an engineer's eyes, its more useful ideas concern services, value streams, operating responsibilities, incident learning, controlled change and continual improvement.

14 Dec 2025 · about 19 minutes min read ·

Field note

Multi-cloud without lowest-common-denominator architecture

Multi-cloud design should create consistent organisational boundaries, developer journeys and operating evidence without forcing AWS, Azure and Google Cloud into an artificial service model limited to the features they happen to share.

9 Nov 2025 · about 19 minutes min read ·

Field note

Platform observability: watching the machinery running the workloads

Application health depends on clusters, controllers, deployment systems, identity, networking, telemetry pipelines and shared services. Platform observability makes those dependencies visible through product promises, user journeys, control-plane signals and clear ownership.

21 Sep 2025 · about 16 minutes min read ·

Field note

Zero trust without the marketing fog

Zero trust replaces broad, location-based trust with explicit identity, bounded authority, protected communication, enforceable policy and evidence that access can be reviewed and withdrawn.

20 Jul 2025 · about 16 minutes min read ·

Field note

Backups aren't backups until you've restored them

A backup job proves that data was copied somewhere. Only a tested recovery path proves that the data, keys, configuration, dependencies and operating knowledge can recreate a usable service after failure.

18 May 2025 · about 16 minutes min read ·

Field note

Cloud governance without building a bureaucracy machine

Cloud governance should protect organisational boundaries, data, cost and reliability without turning every ordinary engineering decision into a ticket, meeting or manual approval. The strongest controls are clear, automated and built into supported delivery paths.

16 Mar 2025 · about 17 minutes min read ·

Field note

Blast radius: the architectural principle hiding everywhere

Blast radius describes the potential scope of impact that a failure, compromised identity, faulty deployment or operational mistake can reach before effective containment intervenes.

12 Jan 2025 · about 16 minutes min read ·

Year

2024

6 entries

Field note

Self-hosting platform tooling: control, cost and operational ownership

Self-hosting platform tools can improve control, portability and learning, but it also transfers availability, security, upgrades, recovery and support into the organisation. The software may be free; operational ownership is not.

17 Nov 2024 · about 27 minutes min read ·

Field note

SLOs: turning reliability into an engineering decision

Service-level objectives turn reliability from an abstract ambition into a measurable engineering decision. They define the user experience a service should provide, quantify acceptable failure and give teams a shared basis for balancing delivery with operational risk.

22 Sep 2024 · about 29 minutes min read ·

Field note

OpenTelemetry: instrument once, choose the backend later

OpenTelemetry separates application instrumentation from telemetry storage. Services can emit traces, metrics and logs through common APIs and protocols while collectors route those signals to backends chosen by the platform.

21 Jul 2024 · about 22 minutes min read ·

Field note

A golden path isn't the same thing as a mandatory path

A golden path makes the common, safe route through an internal platform easy to discover and use. It guides teams towards supported outcomes without pretending that every workload has identical needs.

14 Apr 2024 · about 11 minutes min read ·

Field note

Platform engineering: testing internal infrastructure as a product

An internal platform behaves like a product only when it solves recurring developer problems through usable interfaces, dependable capabilities, clear ownership and evidence that teams can succeed without navigating the underlying infrastructure themselves.

17 Mar 2024 · about 16 minutes min read ·

Field note

GitOps: what changes when Git represents desired state?

GitOps uses version-controlled declarations as the approved source of desired state and relies on automated reconciliation to bring running environments towards them.

14 Jan 2024 · about 16 minutes min read ·

Year

2023

8 entries

Field note

Reusable infrastructure: what makes a Terraform module useful?

A useful Terraform module packages a coherent infrastructure decision behind a small, stable interface. Reuse comes from clear ownership, sensible defaults and predictable lifecycle behaviour, not merely from moving resources into another directory.

10 Dec 2023 · about 20 minutes min read ·

Field note

Observability: logs, metrics and traces answer different questions

Logs preserve detailed events, metrics reveal behaviour across time and traces reconstruct work across service boundaries. Observability becomes useful when those signals share enough context to support one investigation.

12 Nov 2023 · about 23 minutes min read ·

Field note

CI/CD is a control system, not a deployment script

A CI/CD system does more than copy software into an environment. It gathers evidence, enforces policy, promotes immutable artefacts, changes desired state and uses runtime feedback to decide whether delivery should continue.

24 Sep 2023 · about 14 minutes min read ·

Field note

Cloud IAM: identities, roles, policies and trust

Cloud IAM decides who may act, which authority they may use, what that authority permits and under which conditions the platform should trust the request.

23 Jul 2023 · about 20 minutes min read ·

Field note

Infrastructure as Code and the case for declarative infrastructure

Infrastructure as Code turns infrastructure intent into reviewable, repeatable configuration. Declarative tools compare that intent, remembered resource identity and remote observations to calculate the changes required.

21 May 2023 · about 31 minutes min read ·

Field note

Kubernetes: from containers to a control plane

Containers package and constrain processes. Kubernetes adds a control plane that records desired state, schedules workloads across machines and continually reconciles the cluster towards that state.

19 Mar 2023 · about 39 minutes min read ·

Field note

Containers: what Docker actually isolates

A standard Linux container is not a miniature virtual machine. It is a process, or group of processes, running on a shared Linux kernel with selected views, resources and privileges isolated.

15 Jan 2023 · about 32 minutes min read ·

Year

2022

6 entries

Field note

Transactions when the database stops being the whole system

A database transaction can make local changes atomic. Once an operation crosses services, brokers and external providers, consistency depends on local commits, durable messages, idempotency, workflow state and reconciliation.

18 Dec 2022 · about 26 minutes min read ·

Field note

Idempotency: designing systems that can safely try again

Distributed operations are often delivered or attempted more than once. Idempotency gives repeated attempts one stable identity and prevents them from multiplying the intended business effect.

13 Nov 2022 · about 31 minutes min read ·

Field note

Event-driven architecture without the buzzwords

Event-driven architecture connects producers and consumers through facts about completed changes. The useful design work lies in ownership, delivery, ordering, replay and recovery rather than the broker-shaped box.

24 Jul 2022 · about 35 minutes min read ·

Field note

Timeouts, deadlines and retries in distributed applications

Timeouts limit waiting, deadlines bound the complete operation and retries spend part of that finite budget on additional attempts. Used carelessly, all three can turn uncertainty into overload.

22 May 2022 · about 38 minutes min read ·

Field note

Contract-first APIs with Protocol Buffers

Designing the Protobuf service and message contract before implementation makes ownership, compatibility and interaction semantics visible while they are still inexpensive to change.

20 Mar 2022 · about 44 minutes min read ·

Field note

Monoliths, services and the cost of a network boundary

Separating an application into services can create valuable ownership, deployment and scaling boundaries, but every network boundary introduces latency, partial failure and operational cost.

16 Jan 2022 · about 41 minutes min read ·

Year

2021

6 entries

Field note

Caching: trading freshness for speed

Caching can make repeated reads faster and protect an expensive data source, but every cached copy creates questions about freshness, invalidation, failure and ownership.

24 Oct 2021 · about 40 minutes min read ·

Field note

Remote APIs, RPC and messaging: ways systems talk

Comparing direct APIs, remote procedure calls and messaging by the contracts they create around timing, coupling, acknowledgement, delivery and failure.

27 Jun 2021 · about 27 minutes min read ·

Field note

Building a deliberate Bash systems script

Taking a useful Bash command and adding explicit interfaces, validation, failure handling, cleanup, idempotence and operational safety.

31 Jan 2021 · about 19 minutes min read ·

Year

2020

4 entries

Field note

HTTP without the hand-waving

Following an HTTP request from a URL to a response to understand what clients and servers actually exchange beneath the browser.

30 Aug 2020 · about 22 minutes min read ·

Field note

How data moves across a network

Following a piece of application data through transport, IP, Ethernet and routers to understand what actually travels between two networked hosts.

28 Jun 2020 · about 19 minutes min read ·

Field note

What actually happens when you run a program?

Following a Linux program from a command typed into Bash, through command lookup and exec, into memory, dynamic linking, execution and finally process termination.

8 Mar 2020 · about 21 minutes min read ·