Software Studio

Articles

Insights on building software and shipping products

Terraform at Scale: Managing Multi-Environment GCP Infrastructure

Lessons learned from managing dozens of GCP projects with Terraform, including module design, state management, and CI/CD integration.

TerraformGCPDevOpsInfrastructure

Building Relay with SwiftUI

A deep dive into the architecture decisions behind Relay, our native macOS REST client built entirely with SwiftUI and modern Apple frameworks.

SwiftUImacOSRelay

Why Native Apps Still Matter

In a world of cross-platform frameworks and web apps, here's why we believe native development delivers the best user experience.

NativeOpinion

Deploying Next.js to Google Cloud Run

A practical guide to containerizing and deploying your Next.js application to Google Cloud Run with custom domains and environment configuration.

Next.jsGCPDevOps

Vue.js vs React: Choosing the Right Framework in 2026

An honest comparison of Vue.js and React based on building production apps with both, developer experience, performance, ecosystem, and when each shines.

ReactVueFrontend

Kubernetes on GKE: When to Use It and When Cloud Run Is Enough

A practical comparison of GKE and Cloud Run based on real production workloads, helping you choose the right compute platform for your use case.

KubernetesGCPCloud RunInfrastructure

Designing a Dark Theme Design System

How we built a cohesive dark-mode-first design system using Tailwind CSS and a monochromatic slate palette for Pixel Guild.

DesignTailwind CSSUI/UX

Prisma Patterns for Next.js Applications

Practical patterns for using Prisma ORM effectively in Next.js App Router projects, from connection management to type-safe queries.

PrismaNext.jsDatabase

Building AI Agents with LangChain and Vertex AI

A hands-on guide to building production AI agents using LangChain with Google's Vertex AI, including tool use, memory, and evaluation strategies.

AILangChainVertex AIPythonGCP

TypeScript Patterns for NestJS APIs

Battle-tested TypeScript patterns for building maintainable NestJS APIs, from dependency injection to type-safe validation and error handling.

TypeScriptNestJSNode.jsAPI Design

React Server Components: What Actually Changed

A practical breakdown of React Server Components in Next.js, what they enable, what they break, and how to think about the server-client boundary.

ReactNext.jsTypeScript

Docker for Production: Beyond the Basics

Production Docker patterns that go beyond 'it works on my machine', multi-stage builds, security hardening, layer optimization, and health checks.

DockerDevOpsNode.js

PostgreSQL Performance: Queries That Scale

Practical PostgreSQL optimization techniques, from EXPLAIN ANALYZE to index strategy, connection pooling, and query patterns that survive growth.

PostgreSQLDatabasePerformance

CI/CD with GitHub Actions: Patterns That Work

Effective GitHub Actions patterns for real-world CI/CD, from fast feedback loops to secure deployments, caching strategies, and reusable workflows.

GitHub ActionsCI/CDDevOps

Go for Backend Services: A Node.js Developer's Perspective

Why I reach for Go when Node.js isn't the right fit, concurrency, performance, deployment simplicity, and the tradeoffs that come with it.

GoNode.jsBackend

Redis Beyond Caching: Patterns for Real Applications

Redis is more than a cache. Explore rate limiting, session management, job queues, pub/sub, and distributed locking patterns for production applications.

RedisNode.jsArchitecture

OAuth 2.0 and OpenID Connect: A Practical Guide

Demystifying OAuth 2.0 and OpenID Connect, the flows, the tokens, the security considerations, and how to implement them correctly.

SecurityOAuthAuthentication

From Monolith to Microservices: A Migration Playbook

A pragmatic approach to decomposing a monolithic application into microservices, when to do it, how to identify boundaries, and mistakes to avoid.

ArchitectureMicroservicesDevOps

Python Automation: Scripts That Save Hours Every Week

Practical Python automation patterns for developers, from data pipeline scripts to infrastructure automation, report generation, and API integrations.

PythonAutomationGCP

GraphQL vs REST: When Each Makes Sense

A nuanced comparison of GraphQL and REST APIs based on building both in production, query flexibility, caching, tooling, and the tradeoffs that matter.

GraphQLRESTAPI DesignArchitecture