[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:backend\u002Fmid":4,"config":254},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":8,"spec_key":8,"spec_name":8,"locale":9,"cell_total":10,"field_total":11,"seniorities":12,"topics":15,"specs":149,"samples":169},"backend","Backend","mid","","en",2789,3300,[13,7,14],"junior","senior",[16,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,101,104,107,110,113,116,119,122,125,128,131,134,137,140,143,146],{"key":17,"name":18,"count":19},"api-design","API Design",75,{"key":21,"name":22,"count":19},"caching","Caching",{"key":24,"name":25,"count":19},"concurrency","Concurrency",{"key":27,"name":28,"count":19},"csharp-concurrency-async","Csharp Concurrency Async",{"key":30,"name":31,"count":19},"csharp-exceptions","Csharp Exceptions",{"key":33,"name":34,"count":19},"csharp-generics-interfaces","Csharp Generics Interfaces",{"key":36,"name":37,"count":19},"csharp-memory-performance","Csharp Memory Performance",{"key":39,"name":40,"count":19},"csharp-stdlib-http","Csharp Stdlib Http",{"key":42,"name":43,"count":19},"csharp-testing-tooling","Csharp Testing Tooling",{"key":45,"name":46,"count":19},"databases-sql","Databases \u002F SQL",{"key":48,"name":49,"count":19},"go-concurrency","Go Concurrency",{"key":51,"name":52,"count":19},"go-errors","Go Errors",{"key":54,"name":55,"count":19},"go-interfaces-generics","Go Interfaces Generics",{"key":57,"name":58,"count":19},"go-memory-performance","Go Memory Performance",{"key":60,"name":61,"count":19},"go-stdlib-http","Go Stdlib Http",{"key":63,"name":64,"count":19},"go-testing-tooling","Go Testing Tooling",{"key":66,"name":67,"count":19},"java-concurrency","Java Concurrency",{"key":69,"name":70,"count":19},"java-exceptions","Java Exceptions",{"key":72,"name":73,"count":19},"java-generics-interfaces","Java Generics Interfaces",{"key":75,"name":76,"count":19},"java-memory-jvm","Java Memory Jvm",{"key":78,"name":79,"count":19},"java-stdlib-http","Java Stdlib Http",{"key":81,"name":82,"count":19},"java-testing-tooling","Java Testing Tooling",{"key":84,"name":85,"count":19},"messaging-queues","Messaging \u002F Queues",{"key":87,"name":88,"count":19},"networking-http","Networking \u002F HTTP",{"key":90,"name":91,"count":19},"nodejs-error-handling","Nodejs Error Handling",{"key":93,"name":94,"count":19},"nodejs-event-loop-async","Nodejs Event Loop Async",{"key":96,"name":97,"count":19},"nodejs-memory-performance","Nodejs Memory Performance",{"key":99,"name":100,"count":19},"nodejs-modules-streams","Nodejs Modules Streams",{"key":102,"name":103,"count":19},"nodejs-stdlib-http","Nodejs Stdlib Http",{"key":105,"name":106,"count":19},"nodejs-testing-tooling","Nodejs Testing Tooling",{"key":108,"name":109,"count":19},"php-concurrency-async","Php Concurrency Async",{"key":111,"name":112,"count":19},"php-exceptions","Php Exceptions",{"key":114,"name":115,"count":19},"php-generics-interfaces","Php Generics Interfaces",{"key":117,"name":118,"count":19},"php-memory-performance","Php Memory Performance",{"key":120,"name":121,"count":19},"php-stdlib-http","Php Stdlib Http",{"key":123,"name":124,"count":19},"php-testing-tooling","Php Testing Tooling",{"key":126,"name":127,"count":19},"python-concurrency-async","Python Concurrency Async",{"key":129,"name":130,"count":19},"python-errors-context","Python Errors Context",{"key":132,"name":133,"count":19},"python-memory-performance","Python Memory Performance",{"key":135,"name":136,"count":19},"python-stdlib-http","Python Stdlib Http",{"key":138,"name":139,"count":19},"python-testing-tooling","Python Testing Tooling",{"key":141,"name":142,"count":19},"python-typing-oop","Python Typing Oop",{"key":144,"name":145,"count":19},"security","Security",{"key":147,"name":148,"count":19},"testing","Testing",[150,154,157,160,163,166],{"key":151,"name":152,"count":153},"csharp","C#\u002F.NET",450,{"key":155,"name":156,"count":153},"go","Go",{"key":158,"name":159,"count":153},"java","Java",{"key":161,"name":162,"count":153},"nodejs","Node.js",{"key":164,"name":165,"count":153},"php","PHP",{"key":167,"name":168,"count":153},"python","Python",[170,188,201,215,228,241],{"id":171,"topic":18,"difficulty":172,"body":173,"options":174,"correct_key":182,"explanation":187},"019f56bb-b324-7af3-81dc-b6c1b3f549a2",2,"Which HTTP method is NOT idempotent?",[175,178,181,184],{"key":176,"text":177},"a","GET",{"key":179,"text":180},"b","DELETE",{"key":182,"text":183},"c","POST",{"key":185,"text":186},"d","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":189,"topic":18,"difficulty":172,"body":190,"options":191,"correct_key":179,"explanation":200},"019f56bb-b326-7a53-97e1-b839433ee2ca","What is the difference between 401 Unauthorized and 403 Forbidden?",[192,194,196,198],{"key":176,"text":193},"401 means the user lacks permission for the resource; 403 means the request carries no valid credentials",{"key":179,"text":195},"401 means missing or invalid credentials; 403 means the authenticated user lacks permission",{"key":182,"text":197},"They are interchangeable; picking one is a team style preference",{"key":185,"text":199},"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":202,"topic":18,"difficulty":203,"body":204,"options":205,"correct_key":176,"explanation":214},"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?",[206,208,210,212],{"key":176,"text":207},"No — idempotency is about server state, and the order is equally deleted after both calls",{"key":179,"text":209},"Yes — an idempotent method must return the same status code on every repeat, not merely reach the same end state",{"key":182,"text":211},"Yes — the server should keep returning 204 until the client stops retrying",{"key":185,"text":213},"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":216,"topic":18,"difficulty":172,"body":217,"options":218,"correct_key":176,"explanation":227},"019f56bb-b328-7d81-abc7-ff9b4c702b2f","The stored user is `{\"name\": \"Ali\", \"email\": \"ali@old.com\"}`. This request arrives:\n```http\nPATCH \u002Fusers\u002F7\nContent-Type: application\u002Fjson\n\n{\"email\": \"ali@new.com\"}\n```\nWith a correctly implemented PATCH, what happens to the `name` field?",[219,221,223,225],{"key":176,"text":220},"It stays \"Ali\" — PATCH changes only the fields included in the request",{"key":179,"text":222},"It becomes null, because the request body did not include it",{"key":182,"text":224},"The request is rejected: PATCH requires the full resource representation",{"key":185,"text":226},"It is reset to the server-side default value defined for that field","PATCH is a partial update: fields absent from the request are left untouched. Nulling omitted fields (b) describes what a full replacement with PUT would do — sending the incomplete object with PUT is exactly how data gets accidentally wiped.",{"id":229,"topic":18,"difficulty":172,"body":230,"options":231,"correct_key":185,"explanation":240},"019f56bb-b329-784b-8d0c-735598585391","A request body parses as valid JSON but violates a business rule (the birth date is in the future). The team wants clients to distinguish this from unparseable JSON. Which status-code split is the widely used convention?",[232,234,236,238],{"key":176,"text":233},"400 for both cases, because all client errors must share a single code",{"key":179,"text":235},"422 for malformed or unparseable requests, 400 for well-formed but semantically invalid ones",{"key":182,"text":237},"500 for validation failures, 400 for parse failures",{"key":185,"text":239},"400 for malformed\u002Funparseable requests, 422 for well-formed but semantically invalid ones","The common convention: 400 when the server cannot even parse the request, 422 (Unprocessable Content) when it parses fine but fails validation rules. Option (b) is the same pair reversed, and 500 (c) would wrongly blame the server for the client's bad data.",{"id":242,"topic":18,"difficulty":203,"body":243,"options":244,"correct_key":179,"explanation":253},"019f56bb-b32a-79e1-adfd-b3e512867a2e","Two clients edit the same document. The server currently stores `version: 5`. This update arrives:\n```http\nPUT \u002Fdocuments\u002F12\nContent-Type: application\u002Fjson\n\n{\"title\": \"Final\", \"version\": 4}\n```\nThe request is based on a stale version. In this optimistic-locking design, which response fits best?",[245,247,249,251],{"key":176,"text":246},"200 OK — last write wins is the only workable policy for concurrent edits",{"key":179,"text":248},"409 Conflict — the update is based on outdated state",{"key":182,"text":250},"404 Not Found — version 4 of the document no longer exists on the server",{"key":185,"text":252},"401 Unauthorized — the client's editing session has expired","409 Conflict signals that the request clashes with the resource's current state — the standard answer for version mismatches; the client's remedy is to refetch the latest state and retry. Silently accepting it (a) would overwrite the other client's changes, which is precisely what optimistic locking exists to prevent. (c) misreads the version as a separate sub-resource.",{"fields":255,"seniorities":425,"interview_shapes":426,"locales":431,"oauth":433,"question_count":436,"coach_enabled":437,"jd_match_enabled":437},[256,268,288,304,328,341,360,379,399,406,412,419],{"key":5,"name_tr":6,"name_en":6,"sort":257,"specializations":258},1,[259,262,263,264,265,266,267],{"key":260,"name":261,"field":5},"general","Genel",{"key":155,"name":156,"field":5},{"key":167,"name":168,"field":5},{"key":158,"name":159,"field":5},{"key":151,"name":152,"field":5},{"key":161,"name":162,"field":5},{"key":164,"name":165,"field":5},{"key":269,"name_tr":270,"name_en":270,"sort":172,"specializations":271},"frontend","Frontend",[272,273,276,279,282,285],{"key":260,"name":261,"field":269},{"key":274,"name":275,"field":269},"javascript","JavaScript",{"key":277,"name":278,"field":269},"typescript","TypeScript",{"key":280,"name":281,"field":269},"react","React",{"key":283,"name":284,"field":269},"vue","Vue",{"key":286,"name":287,"field":269},"angular","Angular",{"key":289,"name_tr":290,"name_en":290,"sort":203,"specializations":291},"fullstack","Fullstack",[292,293,294,295,296,297,298,299,300,301,302,303],{"key":260,"name":261,"field":289},{"key":155,"name":156,"field":5},{"key":167,"name":168,"field":5},{"key":158,"name":159,"field":5},{"key":151,"name":152,"field":5},{"key":161,"name":162,"field":5},{"key":164,"name":165,"field":5},{"key":274,"name":275,"field":269},{"key":277,"name":278,"field":269},{"key":280,"name":281,"field":269},{"key":283,"name":284,"field":269},{"key":286,"name":287,"field":269},{"key":305,"name_tr":306,"name_en":306,"sort":307,"specializations":308},"devops-cloud","DevOps \u002F Cloud",4,[309,310,313,316,319,322,325],{"key":260,"name":261,"field":305},{"key":311,"name":312,"field":305},"aws","AWS",{"key":314,"name":315,"field":305},"gcp","GCP",{"key":317,"name":318,"field":305},"azure","Azure",{"key":320,"name":321,"field":305},"kubernetes","Kubernetes",{"key":323,"name":324,"field":305},"terraform","Terraform",{"key":326,"name":327,"field":305},"linux","Linux",{"key":329,"name_tr":330,"name_en":330,"sort":331,"specializations":332},"ai-engineer","AI Engineer",5,[333,334,335,338],{"key":260,"name":261,"field":329},{"key":167,"name":168,"field":329},{"key":336,"name":337,"field":329},"llm-rag","LLM\u002FRAG",{"key":339,"name":340,"field":329},"mlops","MLOps",{"key":342,"name_tr":343,"name_en":344,"sort":345,"specializations":346},"database","Veritabanı","Database",6,[347,348,351,354,357],{"key":260,"name":261,"field":342},{"key":349,"name":350,"field":342},"postgresql","PostgreSQL",{"key":352,"name":353,"field":342},"mysql","MySQL",{"key":355,"name":356,"field":342},"mongodb","MongoDB",{"key":358,"name":359,"field":342},"redis","Redis",{"key":361,"name_tr":362,"name_en":363,"sort":364,"specializations":365},"mobile","Mobil","Mobile",7,[366,367,370,373,376],{"key":260,"name":261,"field":361},{"key":368,"name":369,"field":361},"ios-swift","iOS (Swift)",{"key":371,"name":372,"field":361},"android-kotlin","Android (Kotlin)",{"key":374,"name":375,"field":361},"flutter","Flutter",{"key":377,"name":378,"field":361},"react-native","React Native",{"key":144,"name_tr":380,"name_en":145,"sort":381,"specializations":382},"Güvenlik",8,[383,384,387,390,393,396],{"key":260,"name":261,"field":144},{"key":385,"name":386,"field":144},"appsec","AppSec",{"key":388,"name":389,"field":144},"offensive-pentest","Offensive \u002F Pentest",{"key":391,"name":392,"field":144},"cloud-security","Cloud Security",{"key":394,"name":395,"field":144},"devsecops","DevSecOps",{"key":397,"name":398,"field":144},"blue-team-incident","Blue Team \u002F Incident",{"key":400,"name_tr":401,"name_en":402,"sort":403,"specializations":404},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[405],{"key":260,"name":261,"field":400},{"key":407,"name_tr":408,"name_en":408,"sort":409,"specializations":410},"data-engineer","Data Engineer",10,[411],{"key":260,"name":261,"field":407},{"key":413,"name_tr":414,"name_en":415,"sort":416,"specializations":417},"game-dev","Oyun Geliştirme","Game Development",11,[418],{"key":260,"name":261,"field":413},{"key":420,"name_tr":421,"name_en":421,"sort":422,"specializations":423},"ml-engineer","ML Engineer",12,[424],{"key":260,"name":261,"field":420},[13,7,14],{"junior":427,"mid":429,"senior":430},{"questions":428,"median_sec":3},20,{"questions":428,"median_sec":3},{"questions":428,"median_sec":3},[432,9],"tr",[434,435],"google","github",21750,true]