{"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":12,"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},"currentUser":null,"isOwner":false,"recommendations":{"questions":[{"_id":"648b384cd12c1e2402053b07","content":{"languages":["react","html"],"difficulty":1},"tags":["javascript","frontend","react","ui","html","css","frontend coding challenge","razorpay","ui challenges","coding","codedamn","egghead","frontend masters","price calculator"],"slug":"build-a-simple-price-calculator-or-frontend-coding-challenge-or-razorpay-interview-question---qid---2lGvliAvIzreHeVSRfGD","title":"Build a Simple Price Calculator | Frontend Coding Challenge | Razorpay Interview Question","questionId":"2lGvliAvIzreHeVSRfGD"},{"_id":"6431a5916577005718b8b399","content":{"languages":["javascript","typescript"],"difficulty":1},"tags":["javascript","frontend","code","programming","interview","linkedin","frontend interview question","javascript interview question","tuple","js tuple","row","arrays","js arrays","nested arrays"],"slug":"implement-tuple-function-or-linkedin-frontend-interview-question-or-javascript-problem-solving---qid---hr6hxjztrf5BmneXlUtT","title":"Implement Tuple Function | LinkedIn Frontend Interview Question | JavaScript Problem Solving","questionId":"hr6hxjztrf5BmneXlUtT"},{"_id":"63875545937c6f549165cea3","content":{"languages":["react"],"difficulty":1},"tags":["javascript","react","machine coding round","pr fix","github","code sample","pair programming","interview question","github pr","fix my pr","frontend coding challenge","javascript questions","machine coding rounds"],"slug":"how-to-fix-and-build-an-age-validator-or-pair-programming-or-frontend-coding-challenge-or-reactjs-or-javascript---qid---UPNnVPMHYevJuZ6dMsAw","title":"How to fix and build an Age Validator? | Pair Programming | Frontend Coding Challenge | ReactJS | JavaScript","questionId":"UPNnVPMHYevJuZ6dMsAw"},{"_id":"687cbc6850393ab55084626f","content":{"languages":["javascript","typescript"],"difficulty":1},"tags":["javascriot","frontend","ui","ux","devtools tech","coding","frontend challenge","apple","problem solving","tutorial"],"slug":"domain-operation-simulator---qid---d4fgYR94c54mF2I8sqFA","title":"Domain Operation Simulator","questionId":"d4fgYR94c54mF2I8sqFA"},{"_id":"6887701050393ab5508b47e2","content":{"languages":["react"],"difficulty":2},"tags":["javascript","ui","ux","devtools","coding","frontend","glean","coding challenge","frontend","ui challenge"],"slug":"phone-home-screen---qid---kcPmsCl2o1mep1FN8Xvw","title":"Phone Home Screen","questionId":"kcPmsCl2o1mep1FN8Xvw"}],"resources":[{"_id":"639222ff937c6f54916670ee","content":{"difficulty":3,"domain":2,"type":2,"isInternal":false},"tags":["frontend","javascript","react","interview question","coding","programming","custom hooks","react hooks","ui","ux","blog","tech"],"slug":"how-to-create-useprevious-react-custom-hook-or-advanced-react-js-or-javascript-interview-question---rid---Dwblxb3EWYYxTG2vmwEp","title":"How to create usePrevious React Custom Hook? | Advanced React.js | JavaScript Interview Question","resourceId":"Dwblxb3EWYYxTG2vmwEp"},{"_id":"6310505a77f9961d5b7ce983","content":{"difficulty":2,"domain":1,"type":2,"isInternal":false},"tags":["javascript","redux","react","youtube","interviews","frontend","interview preparation","tooling","state management"],"slug":"build-your-own-redux-or-part-1-or-advanced-frontend---rid---MNkFAzvLnmds66wD3JV0","title":"Build Your Own Redux | Part 1 | Advanced Frontend","resourceId":"MNkFAzvLnmds66wD3JV0"},{"_id":"692964c58f12450e2fdc9fc1","content":{"difficulty":4,"domain":1,"type":1,"isInternal":true,"languages":[]},"tags":["javascript","ui","software engineering","frontend","coding","ux","devtools tech","tutorial"],"slug":"better-pull-requests-a-practical-guide---rid---H5RpFEKniVoWHsKe15Bg","title":"Better Pull Requests: A Practical Guide","resourceId":"H5RpFEKniVoWHsKe15Bg"},{"_id":"69b3e73392f33c7d8ab0e2bd","content":{"difficulty":4,"domain":2,"type":1,"isInternal":true,"languages":[]},"tags":["javascript","ui","ux","devtools tech","interview experiences","frontend coding"],"slug":"cars24-frontend-interview-experience---rid---5CxS7tyPLqunm9n3xIfH","title":"Cars24 Frontend Interview Experience","resourceId":"5CxS7tyPLqunm9n3xIfH"},{"_id":"6a12f5ac4b3e6d922c54a48c","content":{"difficulty":1,"domain":1,"type":1,"isInternal":true,"languages":[]},"tags":["javascript","ui","ux","devtools tech","coding","frontend","lazy loading images","responsive images","web performance"],"slug":"lazy-loading-images---rid---YdibwFfrwv3NjOL8RtUV","title":"Lazy Loading Images","resourceId":"YdibwFfrwv3NjOL8RtUV"}]}}