[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:data-engineer\u002Fdata-pipeline-reliability":4,"config":126},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":40,"samples":41},"data-engineer","Data Engineer","","data-pipeline-reliability","Data Pipeline Reliability","en",75,600,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,34,37],{"key":19,"name":20,"count":11},"data-governance-lineage","Data Governance Lineage",{"key":22,"name":23,"count":11},"data-modeling-warehousing","Data Modeling Warehousing",{"key":25,"name":26,"count":11},"data-partitioning-scaling","Data Partitioning Scaling",{"key":28,"name":29,"count":11},"data-pipeline-design","Data Pipeline Design",{"key":31,"name":32,"count":11},"data-pipeline-orchestration","Data Pipeline Orchestration",{"key":8,"name":9,"count":11},{"key":35,"name":36,"count":11},"data-quality-validation","Data Quality Validation",{"key":38,"name":39,"count":11},"streaming-fundamentals","Streaming Fundamentals",[],[42,60,74,87,100,113],{"id":43,"topic":9,"difficulty":44,"body":45,"options":46,"correct_key":51,"explanation":59},"019f6a40-d722-7670-a998-5ad2eefcd22d",1,"What is the key difference between a fail-fast and a dead-letter-queue (DLQ) error-handling strategy in a data pipeline?",[47,50,53,56],{"key":48,"text":49},"a","Fail-fast retries the failing record indefinitely, while a dead-letter-queue drops it immediately without keeping any record.",{"key":51,"text":52},"b","Fail-fast stops the whole run at the first error; a DLQ sets failing records aside instead.",{"key":54,"text":55},"c","Fail-fast and dead-letter-queue are simply two names teams use for the exact same technique.",{"key":57,"text":58},"d","Fail-fast only applies to streaming pipelines, while a dead-letter-queue only applies to batch pipelines.","Fail-fast halts the entire run at the first error so a bad state cannot propagate further, trading availability for safety. A dead-letter-queue instead isolates only the problematic records for later inspection, letting the rest of the batch keep moving. (a) misdescribes both strategies. (c) is wrong — they represent different trade-offs. (d) is a false restriction; both patterns can be applied to either processing style.",{"id":61,"topic":9,"difficulty":62,"body":63,"options":64,"correct_key":48,"explanation":73},"019f6a40-d723-7646-b0d8-7e553bc1dc9c",2,"A retry policy allows a maximum of 3 total attempts (1 original + 2 retries) with a fixed 5-second delay between attempts. The original attempt fails at t=0. If every retry also fails instantly, at what time does the pipeline give up and mark the operation as permanently failed?",[65,67,69,71],{"key":48,"text":66},"At t=10 seconds, once the third total attempt fails and the limit is reached.",{"key":51,"text":68},"At t=15 seconds, after a fourth attempt is made beyond the configured limit.",{"key":54,"text":70},"At t=5 seconds, after only the first retry, ignoring the configured maximum.",{"key":57,"text":72},"Immediately at t=0, since the original attempt already counts as a permanent failure.","Attempt 1 fails at t=0; after a 5s delay, attempt 2 (retry 1) fails at t=5; after another 5s delay, attempt 3 (retry 2) fails at t=10. That is 3 total attempts, so the policy's limit is reached and the operation is marked permanently failed at t=10s. (b) exceeds the configured attempt limit. (c) stops before the limit is reached. (d) ignores that retries are configured at all.",{"id":75,"topic":9,"difficulty":62,"body":76,"options":77,"correct_key":54,"explanation":86},"019f6a40-d724-7606-bb92-3cede6afa54f","In an exponential backoff retry strategy, how does the wait time between successive retry attempts typically behave?",[78,80,82,84],{"key":48,"text":79},"It stays exactly constant regardless of how many attempts have already failed.",{"key":51,"text":81},"It decreases with each attempt, so failing operations get retried faster and faster over time.",{"key":54,"text":83},"It grows roughly exponentially with each failure, often combined with random jitter.",{"key":57,"text":85},"It resets to zero after every attempt and is only meaningful for the very first retry.","Exponential backoff multiplies the delay after each consecutive failure (e.g., 1s, 2s, 4s, 8s...), and jitter is commonly added so many clients don't retry at the exact same instant. (a) describes a fixed-delay strategy, not exponential backoff. (b) is the opposite of the intended behavior. (d) misunderstands the pattern entirely.",{"id":88,"topic":9,"difficulty":44,"body":89,"options":90,"correct_key":51,"explanation":99},"019f6a40-d725-7772-8e17-ed33dc885687","What does a pipeline SLA (service level agreement) typically define in a data pipeline context?",[91,93,95,97],{"key":48,"text":92},"The exact internal algorithm used to transform the data before it is loaded into its destination.",{"key":51,"text":94},"An agreed expectation for when data must be available, plus acceptable quality or completeness.",{"key":54,"text":96},"The maximum number of engineers who are allowed to work on the pipeline's codebase.",{"key":57,"text":98},"A guarantee that the pipeline's code will never contain a bug.","A pipeline SLA is a commitment about outcomes consumers can rely on — typically timeliness (by when data is ready) and sometimes quality thresholds — not an implementation detail. (a), (c), and (d) describe things unrelated to what an SLA actually commits to.",{"id":101,"topic":9,"difficulty":62,"body":102,"options":103,"correct_key":51,"explanation":112},"019f6a40-d726-73a0-a36d-fdc5251e4cd9","A dataset is expected to update every hour. It last updated successfully at 14:00. The current time is 16:45. What is the current data freshness lag?",[104,106,108,110],{"key":48,"text":105},"1 hour 45 minutes",{"key":51,"text":107},"2 hours 45 minutes",{"key":54,"text":109},"45 minutes",{"key":57,"text":111},"3 hours 45 minutes","Freshness lag is the elapsed time since the last successful update: 16:45 minus 14:00 = 2 hours 45 minutes. Since the expected cadence is hourly, this also means the data is well overdue. (a), (c), and (d) are simple arithmetic errors.",{"id":114,"topic":9,"difficulty":62,"body":115,"options":116,"correct_key":57,"explanation":125},"019f6a40-d726-7aac-8d10-63594d9458ef","A downstream report shows unusually low numbers for a metric, but the pipeline completed with no errors and no failed job runs. What best describes this situation?",[117,119,121,123],{"key":48,"text":118},"This cannot happen; a pipeline that completes without errors always produces correct output.",{"key":51,"text":120},"This is a normal SLA breach, since SLA violations always show up as job failures.",{"key":54,"text":122},"This indicates only a retry-policy misconfiguration; more retries would have caught the problem.",{"key":57,"text":124},"This may be silent data corruption: the data is wrong or incomplete despite reported success.","A job can exit successfully while still producing wrong or incomplete output — for example due to an upstream schema change or a subtle logic bug that doesn't raise an exception. This is the defining trait of silent data corruption: no error signal, but bad data. (a) is false — success status does not guarantee correctness. (b) confuses SLA timeliness with data correctness. (c) misattributes the cause; retries address transient failures, not silent logic\u002Fschema issues.",{"fields":127,"seniorities":311,"interview_shapes":312,"locales":317,"oauth":319,"question_count":322,"coach_enabled":323,"jd_match_enabled":323},[128,153,173,190,214,227,246,265,287,294,298,305],{"key":129,"name_tr":130,"name_en":130,"sort":44,"specializations":131},"backend","Backend",[132,135,138,141,144,147,150],{"key":133,"name":134,"field":129},"general","Genel",{"key":136,"name":137,"field":129},"go","Go",{"key":139,"name":140,"field":129},"python","Python",{"key":142,"name":143,"field":129},"java","Java",{"key":145,"name":146,"field":129},"csharp","C#\u002F.NET",{"key":148,"name":149,"field":129},"nodejs","Node.js",{"key":151,"name":152,"field":129},"php","PHP",{"key":154,"name_tr":155,"name_en":155,"sort":62,"specializations":156},"frontend","Frontend",[157,158,161,164,167,170],{"key":133,"name":134,"field":154},{"key":159,"name":160,"field":154},"javascript","JavaScript",{"key":162,"name":163,"field":154},"typescript","TypeScript",{"key":165,"name":166,"field":154},"react","React",{"key":168,"name":169,"field":154},"vue","Vue",{"key":171,"name":172,"field":154},"angular","Angular",{"key":174,"name_tr":175,"name_en":175,"sort":176,"specializations":177},"fullstack","Fullstack",3,[178,179,180,181,182,183,184,185,186,187,188,189],{"key":133,"name":134,"field":174},{"key":136,"name":137,"field":129},{"key":139,"name":140,"field":129},{"key":142,"name":143,"field":129},{"key":145,"name":146,"field":129},{"key":148,"name":149,"field":129},{"key":151,"name":152,"field":129},{"key":159,"name":160,"field":154},{"key":162,"name":163,"field":154},{"key":165,"name":166,"field":154},{"key":168,"name":169,"field":154},{"key":171,"name":172,"field":154},{"key":191,"name_tr":192,"name_en":192,"sort":193,"specializations":194},"devops-cloud","DevOps \u002F Cloud",4,[195,196,199,202,205,208,211],{"key":133,"name":134,"field":191},{"key":197,"name":198,"field":191},"aws","AWS",{"key":200,"name":201,"field":191},"gcp","GCP",{"key":203,"name":204,"field":191},"azure","Azure",{"key":206,"name":207,"field":191},"kubernetes","Kubernetes",{"key":209,"name":210,"field":191},"terraform","Terraform",{"key":212,"name":213,"field":191},"linux","Linux",{"key":215,"name_tr":216,"name_en":216,"sort":217,"specializations":218},"ai-engineer","AI Engineer",5,[219,220,221,224],{"key":133,"name":134,"field":215},{"key":139,"name":140,"field":215},{"key":222,"name":223,"field":215},"llm-rag","LLM\u002FRAG",{"key":225,"name":226,"field":215},"mlops","MLOps",{"key":228,"name_tr":229,"name_en":230,"sort":231,"specializations":232},"database","Veritabanı","Database",6,[233,234,237,240,243],{"key":133,"name":134,"field":228},{"key":235,"name":236,"field":228},"postgresql","PostgreSQL",{"key":238,"name":239,"field":228},"mysql","MySQL",{"key":241,"name":242,"field":228},"mongodb","MongoDB",{"key":244,"name":245,"field":228},"redis","Redis",{"key":247,"name_tr":248,"name_en":249,"sort":250,"specializations":251},"mobile","Mobil","Mobile",7,[252,253,256,259,262],{"key":133,"name":134,"field":247},{"key":254,"name":255,"field":247},"ios-swift","iOS (Swift)",{"key":257,"name":258,"field":247},"android-kotlin","Android (Kotlin)",{"key":260,"name":261,"field":247},"flutter","Flutter",{"key":263,"name":264,"field":247},"react-native","React Native",{"key":266,"name_tr":267,"name_en":268,"sort":269,"specializations":270},"security","Güvenlik","Security",8,[271,272,275,278,281,284],{"key":133,"name":134,"field":266},{"key":273,"name":274,"field":266},"appsec","AppSec",{"key":276,"name":277,"field":266},"offensive-pentest","Offensive \u002F Pentest",{"key":279,"name":280,"field":266},"cloud-security","Cloud Security",{"key":282,"name":283,"field":266},"devsecops","DevSecOps",{"key":285,"name":286,"field":266},"blue-team-incident","Blue Team \u002F Incident",{"key":288,"name_tr":289,"name_en":290,"sort":291,"specializations":292},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[293],{"key":133,"name":134,"field":288},{"key":5,"name_tr":6,"name_en":6,"sort":295,"specializations":296},10,[297],{"key":133,"name":134,"field":5},{"key":299,"name_tr":300,"name_en":301,"sort":302,"specializations":303},"game-dev","Oyun Geliştirme","Game Development",11,[304],{"key":133,"name":134,"field":299},{"key":306,"name_tr":307,"name_en":307,"sort":308,"specializations":309},"ml-engineer","ML Engineer",12,[310],{"key":133,"name":134,"field":306},[14,15,16],{"junior":313,"mid":315,"senior":316},{"questions":314,"median_sec":3},20,{"questions":314,"median_sec":3},{"questions":314,"median_sec":3},[318,10],"tr",[320,321],"google","github",21750,true]