{"resource":{"title":"Image CDNs and delivery infrastructure","isPremium":true,"requires":["premium.fsd"],"content":{"type":1,"body":"*Part 7 of 8 — Image Optimisation for the Modern Web*\r\n\r\nFrontend optimisations only take us so far. Once an application reaches any real scale, image delivery also becomes an infrastructure problem.\r\n\r\n- an e-commerce platform might serve millions of product images\r\n- a social platform handles cont...","isInternal":true},"isActive":true,"stats":{"views":40,"used":0,"likes":0},"published":true,"author":{"id":"3eh0kijZwMrHum8TkMqX","name":"Devtools Tech","username":"devtoolstech"},"resourceId":"77JRLgs18QdXzu3rgtT2","slug":"image-cdns-and-delivery-infrastructure---rid---77JRLgs18QdXzu3rgtT2","createdAt":1779627704551,"showPaywall":true,"needsUpgrade":true,"minimumPlan":"yearly"},"currentUser":null,"isOwner":false,"recommendations":{"questions":[{"_id":"661569c84e1bed1edc0cab08","content":{"languages":["javascript","typescript"],"difficulty":4},"tags":["klarna","interview question","ui","ux","devtools tech","frontend interview question","problem solving","credit card","razorpay","fintech","tutorial"],"slug":"implement-a-credit-card-masker-or-klarna-frontend-interview-question-or-javascript---qid---AdZLcjN3FNivgYCuq5pa","title":"Implement a Credit Card Masker | Klarna Frontend Interview Question | JavaScript","questionId":"AdZLcjN3FNivgYCuq5pa"},{"_id":"6a6658afda1016b2d8055e44","content":{"languages":["react"],"difficulty":2},"tags":["javascript","ui","ux","devtools tech","coding","frontend challenge","coding","interview question"],"slug":"selectable-grid-cells---qid---Y2el5BHY0tMLNgqFW0n7","title":"Selectable Grid Cells","questionId":"Y2el5BHY0tMLNgqFW0n7"},{"_id":"636d3c2f20622762d08d016e","content":{"languages":["javascript"],"difficulty":1},"tags":["javascript","frontend","coding","devtools tech","interview questions","interview preparation","mcq","programming paradigm","tooling","mdn","js paradigm","programming questions","switch case","comparison"],"slug":"how-the-comparison-happens-with-switch-cases-in-javascript---qid---Dq9nqwLRz1czCqtsFrm0","title":"How the comparison happens with switch cases in JavaScript?","questionId":"Dq9nqwLRz1czCqtsFrm0"},{"_id":"625983f11195627fe9f0bf77","content":{"languages":["javascript","typescript"],"difficulty":2},"tags":["javascript","lodash","memo","frontend","interview question","polyfill","problem solving","algorithm","frontend masters","egghead","codedamn","memoize","advanced javascript","frontend fundamentals"],"slug":"how-to-implement-memoize-function-or-javascript-interview-question-or-problem-solving---qid---RxWt8Q1Mr2iwCPJHrkkr","title":"How to implement memoize function | JavaScript Interview Question | Problem Solving","questionId":"RxWt8Q1Mr2iwCPJHrkkr"},{"_id":"636b87fa20622762d08cede0","content":{"languages":["javascript","typescript"],"difficulty":1},"tags":["","javascript","arrays","javascript polyfills","interview question","frontend","coding","devtools tech","programming","codedamn","frontend masters","egghead","razorpay","hotstar","tata1mg","swiggy","zomato","array","custom unshift","array unshift","array pop"],"slug":"how-to-implement-array-prototype-pop-javascript-interview-question-or-problem-solving-or-javascript-polyfills---qid---lujToJoIqX1KHvWPiqQf","title":"How to implement Array.prototype.pop? JavaScript Interview Question | Problem Solving | JavaScript Polyfills","questionId":"lujToJoIqX1KHvWPiqQf"}],"resources":[{"_id":"63ce29da22480f26b3cdc905","content":{"difficulty":1,"domain":1,"type":2,"isInternal":false},"tags":["javascript","frontend","coding","programming","interview questions","ui","ux","coding practices","development","devtools tech"],"slug":"top-coding-practices-that-every-engineer-must-follow-or-coding-practices-with-examples---rid---26KOoxbSz5hGqasGaKta","title":"Top Coding Practices That Every Engineer Must Follow | Coding Practices With Examples","resourceId":"26KOoxbSz5hGqasGaKta"},{"_id":"69537c54304108b3b5c96b2a","content":{"difficulty":4,"domain":1,"type":1,"isInternal":true,"languages":[]},"tags":["javascript","ui","ux","devtools tech","routing","frontend","coding","programming","tutorial","system design"],"slug":"urls-and-routing-practical-example---rid---o6V68nNKXJEThLaP9wmQ","title":"URLs and Routing - Practical Example","resourceId":"o6V68nNKXJEThLaP9wmQ"},{"_id":"655600ac3e4c0459a44b430d","content":{"difficulty":4,"domain":2,"type":1,"isInternal":false,"languages":["javascript"]},"tags":["frontend","coding","ui","ux","razorpay","interview experience","tooling","devtools tech","hasnode","blog","tutorial"],"slug":"razorpay-frontend-engineer-interview-experience---rid---1JDZUAHqg0r2uYXxVPZW","title":"Razorpay Frontend Engineer interview experience","resourceId":"1JDZUAHqg0r2uYXxVPZW"},{"_id":"69a7c81b92f33c7d8aa04c9e","content":{"difficulty":1,"domain":1,"type":2,"isInternal":false,"languages":[]},"tags":["javascript","ui","ux","devtools tech","coding","frontend"],"slug":"how-to-refactor-large-codebases---rid---Fyjq9knxMC4wxz0QOfzH","title":"How to refactor large codebases?","resourceId":"Fyjq9knxMC4wxz0QOfzH"},{"_id":"5fe98d996d3cda64e470c429","content":{"difficulty":4,"domain":2,"type":2},"tags":["javascript","array","interview questions","frontend","nodejs","inheritance","arrow functions"],"slug":"deeply-nested-array-flat-or-frontend-interview-questions---rid---sTyi2N9I1k6kErptXSUi","title":"Deeply Nested Array Flat | Frontend Interview Questions","resourceId":"sTyi2N9I1k6kErptXSUi"}]}}