[{"data":1,"prerenderedAt":188},["ShallowReactive",2],{"work-\u002Fwork\u002Fbirl":3,"work-nav":127},{"id":4,"title":5,"anonymised":6,"architecture":7,"body":32,"client":92,"description":87,"extension":93,"featured":6,"headline":94,"industry":95,"meta":96,"metrics":97,"navigation":107,"order":108,"path":109,"practice":110,"role":111,"screens":112,"seo":113,"stack":114,"status":122,"stem":123,"url":124,"year":125,"__hash__":126},"work\u002Fwork\u002Fbirl.md","Engineering process for an AI resale startup",false,[8,14,20,27],{"name":9,"items":10},"Process",[11,12,13],"Trunk-based branching","Staging gate","Two-layer review",{"name":15,"items":16},"Delivery",[17,18,19],"GitHub Actions","Turborepo","Vercel previews",{"name":21,"items":22},"Platform",[23,24,25,26],"Cloud Run","GKE","OIDC auth","Cloud Logging",{"name":28,"items":29},"AI",[30,31],"Vertex AI image pipeline","Product embeddings",{"type":33,"value":34,"toc":86},"minimark",[35,40,44,48,51],[36,37,39],"h2",{"id":38},"the-brief","The brief",[41,42,43],"p",{},"Birl builds an AI platform that helps brands manage second-hand inventory across eBay, Shopify and Depop. The team was growing and needed engineering process to match.",[36,45,47],{"id":46},"what-we-did","What we did",[41,49,50],{},"Mark led a team of four engineers across three repositories, while contributing directly to the code.",[52,53,54,62,68,74,80],"ul",{},[55,56,57,61],"li",{},[58,59,60],"strong",{},"Process."," Documented Birl's first development process: dev, staging and production environments, trunk-based branching with a staging gate, AI-plus-human code review, CI\u002FCD, QA sign-off and a release cadence. The founders signed off an 8-week rollout plan.",[55,63,64,67],{},[58,65,66],{},"Infrastructure."," A three-environment GCP setup with Cloud Run, GKE namespaces and Vercel previews, and GitHub Actions pipelines with affected-only Turborepo builds.",[55,69,70,73],{},[58,71,72],{},"Production readiness."," An audit of the resale API found 18 issues, from missing route authentication to webhook signature checks. We then implemented the fixes, including GCP OIDC authentication across all routes.",[55,75,76,79],{},[58,77,78],{},"AI pipeline."," Migrated image processing from direct Gemini calls to Vertex AI, with clearer prompts, error handling and logging.",[55,81,82,85],{},[58,83,84],{},"Desktop app."," Helped take the Electron studio app from prototype to production, with 14 releases in a month.",{"title":87,"searchDepth":88,"depth":88,"links":89},"",2,[90,91],{"id":38,"depth":88,"text":39},{"id":46,"depth":88,"text":47},"Birl Technology","md","Setting up Birl's first formal engineering process while contributing to the AI pipeline and desktop studio app.","AI \u002F Fashion resale",{},[98,101,104],{"value":99,"label":100},"18","Readiness issues found and remediated",{"value":102,"label":103},"~275","Team commits a month across three repos",{"value":105,"label":106},"14","Desktop app releases in one month",true,10,"\u002Fwork\u002Fbirl","partner","Tech Lead",[],{"title":5,"description":87},[115,116,117,118,119,120,121,17,18],"TypeScript","Node.js","Next.js","Electron","GCP","Vertex AI","Supabase",null,"work\u002Fbirl","https:\u002F\u002Fwearebirl.com","Jan – Apr 2026","jSxq68eRqMrghrM2gRA__I9R5l11j6bnZ_cJLTdqKfM",[128,133,137,142,147,152,157,162,167,172,173,178,183],{"path":129,"title":130,"client":131,"order":132},"\u002Fwork\u002Fstarbucks","Starbucks' first Shopify store","Starbucks",1,{"path":134,"title":135,"client":136,"order":88},"\u002Fwork\u002Fgood-beams","In-store and online retail for Good Beams","Good Beams",{"path":138,"title":139,"client":140,"order":141},"\u002Fwork\u002Fhebtroco","Moving HebTroCo from WooCommerce to Shopify","HebTroCo",3,{"path":143,"title":144,"client":145,"order":146},"\u002Fwork\u002Fbrimm","Membership, store credit and a Planet Fund for BRiMM","BRiMM",4,{"path":148,"title":149,"client":150,"order":151},"\u002Fwork\u002Fdbco","Native Shopify loyalty for premium fashion brands","DBCO",5,{"path":153,"title":154,"client":155,"order":156},"\u002Fwork\u002Fmyom","AI search visibility for MYOM Oat Drinks","MYOM",6,{"path":158,"title":159,"client":160,"order":161},"\u002Fwork\u002Fbleach-london","Platform build for Bleach London","Bleach London",7,{"path":163,"title":164,"client":165,"order":166},"\u002Fwork\u002Fviaduct","Re-platforming Viaduct Furniture","Viaduct Furniture",8,{"path":168,"title":169,"client":170,"order":171},"\u002Fwork\u002Fcubitts","Stabilising the Cubitts tech stack","Cubitts",9,{"path":109,"title":5,"client":92,"order":108},{"path":174,"title":175,"client":176,"order":177},"\u002Fwork\u002Fpluro","Closing the gap between founder and team at Pluro","Pluro",11,{"path":179,"title":180,"client":181,"order":182},"\u002Fwork\u002Fmuro","Muro, a social app for padel players","Muro",12,{"path":184,"title":185,"client":186,"order":187},"\u002Fwork\u002Fnoori","Noori Health, an iPhone app for tracking symptoms","Noori Health",13,1790883139574]