[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:database\u002Fsenior":4,"config":214},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":116,"samples":130},"database","Database","senior","","en",1595,2475,[13,14,7],"junior","mid",[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],{"key":17,"name":18,"count":19},"backup-recovery","Backup Recovery",75,{"key":21,"name":22,"count":19},"data-modeling","Data Modeling",{"key":24,"name":25,"count":19},"indexing","Indexing",{"key":27,"name":28,"count":19},"mongodb-aggregation","Mongodb Aggregation",{"key":30,"name":31,"count":19},"mongodb-indexes-queries","Mongodb Indexes Queries",{"key":33,"name":34,"count":19},"mongodb-operations","Mongodb Operations",{"key":36,"name":37,"count":19},"mongodb-replication-sharding","Mongodb Replication Sharding",{"key":39,"name":40,"count":19},"mongodb-schema-modeling","Mongodb Schema Modeling",{"key":42,"name":43,"count":19},"mongodb-transactions-consistency","Mongodb Transactions Consistency",{"key":45,"name":46,"count":19},"mysql-indexes","Mysql Indexes",{"key":48,"name":49,"count":19},"mysql-innodb-transactions","Mysql Innodb Transactions",{"key":51,"name":52,"count":19},"mysql-operations","Mysql Operations",{"key":54,"name":55,"count":19},"mysql-query-optimization","Mysql Query Optimization",{"key":57,"name":58,"count":19},"mysql-replication-scaling","Mysql Replication Scaling",{"key":60,"name":61,"count":19},"mysql-types-constraints","Mysql Types Constraints",{"key":63,"name":64,"count":19},"nosql-models","Nosql Models",{"key":66,"name":67,"count":19},"performance-tuning","Performance Tuning",{"key":69,"name":70,"count":19},"pg-indexes","Pg Indexes",{"key":72,"name":73,"count":19},"pg-mvcc-vacuum","Pg Mvcc Vacuum",{"key":75,"name":76,"count":19},"pg-operations","Pg Operations",{"key":78,"name":79,"count":19},"pg-query-planning","Pg Query Planning",{"key":81,"name":82,"count":19},"pg-transactions-locking","Pg Transactions Locking",{"key":84,"name":85,"count":19},"pg-types-constraints","Pg Types Constraints",{"key":87,"name":88,"count":19},"query-optimization","Query Optimization",{"key":90,"name":91,"count":19},"redis-cluster-sharding","Redis Cluster Sharding",{"key":93,"name":94,"count":19},"redis-data-structures","Redis Data Structures",{"key":96,"name":97,"count":19},"redis-expiration-eviction","Redis Expiration Eviction",{"key":99,"name":100,"count":19},"redis-persistence","Redis Persistence",{"key":102,"name":103,"count":19},"redis-replication-sentinel","Redis Replication Sentinel",{"key":105,"name":106,"count":19},"redis-transactions-scripting","Redis Transactions Scripting",{"key":108,"name":109,"count":19},"replication-scaling","Replication Scaling",{"key":111,"name":112,"count":19},"security-access","Security Access",{"key":114,"name":115,"count":19},"transactions-isolation","Transactions Isolation",[117,121,124,127],{"key":118,"name":119,"count":120},"mongodb","MongoDB",450,{"key":122,"name":123,"count":120},"mysql","MySQL",{"key":125,"name":126,"count":120},"postgresql","PostgreSQL",{"key":128,"name":129,"count":120},"redis","Redis",[131,149,162,175,188,201],{"id":132,"topic":18,"difficulty":133,"body":134,"options":135,"correct_key":146,"explanation":148},"019f56bb-b5c9-7662-ba9f-69f3afa36dd6",3,"You must move a database to a server running a *different major version* on a *different CPU architecture*.\n```bash\n# option A (physical): copy the raw data files\n# option B (logical): pg_dump olddb | psql -h newhost newdb\n```\nWhich is generally the safer choice, and why?",[136,139,142,145],{"key":137,"text":138},"a","The physical file copy, since raw data files are always compatible across versions and CPU architectures",{"key":140,"text":141},"b","Neither works — data moves between servers only by configuring streaming replication first",{"key":143,"text":144},"c","Either is equivalent here, because the backup format has no bearing on cross-platform portability",{"key":146,"text":147},"d","The logical SQL dump, since it is portable and can be reloaded into a different version or platform","Physical backups copy engine-internal file formats that can differ between major versions and architectures, so restoring them elsewhere is fragile. A logical dump is engine-readable SQL\u002Fdata, which is exactly why it is the standard tool for cross-version and cross-platform moves. Replication (b) keeps copies in sync but is not a prerequisite for migration.",{"id":150,"topic":18,"difficulty":133,"body":151,"options":152,"correct_key":140,"explanation":161},"019f56bb-b5cc-782e-a9ce-b8ae4ac36b19","```bash\npg_dump proddb > \u002Fbackups\u002Fnightly.sql   # cron job, exits 0 every night\n```\nThe job has exited successfully every night for a year, but during a real outage the restore fails. What does this classic situation illustrate?",[153,155,157,159],{"key":137,"text":154},"The dump file eventually grew too large for the restore process to load back in",{"key":140,"text":156},"A green backup job proves the command ran, not that the output is restorable",{"key":143,"text":158},"Backups should never be scheduled through cron; a dedicated backup agent is mandatory",{"key":146,"text":160},"SQL dumps become impossible to restore once they are more than a couple of months old","A zero exit code means the dump command ran, not that the output is complete and restorable — a wrong flag, an excluded schema, or a silent truncation stays hidden until you actually restore (e.g. `psql newdb \u003C \u002Fbackups\u002Fnightly.sql` into a scratch database). Only a real test restore turns 'we have backups' into 'we can recover.' The other options misdiagnose the cause.",{"id":163,"topic":18,"difficulty":133,"body":164,"options":165,"correct_key":143,"explanation":174},"019f56bb-b5cd-7a54-ad1d-e6ad3c208782","```bash\ncp -r \u002Fvar\u002Flib\u002Fdb\u002Fdata \u002Fbackup\u002Fdata   # the database is live and serving writes\n```\nAn engineer backs up the data directory with a plain recursive copy while the database keeps accepting writes, with no snapshot or coordination. What is the main risk?",[166,168,170,172],{"key":137,"text":167},"The copy is always a perfect, fully restorable image of the running database",{"key":140,"text":169},"All incoming writes are automatically blocked until the recursive copy finishes",{"key":143,"text":171},"The copy can be internally inconsistent and may not restore to a valid state",{"key":146,"text":173},"The operating system automatically encrypts the copy as it is being written","A live copy reads files over a span of time while data keeps changing, so file A and file B can reflect different moments — a torn, inconsistent image that may refuse to start or contain half-applied transactions. Safe physical backups use a consistent snapshot or the engine's backup mode. The copy is neither blocked (b), guaranteed valid (a), nor encrypted (d).",{"id":176,"topic":18,"difficulty":133,"body":177,"options":178,"correct_key":140,"explanation":187},"019f56bb-b5cf-7efc-b051-49e3545e6076","```sql\nCREATE INDEX idx_orders_customer ON orders (customer_id);\n```\nOn a very large, high-traffic `orders` table, why can running a plain schema change like this in production be risky?",[179,181,183,185],{"key":137,"text":180},"Creating an index permanently corrupts the rows that are already stored inside the table",{"key":140,"text":182},"Some changes lock the table or run long, blocking writes (and, for some DDL, reads) and causing downtime",{"key":143,"text":184},"A schema change like this one can never be undone once it has started executing",{"key":146,"text":186},"The entire table must first be loaded into memory before the statement can run","On a big, busy table an operation like building an index can hold locks and run long enough to stall queries, so teams schedule it in low-traffic windows or use online\u002Fconcurrent variants. It does not corrupt data (a), it is reversible with DROP INDEX (c), and it does not require loading the table into RAM (d).",{"id":189,"topic":18,"difficulty":133,"body":190,"options":191,"correct_key":140,"explanation":200},"019f56bb-b5d1-7a64-9e88-a44f48769b30","You take a full backup every Sunday and a *differential* backup every night Monday–Saturday. To restore the database to its state on Wednesday night, which backups do you need?",[192,194,196,198],{"key":137,"text":193},"Every backup Sunday through Wednesday: the full plus Monday, Tuesday, and Wednesday differentials",{"key":140,"text":195},"Only Sunday's full backup together with Wednesday night's differential",{"key":143,"text":197},"Only Wednesday night's differential backup, used entirely on its own",{"key":146,"text":199},"Only Sunday's full backup, with none of the differential backups","A differential contains everything changed since the last full backup, so each night's differential already includes the previous days' changes — you need just the full plus the one differential for your target night. Applying every differential in the chain (a) describes an *incremental* strategy; a differential alone (c) has no base, and the full alone (d) misses the week's changes.",{"id":202,"topic":22,"difficulty":133,"body":203,"options":204,"correct_key":143,"explanation":213},"019f56bb-b5db-71d5-8180-900d2d74a687","A table `order_items(order_id, product_id, quantity, product_name)` has the composite primary key `(order_id, product_id)`, and `product_name` depends only on `product_id`. What is the problem and its fix?",[205,207,209,211],{"key":137,"text":206},"It violates 1NF because product_name repeats; split each value into its own row",{"key":140,"text":208},"It violates 3NF through a transitive dependency; move quantity into another table",{"key":143,"text":210},"It violates 2NF: product_name is a partial dependency on part of the key; move it to a products table",{"key":146,"text":212},"It violates no normal form; a wide order-line table is always an acceptable design","2NF requires every non-key column to depend on the whole composite key. `product_name` depends only on `product_id`, part of the key — a partial dependency — so it belongs in a `products` table keyed by product_id. The values are atomic, so it is not a 1NF issue (a), and a partial dependency is distinct from the transitive dependency that 3NF addresses (b).",{"fields":215,"seniorities":392,"interview_shapes":393,"locales":398,"oauth":400,"question_count":403,"coach_enabled":404,"jd_match_enabled":404},[216,242,263,279,303,316,325,344,366,373,379,386],{"key":217,"name_tr":218,"name_en":218,"sort":219,"specializations":220},"backend","Backend",1,[221,224,227,230,233,236,239],{"key":222,"name":223,"field":217},"general","Genel",{"key":225,"name":226,"field":217},"go","Go",{"key":228,"name":229,"field":217},"python","Python",{"key":231,"name":232,"field":217},"java","Java",{"key":234,"name":235,"field":217},"csharp","C#\u002F.NET",{"key":237,"name":238,"field":217},"nodejs","Node.js",{"key":240,"name":241,"field":217},"php","PHP",{"key":243,"name_tr":244,"name_en":244,"sort":245,"specializations":246},"frontend","Frontend",2,[247,248,251,254,257,260],{"key":222,"name":223,"field":243},{"key":249,"name":250,"field":243},"javascript","JavaScript",{"key":252,"name":253,"field":243},"typescript","TypeScript",{"key":255,"name":256,"field":243},"react","React",{"key":258,"name":259,"field":243},"vue","Vue",{"key":261,"name":262,"field":243},"angular","Angular",{"key":264,"name_tr":265,"name_en":265,"sort":133,"specializations":266},"fullstack","Fullstack",[267,268,269,270,271,272,273,274,275,276,277,278],{"key":222,"name":223,"field":264},{"key":225,"name":226,"field":217},{"key":228,"name":229,"field":217},{"key":231,"name":232,"field":217},{"key":234,"name":235,"field":217},{"key":237,"name":238,"field":217},{"key":240,"name":241,"field":217},{"key":249,"name":250,"field":243},{"key":252,"name":253,"field":243},{"key":255,"name":256,"field":243},{"key":258,"name":259,"field":243},{"key":261,"name":262,"field":243},{"key":280,"name_tr":281,"name_en":281,"sort":282,"specializations":283},"devops-cloud","DevOps \u002F Cloud",4,[284,285,288,291,294,297,300],{"key":222,"name":223,"field":280},{"key":286,"name":287,"field":280},"aws","AWS",{"key":289,"name":290,"field":280},"gcp","GCP",{"key":292,"name":293,"field":280},"azure","Azure",{"key":295,"name":296,"field":280},"kubernetes","Kubernetes",{"key":298,"name":299,"field":280},"terraform","Terraform",{"key":301,"name":302,"field":280},"linux","Linux",{"key":304,"name_tr":305,"name_en":305,"sort":306,"specializations":307},"ai-engineer","AI Engineer",5,[308,309,310,313],{"key":222,"name":223,"field":304},{"key":228,"name":229,"field":304},{"key":311,"name":312,"field":304},"llm-rag","LLM\u002FRAG",{"key":314,"name":315,"field":304},"mlops","MLOps",{"key":5,"name_tr":317,"name_en":6,"sort":318,"specializations":319},"Veritabanı",6,[320,321,322,323,324],{"key":222,"name":223,"field":5},{"key":125,"name":126,"field":5},{"key":122,"name":123,"field":5},{"key":118,"name":119,"field":5},{"key":128,"name":129,"field":5},{"key":326,"name_tr":327,"name_en":328,"sort":329,"specializations":330},"mobile","Mobil","Mobile",7,[331,332,335,338,341],{"key":222,"name":223,"field":326},{"key":333,"name":334,"field":326},"ios-swift","iOS (Swift)",{"key":336,"name":337,"field":326},"android-kotlin","Android (Kotlin)",{"key":339,"name":340,"field":326},"flutter","Flutter",{"key":342,"name":343,"field":326},"react-native","React Native",{"key":345,"name_tr":346,"name_en":347,"sort":348,"specializations":349},"security","Güvenlik","Security",8,[350,351,354,357,360,363],{"key":222,"name":223,"field":345},{"key":352,"name":353,"field":345},"appsec","AppSec",{"key":355,"name":356,"field":345},"offensive-pentest","Offensive \u002F Pentest",{"key":358,"name":359,"field":345},"cloud-security","Cloud Security",{"key":361,"name":362,"field":345},"devsecops","DevSecOps",{"key":364,"name":365,"field":345},"blue-team-incident","Blue Team \u002F Incident",{"key":367,"name_tr":368,"name_en":369,"sort":370,"specializations":371},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[372],{"key":222,"name":223,"field":367},{"key":374,"name_tr":375,"name_en":375,"sort":376,"specializations":377},"data-engineer","Data Engineer",10,[378],{"key":222,"name":223,"field":374},{"key":380,"name_tr":381,"name_en":382,"sort":383,"specializations":384},"game-dev","Oyun Geliştirme","Game Development",11,[385],{"key":222,"name":223,"field":380},{"key":387,"name_tr":388,"name_en":388,"sort":389,"specializations":390},"ml-engineer","ML Engineer",12,[391],{"key":222,"name":223,"field":387},[13,14,7],{"junior":394,"mid":396,"senior":397},{"questions":395,"median_sec":3},20,{"questions":395,"median_sec":3},{"questions":395,"median_sec":3},[399,9],"tr",[401,402],"google","github",21750,true]