[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:game-dev\u002Fnc-serialization-bandwidth":4,"config":232},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":130,"samples":147},"game-dev","Game Development","","nc-serialization-bandwidth","Nc Serialization Bandwidth","en",75,2850,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127],{"key":19,"name":20,"count":11},"game-ai-pathfinding","Game Ai Pathfinding",{"key":22,"name":23,"count":11},"game-input-audio","Game Input Audio",{"key":25,"name":26,"count":11},"game-loop-fundamentals","Game Loop Fundamentals",{"key":28,"name":29,"count":11},"game-networking-multiplayer","Game Networking Multiplayer",{"key":31,"name":32,"count":11},"game-performance-optimization","Game Performance Optimization",{"key":34,"name":35,"count":11},"game-physics-collision","Game Physics Collision",{"key":37,"name":38,"count":11},"game-rendering-pipeline","Game Rendering Pipeline",{"key":40,"name":41,"count":11},"game-state-management","Game State Management",{"key":43,"name":44,"count":11},"gfx-forward-deferred-architectures","Gfx Forward Deferred Architectures",{"key":46,"name":47,"count":11},"gfx-gpu-pipeline-stages","Gfx Gpu Pipeline Stages",{"key":49,"name":50,"count":11},"gfx-post-processing-aa-hdr","Gfx Post Processing Aa Hdr",{"key":52,"name":53,"count":11},"gfx-shading-lighting-pbr","Gfx Shading Lighting Pbr",{"key":55,"name":56,"count":11},"gfx-shadows-depth-precision","Gfx Shadows Depth Precision",{"key":58,"name":59,"count":11},"gfx-textures-sampling-compression","Gfx Textures Sampling Compression",{"key":61,"name":62,"count":11},"gp-ability-cooldown-damage","Gp Ability Cooldown Damage",{"key":64,"name":65,"count":11},"gp-animation-state-locomotion","Gp Animation State Locomotion",{"key":67,"name":68,"count":11},"gp-camera-follow-targeting","Gp Camera Follow Targeting",{"key":70,"name":71,"count":11},"gp-character-controller-movement","Gp Character Controller Movement",{"key":73,"name":74,"count":11},"gp-frame-windows-game-feel","Gp Frame Windows Game Feel",{"key":76,"name":77,"count":11},"gp-interaction-detection-triggers","Gp Interaction Detection Triggers",{"key":79,"name":80,"count":11},"nc-rollback-determinism","Nc Rollback Determinism",{"key":82,"name":83,"count":11},"nc-security-protocol","Nc Security Protocol",{"key":8,"name":9,"count":11},{"key":86,"name":87,"count":11},"nc-time-sync-tick","Nc Time Sync Tick",{"key":89,"name":90,"count":11},"nc-topology-nat-relay","Nc Topology Nat Relay",{"key":92,"name":93,"count":11},"nc-transport-reliability","Nc Transport Reliability",{"key":95,"name":96,"count":11},"ue-actor-component-lifecycle","Ue Actor Component Lifecycle",{"key":98,"name":99,"count":11},"ue-blueprint-cpp-interop","Ue Blueprint Cpp Interop",{"key":101,"name":102,"count":11},"ue-containers-strings-memory","Ue Containers Strings Memory",{"key":104,"name":105,"count":11},"ue-gameplay-framework-classes","Ue Gameplay Framework Classes",{"key":107,"name":108,"count":11},"ue-modules-build-packaging","Ue Modules Build Packaging",{"key":110,"name":111,"count":11},"ue-uobject-reflection-gc","Ue Uobject Reflection Gc",{"key":113,"name":114,"count":11},"un-csharp-memory-gc-performance","Un Csharp Memory Gc Performance",{"key":116,"name":117,"count":11},"un-gameobject-component-transform","Un Gameobject Component Transform",{"key":119,"name":120,"count":11},"un-jobs-burst-dots-basics","Un Jobs Burst Dots Basics",{"key":122,"name":123,"count":11},"un-monobehaviour-lifecycle-execution-order","Un Monobehaviour Lifecycle Execution Order",{"key":125,"name":126,"count":11},"un-prefabs-instantiate-pooling-addressables","Un Prefabs Instantiate Pooling Addressables",{"key":128,"name":129,"count":11},"un-scriptableobject-serialization","Un Scriptableobject Serialization",[131,135,138,141,144],{"key":132,"name":133,"count":134},"gameplay","Gameplay",450,{"key":136,"name":137,"count":134},"graphics-rendering","Graphics \u002F Rendering",{"key":139,"name":140,"count":134},"multiplayer-netcode","Multiplayer \u002F Netcode",{"key":142,"name":143,"count":134},"unity-csharp","Unity (C#)",{"key":145,"name":146,"count":134},"unreal-cpp","Unreal (C++)",[148,166,179,193,206,219],{"id":149,"topic":9,"difficulty":150,"body":151,"options":152,"correct_key":154,"explanation":165},"01a039c8-9ec4-7c58-b069-2556ac778b23",1,"A field only ever holds values in the range [0, 1000] (for example, an ammo counter). Using the bits-required rule (bits = floor(log2(max-min)) + 1), the field needs 10 bits. If it is instead stored in a fixed 16-bit (2-byte) integer, how many bits are wasted per field compared to the minimum?",[153,156,159,162],{"key":154,"text":155},"a","6 bits",{"key":157,"text":158},"b","4 bits",{"key":160,"text":161},"c","8 bits",{"key":163,"text":164},"d","2 bits","floor(log2(1000)) + 1 = 9 + 1 = 10 bits are the minimum needed. A 16-bit field wastes 16 - 10 = 6 bits every time this field is sent.",{"id":167,"topic":9,"difficulty":150,"body":168,"options":169,"correct_key":160,"explanation":178},"01a039c8-9ec5-79e9-8ebb-646c10d34b5b","In one common bit-packing scheme, an object's compressed linear velocity normally costs 33 bits. Designers add a single leading 'at rest' flag bit: if the object is at rest, the flag is set to 1 and the 33-bit velocity is skipped entirely; if the object is moving, the flag is 0 and the 33 bits follow. Under this scheme, how many bits does a moving object's velocity field cost in total?",[170,172,174,176],{"key":154,"text":171},"33 bits",{"key":157,"text":173},"66 bits",{"key":160,"text":175},"34 bits",{"key":163,"text":177},"32 bits","A moving object pays the 1-bit flag plus the full 33-bit velocity: 1 + 33 = 34 bits. Only an at-rest object gets the cheap 1-bit encoding.",{"id":180,"topic":9,"difficulty":181,"body":182,"options":183,"correct_key":157,"explanation":192},"01a039c8-9ec8-72c1-871e-6a487a424c92",2,"A bit-packer writes a 6-bit index followed by a 10-bit magnitude for each entry. On the receiving side, the reader mistakenly reads the first entry as a 6-bit index followed by an 8-bit magnitude. What happens to every field read after that point in the packet?",[184,186,188,190],{"key":154,"text":185},"Only that entry's magnitude is slightly wrong",{"key":157,"text":187},"Every later field is misaligned by the missing 2 bits",{"key":160,"text":189},"The reader resyncs at the next byte boundary",{"key":163,"text":191},"The packet is discarded and re-requested","Bit-level streams have no self-describing boundaries. Reading 2 bits fewer than were written leaves those 2 bits sitting at the front of what should be the next field, shifting every subsequent read out of alignment for the rest of the packet.",{"id":194,"topic":9,"difficulty":150,"body":195,"options":196,"correct_key":157,"explanation":205},"01a039c8-9ec9-7070-8406-7222d8faac36","QUIC's variable-length integer encoding (RFC 9000 section 16) reserves the two most significant bits of the first byte to select the encoded length. Which set of byte lengths does this scheme support?",[197,199,201,203],{"key":154,"text":198},"1, 2, 3, or 4 bytes",{"key":157,"text":200},"1, 2, 4, or 8 bytes",{"key":160,"text":202},"2, 4, 8, or 16 bytes",{"key":163,"text":204},"1, 3, 5, or 7 bytes","RFC 9000 states the two most-significant bits select a length of 1, 2, 4, or 8 bytes, encoding 6-, 14-, 30-, or 62-bit values respectively.",{"id":207,"topic":9,"difficulty":181,"body":208,"options":209,"correct_key":154,"explanation":218},"01a039c8-9ec9-77b1-9d30-cd30a688e0c4","Per RFC 9000's Table 4, a varint whose first byte has its two most-significant bits set to 00 (a single-byte encoding) can represent decimal values from 0 up to which maximum?",[210,212,214,216],{"key":154,"text":211},"63",{"key":157,"text":213},"127",{"key":160,"text":215},"255",{"key":163,"text":217},"15","The 00 prefix leaves 6 usable bits in that one byte, giving a range of 0-63, exactly as listed in RFC 9000's encoding table.",{"id":220,"topic":9,"difficulty":150,"body":221,"options":222,"correct_key":160,"explanation":231},"01a039c8-9eca-712b-9a63-fdea445103bb","Why does QUIC's variable-length integer encoding spend fewer bytes on small values instead of always emitting a fixed 8 bytes for every integer field?",[223,225,227,229],{"key":154,"text":224},"8-byte fields cannot be sent over UDP",{"key":157,"text":226},"It lets receivers skip decryption",{"key":160,"text":228},"Most integer values are small",{"key":163,"text":230},"It guarantees delivery order between fields","The encoding trades a 2-bit length prefix for the ability to represent small, common values in as little as one byte, which lowers the average bytes-per-field across a typical stream of integers.",{"fields":233,"seniorities":446,"interview_shapes":447,"locales":452,"oauth":454,"question_count":457,"coach_enabled":458,"jd_match_enabled":458},[234,259,279,296,320,333,352,371,393,412,427,437],{"key":235,"name_tr":236,"name_en":236,"sort":150,"specializations":237},"backend","Backend",[238,241,244,247,250,253,256],{"key":239,"name":240,"field":235},"general","Genel",{"key":242,"name":243,"field":235},"go","Go",{"key":245,"name":246,"field":235},"python","Python",{"key":248,"name":249,"field":235},"java","Java",{"key":251,"name":252,"field":235},"csharp","C#\u002F.NET",{"key":254,"name":255,"field":235},"nodejs","Node.js",{"key":257,"name":258,"field":235},"php","PHP",{"key":260,"name_tr":261,"name_en":261,"sort":181,"specializations":262},"frontend","Frontend",[263,264,267,270,273,276],{"key":239,"name":240,"field":260},{"key":265,"name":266,"field":260},"javascript","JavaScript",{"key":268,"name":269,"field":260},"typescript","TypeScript",{"key":271,"name":272,"field":260},"react","React",{"key":274,"name":275,"field":260},"vue","Vue",{"key":277,"name":278,"field":260},"angular","Angular",{"key":280,"name_tr":281,"name_en":281,"sort":282,"specializations":283},"fullstack","Fullstack",3,[284,285,286,287,288,289,290,291,292,293,294,295],{"key":239,"name":240,"field":280},{"key":242,"name":243,"field":235},{"key":245,"name":246,"field":235},{"key":248,"name":249,"field":235},{"key":251,"name":252,"field":235},{"key":254,"name":255,"field":235},{"key":257,"name":258,"field":235},{"key":265,"name":266,"field":260},{"key":268,"name":269,"field":260},{"key":271,"name":272,"field":260},{"key":274,"name":275,"field":260},{"key":277,"name":278,"field":260},{"key":297,"name_tr":298,"name_en":298,"sort":299,"specializations":300},"devops-cloud","DevOps \u002F Cloud",4,[301,302,305,308,311,314,317],{"key":239,"name":240,"field":297},{"key":303,"name":304,"field":297},"aws","AWS",{"key":306,"name":307,"field":297},"gcp","GCP",{"key":309,"name":310,"field":297},"azure","Azure",{"key":312,"name":313,"field":297},"kubernetes","Kubernetes",{"key":315,"name":316,"field":297},"terraform","Terraform",{"key":318,"name":319,"field":297},"linux","Linux",{"key":321,"name_tr":322,"name_en":322,"sort":323,"specializations":324},"ai-engineer","AI Engineer",5,[325,326,327,330],{"key":239,"name":240,"field":321},{"key":245,"name":246,"field":321},{"key":328,"name":329,"field":321},"llm-rag","LLM\u002FRAG",{"key":331,"name":332,"field":321},"mlops","MLOps",{"key":334,"name_tr":335,"name_en":336,"sort":337,"specializations":338},"database","Veritabanı","Database",6,[339,340,343,346,349],{"key":239,"name":240,"field":334},{"key":341,"name":342,"field":334},"postgresql","PostgreSQL",{"key":344,"name":345,"field":334},"mysql","MySQL",{"key":347,"name":348,"field":334},"mongodb","MongoDB",{"key":350,"name":351,"field":334},"redis","Redis",{"key":353,"name_tr":354,"name_en":355,"sort":356,"specializations":357},"mobile","Mobil","Mobile",7,[358,359,362,365,368],{"key":239,"name":240,"field":353},{"key":360,"name":361,"field":353},"ios-swift","iOS (Swift)",{"key":363,"name":364,"field":353},"android-kotlin","Android (Kotlin)",{"key":366,"name":367,"field":353},"flutter","Flutter",{"key":369,"name":370,"field":353},"react-native","React Native",{"key":372,"name_tr":373,"name_en":374,"sort":375,"specializations":376},"security","Güvenlik","Security",8,[377,378,381,384,387,390],{"key":239,"name":240,"field":372},{"key":379,"name":380,"field":372},"appsec","AppSec",{"key":382,"name":383,"field":372},"offensive-pentest","Offensive \u002F Pentest",{"key":385,"name":386,"field":372},"cloud-security","Cloud Security",{"key":388,"name":389,"field":372},"devsecops","DevSecOps",{"key":391,"name":392,"field":372},"blue-team-incident","Blue Team \u002F Incident",{"key":394,"name_tr":395,"name_en":396,"sort":397,"specializations":398},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[399,400,403,406,409],{"key":239,"name":240,"field":394},{"key":401,"name":402,"field":394},"test-automation","Test Automation",{"key":404,"name":405,"field":394},"sdet","SDET",{"key":407,"name":408,"field":394},"performance-testing","Performance Testing",{"key":410,"name":411,"field":394},"mobile-qa","Mobile QA",{"key":413,"name_tr":414,"name_en":414,"sort":415,"specializations":416},"data-engineer","Data Engineer",10,[417,418,421,424],{"key":239,"name":240,"field":413},{"key":419,"name":420,"field":413},"pipelines-etl","Pipelines \u002F ETL",{"key":422,"name":423,"field":413},"streaming","Streaming",{"key":425,"name":426,"field":413},"warehousing","Warehousing",{"key":5,"name_tr":428,"name_en":6,"sort":429,"specializations":430},"Oyun Geliştirme",11,[431,432,433,434,435,436],{"key":239,"name":240,"field":5},{"key":142,"name":143,"field":5},{"key":145,"name":146,"field":5},{"key":132,"name":133,"field":5},{"key":136,"name":137,"field":5},{"key":139,"name":140,"field":5},{"key":438,"name_tr":439,"name_en":439,"sort":440,"specializations":441},"ml-engineer","ML Engineer",12,[442,443],{"key":239,"name":240,"field":438},{"key":444,"name":445,"field":438},"classical-ml","Classical ML",[14,15,16],{"junior":448,"mid":450,"senior":451},{"questions":449,"median_sec":3},20,{"questions":449,"median_sec":3},{"questions":449,"median_sec":3},[453,10],"tr",[455,456],"google","github",27600,true]