[{"data":1,"prerenderedAt":170},["ShallowReactive",2],{"\u002Fposts\u002Fcollecting-blogs":3,"posts-nav":132},{"id":4,"title":5,"body":6,"date":120,"description":12,"draft":121,"extension":122,"meta":123,"navigation":124,"path":125,"seo":126,"stem":127,"subtitle":128,"tags":129,"__hash__":131},"posts\u002Fposts\u002Fcollecting-blogs.md","Collecting blogs",{"type":7,"value":8,"toc":114},"minimark",[9,13,18,59,63],[10,11,12],"p",{},"A collection of my favourite engineering and dev blogs.",[14,15,17],"h2",{"id":16},"by-person","By person",[19,20,21,31,38,45,52],"ul",{},[22,23,24],"li",{},[25,26,30],"a",{"href":27,"rel":28},"https:\u002F\u002Fblainsmith.com\u002F",[29],"nofollow","Blain Smith",[22,32,33],{},[25,34,37],{"href":35,"rel":36},"https:\u002F\u002Fdave.cheney.net\u002F",[29],"Dave Cheney",[22,39,40],{},[25,41,44],{"href":42,"rel":43},"https:\u002F\u002Fwww.jim-nielsen.com\u002F",[29],"Jim Nielsen",[22,46,47],{},[25,48,51],{"href":49,"rel":50},"https:\u002F\u002Fwww.ssp.sh\u002Fposts\u002F",[29],"Simon Späti",[22,53,54],{},[25,55,58],{"href":56,"rel":57},"https:\u002F\u002Fterriblesoftware.org\u002F",[29],"Terrible Software",[14,60,62],{"id":61},"by-company","By company",[19,64,65,72,79,86,93,100,107],{},[22,66,67],{},[25,68,71],{"href":69,"rel":70},"https:\u002F\u002Fwww.datadoghq.com\u002Fblog\u002Fengineering\u002F",[29],"Datadog",[22,73,74],{},[25,75,78],{"href":76,"rel":77},"https:\u002F\u002Fwww.mailgun.com\u002Fblog\u002F",[29],"Mailgun",[22,80,81],{},[25,82,85],{"href":83,"rel":84},"https:\u002F\u002Fposthog.com\u002Fblog",[29],"PostHog",[22,87,88],{},[25,89,92],{"href":90,"rel":91},"https:\u002F\u002Fblog.sentry.io\u002F",[29],"Sentry",[22,94,95],{},[25,96,99],{"href":97,"rel":98},"https:\u002F\u002Ftemporal.io\u002Fblog",[29],"Temporal",[22,101,102],{},[25,103,106],{"href":104,"rel":105},"https:\u002F\u002Fwww.twilio.com\u002Fen-us\u002Fblog",[29],"Twilio",[22,108,109],{},[25,110,113],{"href":111,"rel":112},"https:\u002F\u002Fnews.ycombinator.com\u002Fnews",[29],"Y Combinator: Hacker News",{"title":115,"searchDepth":116,"depth":116,"links":117},"",2,[118,119],{"id":16,"depth":116,"text":17},{"id":61,"depth":116,"text":62},"2026-09-10",false,"md",{},true,"\u002Fposts\u002Fcollecting-blogs",{"title":5,"description":12},"posts\u002Fcollecting-blogs",null,[130],"general","42kLnzktRhc6WSHAkILE1nU03BBI-4WDdgTG0Ae6Yj4",[133,137,141,145,146,150,154,158,162,166],{"path":134,"title":135,"date":136},"\u002Fposts\u002Ffunctional-options-may-not-always-form-closures","Functional options may not always form closures","2026-10-06",{"path":138,"title":139,"date":140},"\u002Fposts\u002Fgo-closures-functional-options-pattern","Understanding closures in Go through the functional options pattern","2026-09-25",{"path":142,"title":143,"date":144},"\u002Fposts\u002Fgoing-with-go","Going with Go","2026-09-14",{"path":125,"title":5,"date":120},{"path":147,"title":148,"date":149},"\u002Fposts\u002Fhello-world","Hello, world!","2026-08-01",{"path":151,"title":152,"date":153},"\u002Fposts\u002Fwhy-my-first-react-app-should-have-been-tic-tac-toe","Why my first React app should have been tic-tac-toe","2025-07-02",{"path":155,"title":156,"date":157},"\u002Fposts\u002Ftyped-and-tested","Typed and tested","2025-05-29",{"path":159,"title":160,"date":161},"\u002Fposts\u002Fforms-without-the-stress","Forms without the stress: React hook form does it best!","2025-03-16",{"path":163,"title":164,"date":165},"\u002Fposts\u002Fdata-fetching","Data fetching in React","2025-01-26",{"path":167,"title":168,"date":169},"\u002Fposts\u002F2024-in-review","2024 in review as a frontend engineer","2024-12-31",1791245350721]