[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"sanity-IKAKeAnttte-bif2kW3ON2klM1FrQSjZuLcNNfrZlwM":3},{"data":4,"sourceMap":-1},{"info":5,"latest":20},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":10,"avatar":11,"employee":16,"name":17,"slug":18},"2023-05-23T16:27:18Z","wp-author-302","dgl3SCUzppW3U2LvCoP35A","blogAuthor","2023-06-20T15:05:08Z",{"_type":12,"asset":13},"image",{"_ref":14,"_type":15},"image-076983a299b64e76b9ff44009dce24d42323bf8b-1024x1024-png","reference","current","Josh Zhang",{"current":19},"jzhang",[21],{"_id":22,"author":23,"commentCount":29,"comments":30,"excerpt":31,"featureTag":27,"image":32,"publishedAt":35,"slug":36,"sponsored":27,"tags":38,"title":65},"wp-post-20114",[24],{"_id":7,"avatar":25,"name":17,"role":27,"slug":28},{"_type":12,"asset":26},{"_ref":14,"_type":15},null,{"current":19},8,true,"When the bots came for us, we strengthened our defenses. Here's what we learned about parrying a few DDoS attacks.",{"_type":12,"asset":33},{"_ref":34,"_type":15},"image-51d37ff92e42b0bf1e77c1308049a4345dba3ef5-2560x1344-jpg","2022-05-16T13:57:02.000Z",{"current":37},"stack-under-attack-what-we-learned-about-handling-ddos-attacks",[39,47,52,56,61],{"_createdAt":40,"_id":41,"_rev":42,"_type":43,"_updatedAt":40,"slug":44,"title":46},"2023-05-23T16:43:21Z","wp-tagcat-code-for-a-living","9HpbCsT2tq0xwozQfkc4ih","blogTag",{"current":45},"code-for-a-living","Code for a Living",{"_createdAt":40,"_id":48,"_rev":42,"_type":43,"_updatedAt":40,"slug":49,"title":51},"wp-tagcat-ddos",{"current":50},"ddos","DDoS",{"_createdAt":40,"_id":53,"_rev":42,"_type":43,"_updatedAt":40,"slug":54,"title":55},"wp-tagcat-devops",{"current":55},"devops",{"_createdAt":40,"_id":57,"_rev":42,"_type":43,"_updatedAt":40,"slug":58,"title":60},"wp-tagcat-engineering",{"current":59},"engineering","Engineering",{"_createdAt":40,"_id":62,"_rev":42,"_type":43,"_updatedAt":40,"slug":63,"title":64},"wp-tagcat-security",{"current":64},"security","Stack under attack: what we learned about handling DDoS attacks"]