[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:backend\u002Fapi-design":4,"config":254},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":148,"samples":168},"backend","Backend","","api-design","API Design","en",75,3300,[14,15,16],"junior","mid","senior",[18,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133,136,139,142,145],{"key":8,"name":9,"count":11},{"key":20,"name":21,"count":11},"caching","Caching",{"key":23,"name":24,"count":11},"concurrency","Concurrency",{"key":26,"name":27,"count":11},"csharp-concurrency-async","Csharp Concurrency Async",{"key":29,"name":30,"count":11},"csharp-exceptions","Csharp Exceptions",{"key":32,"name":33,"count":11},"csharp-generics-interfaces","Csharp Generics Interfaces",{"key":35,"name":36,"count":11},"csharp-memory-performance","Csharp Memory Performance",{"key":38,"name":39,"count":11},"csharp-stdlib-http","Csharp Stdlib Http",{"key":41,"name":42,"count":11},"csharp-testing-tooling","Csharp Testing Tooling",{"key":44,"name":45,"count":11},"databases-sql","Databases \u002F SQL",{"key":47,"name":48,"count":11},"go-concurrency","Go Concurrency",{"key":50,"name":51,"count":11},"go-errors","Go Errors",{"key":53,"name":54,"count":11},"go-interfaces-generics","Go Interfaces Generics",{"key":56,"name":57,"count":11},"go-memory-performance","Go Memory Performance",{"key":59,"name":60,"count":11},"go-stdlib-http","Go Stdlib Http",{"key":62,"name":63,"count":11},"go-testing-tooling","Go Testing Tooling",{"key":65,"name":66,"count":11},"java-concurrency","Java Concurrency",{"key":68,"name":69,"count":11},"java-exceptions","Java Exceptions",{"key":71,"name":72,"count":11},"java-generics-interfaces","Java Generics Interfaces",{"key":74,"name":75,"count":11},"java-memory-jvm","Java Memory Jvm",{"key":77,"name":78,"count":11},"java-stdlib-http","Java Stdlib Http",{"key":80,"name":81,"count":11},"java-testing-tooling","Java Testing Tooling",{"key":83,"name":84,"count":11},"messaging-queues","Messaging \u002F Queues",{"key":86,"name":87,"count":11},"networking-http","Networking \u002F HTTP",{"key":89,"name":90,"count":11},"nodejs-error-handling","Nodejs Error Handling",{"key":92,"name":93,"count":11},"nodejs-event-loop-async","Nodejs Event Loop Async",{"key":95,"name":96,"count":11},"nodejs-memory-performance","Nodejs Memory Performance",{"key":98,"name":99,"count":11},"nodejs-modules-streams","Nodejs Modules Streams",{"key":101,"name":102,"count":11},"nodejs-stdlib-http","Nodejs Stdlib Http",{"key":104,"name":105,"count":11},"nodejs-testing-tooling","Nodejs Testing Tooling",{"key":107,"name":108,"count":11},"php-concurrency-async","Php Concurrency Async",{"key":110,"name":111,"count":11},"php-exceptions","Php Exceptions",{"key":113,"name":114,"count":11},"php-generics-interfaces","Php Generics Interfaces",{"key":116,"name":117,"count":11},"php-memory-performance","Php Memory Performance",{"key":119,"name":120,"count":11},"php-stdlib-http","Php Stdlib Http",{"key":122,"name":123,"count":11},"php-testing-tooling","Php Testing Tooling",{"key":125,"name":126,"count":11},"python-concurrency-async","Python Concurrency Async",{"key":128,"name":129,"count":11},"python-errors-context","Python Errors Context",{"key":131,"name":132,"count":11},"python-memory-performance","Python Memory Performance",{"key":134,"name":135,"count":11},"python-stdlib-http","Python Stdlib Http",{"key":137,"name":138,"count":11},"python-testing-tooling","Python Testing Tooling",{"key":140,"name":141,"count":11},"python-typing-oop","Python Typing Oop",{"key":143,"name":144,"count":11},"security","Security",{"key":146,"name":147,"count":11},"testing","Testing",[149,153,156,159,162,165],{"key":150,"name":151,"count":152},"csharp","C#\u002F.NET",450,{"key":154,"name":155,"count":152},"go","Go",{"key":157,"name":158,"count":152},"java","Java",{"key":160,"name":161,"count":152},"nodejs","Node.js",{"key":163,"name":164,"count":152},"php","PHP",{"key":166,"name":167,"count":152},"python","Python",[169,187,201,214,227,241],{"id":170,"topic":9,"difficulty":171,"body":172,"options":173,"correct_key":178,"explanation":186},"019f56bb-b31e-77ff-8f93-8b568ff56f76",1,"In HTTP, GET is classified as a *safe* method. What does that mean?",[174,177,180,183],{"key":175,"text":176},"a","The request is automatically encrypted by the browser, which is what makes it safe to send",{"key":178,"text":179},"b","It is meant only to read data and is not expected to change server state",{"key":181,"text":182},"c","The server guarantees the request can never return an error",{"key":184,"text":185},"d","It can only be sent to endpoints that require no authentication","Safe means the client does not request any state change — which is why GETs can be cached, prefetched and retried freely. \"Safe\" is about semantics, not security (a): encryption comes from HTTPS, not from the method.",{"id":188,"topic":9,"difficulty":189,"body":190,"options":191,"correct_key":181,"explanation":200},"019f56bb-b324-7af3-81dc-b6c1b3f549a2",2,"Which HTTP method is NOT idempotent?",[192,194,196,198],{"key":175,"text":193},"GET",{"key":178,"text":195},"DELETE",{"key":181,"text":197},"POST",{"key":184,"text":199},"PUT","Idempotent means repeating the same request leaves the server in the same state as sending it once. POST typically creates a new resource on every call, so repeats multiply the effect. DELETE stays idempotent even when a repeat returns 404 — the resource is equally gone.",{"id":202,"topic":9,"difficulty":171,"body":203,"options":204,"correct_key":181,"explanation":213},"019f56bb-b325-7da5-8e61-53fbf5a50425","A POST request successfully creates a new resource. Which status code communicates this most precisely?",[205,207,209,211],{"key":175,"text":206},"200 OK",{"key":178,"text":208},"204 No Content",{"key":181,"text":210},"201 Created",{"key":184,"text":212},"202 Accepted","201 Created states that a new resource now exists, typically with a Location header pointing at it. 200 is a generic success, 204 is success without a body, and 202 (d) means the request was only queued for later processing — creation has not necessarily happened yet.",{"id":215,"topic":9,"difficulty":189,"body":216,"options":217,"correct_key":178,"explanation":226},"019f56bb-b326-7a53-97e1-b839433ee2ca","What is the difference between 401 Unauthorized and 403 Forbidden?",[218,220,222,224],{"key":175,"text":219},"401 means the user lacks permission for the resource; 403 means the request carries no valid credentials",{"key":178,"text":221},"401 means missing or invalid credentials; 403 means the authenticated user lacks permission",{"key":181,"text":223},"They are interchangeable; picking one is a team style preference",{"key":184,"text":225},"401 is used only for expired sessions; 403 only for banned accounts","401 says \"prove who you are\" (an authentication problem), while 403 says \"I know who you are, and you may not do this\" (an authorization problem). Option (a) states it exactly backwards, which is the classic mix-up.",{"id":228,"topic":9,"difficulty":229,"body":230,"options":231,"correct_key":175,"explanation":240},"019f56bb-b327-74ec-85da-533f10fc0c08",3,"The same DELETE request is sent twice:\n```http\nDELETE \u002Forders\u002F42   ->  204 No Content\nDELETE \u002Forders\u002F42   ->  404 Not Found\n```\nThe two calls return different status codes. Is DELETE's idempotency violated?",[232,234,236,238],{"key":175,"text":233},"No — idempotency is about server state, and the order is equally deleted after both calls",{"key":178,"text":235},"Yes — an idempotent method must return the same status code on every repeat, not merely reach the same end state",{"key":181,"text":237},"Yes — the server should keep returning 204 until the client stops retrying",{"key":184,"text":239},"No — because DELETE was never an idempotent method in the first place","Idempotency promises that repeating the request leaves the server in the same state, not that the response is byte-identical. After both calls the order is gone; the 404 merely reports that it no longer exists. Expecting identical status codes (b) is the most common misreading of the definition.",{"id":242,"topic":9,"difficulty":171,"body":243,"options":244,"correct_key":184,"explanation":253},"019f56bb-b328-721f-9c1d-c2d5d2c42def","What is the difference between PUT and PATCH?",[245,247,249,251],{"key":175,"text":246},"PUT applies a partial change; PATCH replaces the whole resource",{"key":178,"text":248},"PUT can only create resources; PATCH can only update them",{"key":181,"text":250},"They behave identically; PATCH is just the newer name for PUT",{"key":184,"text":252},"PUT replaces the entire resource; PATCH applies a partial modification","PUT sends the full representation and the server replaces the resource with it — which also makes PUT idempotent. PATCH sends only the changes to apply. Option (a) is the same fact reversed, the most common confusion between the two.",{"fields":255,"seniorities":424,"interview_shapes":425,"locales":430,"oauth":432,"question_count":435,"coach_enabled":436,"jd_match_enabled":436},[256,267,287,303,327,340,359,378,398,405,411,418],{"key":5,"name_tr":6,"name_en":6,"sort":171,"specializations":257},[258,261,262,263,264,265,266],{"key":259,"name":260,"field":5},"general","Genel",{"key":154,"name":155,"field":5},{"key":166,"name":167,"field":5},{"key":157,"name":158,"field":5},{"key":150,"name":151,"field":5},{"key":160,"name":161,"field":5},{"key":163,"name":164,"field":5},{"key":268,"name_tr":269,"name_en":269,"sort":189,"specializations":270},"frontend","Frontend",[271,272,275,278,281,284],{"key":259,"name":260,"field":268},{"key":273,"name":274,"field":268},"javascript","JavaScript",{"key":276,"name":277,"field":268},"typescript","TypeScript",{"key":279,"name":280,"field":268},"react","React",{"key":282,"name":283,"field":268},"vue","Vue",{"key":285,"name":286,"field":268},"angular","Angular",{"key":288,"name_tr":289,"name_en":289,"sort":229,"specializations":290},"fullstack","Fullstack",[291,292,293,294,295,296,297,298,299,300,301,302],{"key":259,"name":260,"field":288},{"key":154,"name":155,"field":5},{"key":166,"name":167,"field":5},{"key":157,"name":158,"field":5},{"key":150,"name":151,"field":5},{"key":160,"name":161,"field":5},{"key":163,"name":164,"field":5},{"key":273,"name":274,"field":268},{"key":276,"name":277,"field":268},{"key":279,"name":280,"field":268},{"key":282,"name":283,"field":268},{"key":285,"name":286,"field":268},{"key":304,"name_tr":305,"name_en":305,"sort":306,"specializations":307},"devops-cloud","DevOps \u002F Cloud",4,[308,309,312,315,318,321,324],{"key":259,"name":260,"field":304},{"key":310,"name":311,"field":304},"aws","AWS",{"key":313,"name":314,"field":304},"gcp","GCP",{"key":316,"name":317,"field":304},"azure","Azure",{"key":319,"name":320,"field":304},"kubernetes","Kubernetes",{"key":322,"name":323,"field":304},"terraform","Terraform",{"key":325,"name":326,"field":304},"linux","Linux",{"key":328,"name_tr":329,"name_en":329,"sort":330,"specializations":331},"ai-engineer","AI Engineer",5,[332,333,334,337],{"key":259,"name":260,"field":328},{"key":166,"name":167,"field":328},{"key":335,"name":336,"field":328},"llm-rag","LLM\u002FRAG",{"key":338,"name":339,"field":328},"mlops","MLOps",{"key":341,"name_tr":342,"name_en":343,"sort":344,"specializations":345},"database","Veritabanı","Database",6,[346,347,350,353,356],{"key":259,"name":260,"field":341},{"key":348,"name":349,"field":341},"postgresql","PostgreSQL",{"key":351,"name":352,"field":341},"mysql","MySQL",{"key":354,"name":355,"field":341},"mongodb","MongoDB",{"key":357,"name":358,"field":341},"redis","Redis",{"key":360,"name_tr":361,"name_en":362,"sort":363,"specializations":364},"mobile","Mobil","Mobile",7,[365,366,369,372,375],{"key":259,"name":260,"field":360},{"key":367,"name":368,"field":360},"ios-swift","iOS (Swift)",{"key":370,"name":371,"field":360},"android-kotlin","Android (Kotlin)",{"key":373,"name":374,"field":360},"flutter","Flutter",{"key":376,"name":377,"field":360},"react-native","React Native",{"key":143,"name_tr":379,"name_en":144,"sort":380,"specializations":381},"Güvenlik",8,[382,383,386,389,392,395],{"key":259,"name":260,"field":143},{"key":384,"name":385,"field":143},"appsec","AppSec",{"key":387,"name":388,"field":143},"offensive-pentest","Offensive \u002F Pentest",{"key":390,"name":391,"field":143},"cloud-security","Cloud Security",{"key":393,"name":394,"field":143},"devsecops","DevSecOps",{"key":396,"name":397,"field":143},"blue-team-incident","Blue Team \u002F Incident",{"key":399,"name_tr":400,"name_en":401,"sort":402,"specializations":403},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[404],{"key":259,"name":260,"field":399},{"key":406,"name_tr":407,"name_en":407,"sort":408,"specializations":409},"data-engineer","Data Engineer",10,[410],{"key":259,"name":260,"field":406},{"key":412,"name_tr":413,"name_en":414,"sort":415,"specializations":416},"game-dev","Oyun Geliştirme","Game Development",11,[417],{"key":259,"name":260,"field":412},{"key":419,"name_tr":420,"name_en":420,"sort":421,"specializations":422},"ml-engineer","ML Engineer",12,[423],{"key":259,"name":260,"field":419},[14,15,16],{"junior":426,"mid":428,"senior":429},{"questions":427,"median_sec":3},20,{"questions":427,"median_sec":3},{"questions":427,"median_sec":3},[431,10],"tr",[433,434],"google","github",21750,true]