[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog:index::Architecture":3},{"page":4,"tags":58},{"items":5,"meta":53},[6,21,32,43],{"id":7,"slug":8,"title":9,"excerpt":10,"tags":11,"read_minutes":19,"published_at":20},"bbfc5b48-c600-44a8-8eb8-eabb4b7a085a","strategic-modern-software-architecture","Strategic Modern Software Architecture","Bad software does not announce itself as a cost. It arrives as a cloud bill growing faster than the business, a portal staff quietly work around, and customer data scattered across vendors nobody has audited. This is the case for a lean stack - compiled Go services, a typed frontend, one PostgreSQL holding both records and AI embeddings, and analytics that run where the data already sits - written for the person signing for it rather than the person maintaining it.",[12,13,14,15,16,17,18],"Architecture","Go","PostgreSQL","pgvector","DuckDB","AI","Cost",14,"2026-08-30T12:00:38.146556Z",{"id":22,"slug":23,"title":24,"excerpt":25,"tags":26,"read_minutes":30,"published_at":31},"61d11639-6d8f-48e9-8794-88cf62ae147c","hls-video-streaming-on-a-budget","Streaming Course Video on a Budget: HLS, R2 and a CDN","How we serve adaptive-bitrate course video for near-zero cost using ffmpeg, Cloudflare R2's free egress, and signed URLs at the edge.",[27,28,29,12],"Video","Cloudflare R2","HLS",7,"2026-07-09T00:00:00Z",{"id":33,"slug":34,"title":35,"excerpt":36,"tags":37,"read_minutes":41,"published_at":42},"23742789-f030-4a96-843b-23006c78bf25","real-time-streaming-pipelines-batch-to-event-driven","Building and Scaling Real-Time Streaming Pipelines","Moving from nightly batches to event-driven architecture is a mindset shift, not just a tooling swap. Kafka vs. Redpanda, late-arriving data, and where Flink earns its complexity.",[38,39,40,12],"Streaming","Kafka","Flink",8,"2026-07-05T00:00:00Z",{"id":44,"slug":45,"title":46,"excerpt":47,"tags":48,"read_minutes":30,"published_at":52},"64764a1e-4f04-4d10-b3e2-606bff5c843d","transitioning-to-apache-iceberg","Transitioning to Apache Iceberg: The Open Table Format Endgame","Snowflake, Databricks, AWS and Google all speak Iceberg now. What ACID on object storage, time travel, and hidden partitioning actually buy you — and how to migrate without downtime.",[49,50,51,12],"Apache Iceberg","Data Lake","Lakehouse","2026-06-22T00:00:00Z",{"has_more":54,"limit":55,"next_offset":56,"offset":57,"total":56},false,24,4,0,[59,60,62,64,66,69,72,73,75,77,78,79,81,83,84,86,87,89,90,91,92,93,94,96,98,99,100,102,104,106,108,109,111],{"tag":12,"count":56},{"tag":17,"count":61},3,{"tag":63,"count":61},"Data Engineering",{"tag":65,"count":61},"dbt",{"tag":67,"count":68},"Airflow",2,{"tag":70,"count":71},"Analytics",1,{"tag":49,"count":71},{"tag":74,"count":71},"BigQuery",{"tag":76,"count":71},"Careers",{"tag":28,"count":71},{"tag":18,"count":71},{"tag":80,"count":71},"Databricks",{"tag":82,"count":71},"Data Governance",{"tag":50,"count":71},{"tag":85,"count":71},"Data Quality",{"tag":16,"count":71},{"tag":88,"count":71},"FinOps",{"tag":40,"count":71},{"tag":13,"count":71},{"tag":29,"count":71},{"tag":39,"count":71},{"tag":51,"count":71},{"tag":95,"count":71},"Learning",{"tag":97,"count":71},"LLM",{"tag":15,"count":71},{"tag":14,"count":71},{"tag":101,"count":71},"RAG",{"tag":103,"count":71},"RBAC",{"tag":105,"count":71},"SkillUp",{"tag":107,"count":71},"Snowflake",{"tag":38,"count":71},{"tag":110,"count":71},"Superset",{"tag":27,"count":71}]