[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:devops-cloud\u002Fsenior":4,"config":256},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":152,"samples":172},"devops-cloud","DevOps \u002F Cloud","senior","","en",2104,3375,[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,116,119,122,125,128,131,134,137,140,143,146,149],{"key":17,"name":18,"count":19},"aws-compute-ec2-lambda","Aws Compute Ec2 Lambda",75,{"key":21,"name":22,"count":19},"aws-databases-rds-dynamodb","Aws Databases Rds Dynamodb",{"key":24,"name":25,"count":19},"aws-iam-security","Aws Iam Security",{"key":27,"name":28,"count":19},"aws-messaging-eventing","Aws Messaging Eventing",{"key":30,"name":31,"count":19},"aws-networking-vpc","Aws Networking Vpc",{"key":33,"name":34,"count":19},"aws-storage-s3-ebs","Aws Storage S3 Ebs",{"key":36,"name":37,"count":19},"azure-compute-vm-appservice","Azure Compute Vm Appservice",{"key":39,"name":40,"count":19},"azure-databases-sql-cosmosdb","Azure Databases Sql Cosmosdb",{"key":42,"name":43,"count":19},"azure-iam-security","Azure Iam Security",{"key":45,"name":46,"count":19},"azure-messaging-eventing","Azure Messaging Eventing",{"key":48,"name":49,"count":19},"azure-networking-vnet","Azure Networking Vnet",{"key":51,"name":52,"count":19},"azure-storage-blob-managed-disk","Azure Storage Blob Managed Disk",{"key":54,"name":55,"count":19},"ci-cd-pipelines","Ci Cd Pipelines",{"key":57,"name":58,"count":19},"cloud-architecture-scaling","Cloud Architecture Scaling",{"key":60,"name":61,"count":19},"containers-orchestration","Containers Orchestration",{"key":63,"name":64,"count":19},"deployment-release-strategies","Deployment Release Strategies",{"key":66,"name":67,"count":19},"gcp-compute-gce-cloudrun","Gcp Compute Gce Cloudrun",{"key":69,"name":70,"count":19},"gcp-databases-cloudsql-spanner-firestore","Gcp Databases Cloudsql Spanner Firestore",{"key":72,"name":73,"count":19},"gcp-iam-security","Gcp Iam Security",{"key":75,"name":76,"count":19},"gcp-messaging-eventing","Gcp Messaging Eventing",{"key":78,"name":79,"count":19},"gcp-networking-vpc","Gcp Networking Vpc",{"key":81,"name":82,"count":19},"gcp-storage-gcs-persistent-disk","Gcp Storage Gcs Persistent Disk",{"key":84,"name":85,"count":19},"infrastructure-as-code","Infrastructure As Code",{"key":87,"name":88,"count":19},"k8s-config-secrets","K8s Config Secrets",{"key":90,"name":91,"count":19},"k8s-observability-troubleshooting","K8s Observability Troubleshooting",{"key":93,"name":94,"count":19},"k8s-scheduling-resources","K8s Scheduling Resources",{"key":96,"name":97,"count":19},"k8s-services-networking","K8s Services Networking",{"key":99,"name":100,"count":19},"k8s-storage","K8s Storage",{"key":102,"name":103,"count":19},"k8s-workloads","K8s Workloads",{"key":105,"name":106,"count":19},"linux-filesystem-permissions-links","Linux Filesystem Permissions Links",{"key":108,"name":109,"count":19},"linux-networking-tools-troubleshooting","Linux Networking Tools Troubleshooting",{"key":111,"name":112,"count":19},"linux-performance-monitoring-resource-limits","Linux Performance Monitoring Resource Limits",{"key":114,"name":115,"count":19},"linux-process-management-signals","Linux Process Management Signals",{"key":117,"name":118,"count":19},"linux-shell-scripting-ops-automation","Linux Shell Scripting Ops Automation",{"key":120,"name":121,"count":19},"linux-systemd-service-management","Linux Systemd Service Management",{"key":123,"name":124,"count":19},"networking-dns-loadbalancing","Networking Dns Loadbalancing",{"key":126,"name":127,"count":19},"observability-monitoring","Observability Monitoring",{"key":129,"name":130,"count":19},"reliability-incident-sre","Reliability Incident Sre",{"key":132,"name":133,"count":19},"security-iam-secrets","Security Iam Secrets",{"key":135,"name":136,"count":19},"terraform-hcl-language-expressions","Terraform Hcl Language Expressions",{"key":138,"name":139,"count":19},"terraform-modules-workspaces","Terraform Modules Workspaces",{"key":141,"name":142,"count":19},"terraform-plan-apply-drift-import","Terraform Plan Apply Drift Import",{"key":144,"name":145,"count":19},"terraform-providers-lifecycle-provisioners","Terraform Providers Lifecycle Provisioners",{"key":147,"name":148,"count":19},"terraform-state-backend-locking","Terraform State Backend Locking",{"key":150,"name":151,"count":19},"terraform-testing-policy-cicd","Terraform Testing Policy Cicd",[153,157,160,163,166,169],{"key":154,"name":155,"count":156},"aws","AWS",450,{"key":158,"name":159,"count":156},"azure","Azure",{"key":161,"name":162,"count":156},"gcp","GCP",{"key":164,"name":165,"count":156},"kubernetes","Kubernetes",{"key":167,"name":168,"count":156},"linux","Linux",{"key":170,"name":171,"count":156},"terraform","Terraform",[173,191,204,217,230,243],{"id":174,"topic":55,"difficulty":175,"body":176,"options":177,"correct_key":179,"explanation":190},"019f56bb-b909-7008-92e5-751a3c4fdf13",3,"In a GitOps setup, the desired state of an environment is described declaratively in a Git repository, and an automated controller continuously reconciles the live environment to match what is committed there. Compared to a pipeline that runs `deploy` commands directly against the environment, what is the key structural difference GitOps introduces?",[178,181,184,187],{"key":179,"text":180},"a","Git becomes the source of truth for desired state, and reconciliation is pulled and enforced continuously, not just at deploy time.",{"key":182,"text":183},"b","GitOps removes the need for any pipeline at all, since Git alone can build and test application code.",{"key":185,"text":186},"c","GitOps requires that every environment share a single Git repository with no separation between them.",{"key":188,"text":189},"d","GitOps means deployments can only be triggered manually, since automated reconciliation is disabled by design.","The defining shift in GitOps is that Git holds the declared desired state, and a controller continuously pulls and reconciles the live environment toward it, rather than a one-off push happening only when a pipeline runs a deploy command. This also gives continuous drift correction, not just a one-time apply. Option b is false — GitOps still needs a pipeline for build\u002Ftest, it changes how deployment reconciliation happens, not whether a pipeline exists. Option c invents an unnecessary constraint; environments are commonly still separated (by repo, branch, or directory). Option d contradicts GitOps, which specifically automates reconciliation rather than disabling it.",{"id":192,"topic":55,"difficulty":175,"body":193,"options":194,"correct_key":182,"explanation":203},"019f56bb-b909-78d1-b5bb-feba73c38317","Two teams both say their pipeline \"deploys to production automatically after tests pass.\" Team A still requires someone to click a manual approval button before the deploy step runs. Team B has no manual gate at all — a passing pipeline deploys straight to production. Which pair of terms most accurately labels Team A's and Team B's practices, respectively?",[195,197,199,201],{"key":179,"text":196},"Team A practices continuous integration; Team B practices continuous delivery.",{"key":182,"text":198},"Team A practices continuous delivery; Team B practices continuous deployment.",{"key":185,"text":200},"Team A practices continuous deployment; Team B practices continuous delivery.",{"key":188,"text":202},"Team A and Team B both practice identical continuous deployment, since both deploy automatically.","Continuous delivery keeps every validated change release-ready but leaves the final production release decision to a human (Team A's manual gate). Continuous deployment removes that gate entirely, so every change that passes the pipeline goes live automatically (Team B). Option a mislabels both teams as earlier stages than they actually are. Option c swaps the two definitions. Option d incorrectly claims no distinction exists, ignoring the manual approval difference that separates the two practices.",{"id":205,"topic":55,"difficulty":175,"body":206,"options":207,"correct_key":185,"explanation":216},"019f56bb-b90c-7643-a573-781470f580b4","During an investigation, an engineer notices that a database password was printed in plain text in the pipeline logs for a job that ran three weeks ago, because a script used `echo $DB_PASSWORD` for debugging before it was removed. The logs are still retained and viewable by anyone with read access to the pipeline. What is the most appropriate immediate response?",[208,210,212,214],{"key":179,"text":209},"Do nothing further, since the debug line printing the password has already been removed from the script.",{"key":182,"text":211},"Rely on the pipeline's log masking feature to redact the password retroactively in the stored old logs.",{"key":185,"text":213},"Rotate the exposed credential and treat it as compromised, in addition to having removed the debug line.",{"key":188,"text":215},"Wait until the next scheduled credential rotation cycle, since an unused old log is unlikely to be read.","Once a secret has been printed to logs anyone with read access could view, it must be treated as compromised regardless of whether the debug line causing it was later removed — rotating it closes the actual exposure window. Option a only prevents future exposure, it does nothing about the credential already visible in retained logs. Option b is a common misconception: masking is typically applied at print-time going forward, not retroactively to already-stored log content. Option d needlessly delays remediation of a known, already-exposed secret.",{"id":218,"topic":55,"difficulty":175,"body":219,"options":220,"correct_key":185,"explanation":229},"019f56bb-b90f-7329-ad97-08e1c7bae2cd","A monorepo contains several independent services. Currently, every push runs the full pipeline for all services, even when a change only touches one service's directory. This makes every run take much longer than necessary. What pipeline design change would best address this?",[221,223,225,227],{"key":179,"text":222},"Split the monorepo into a separate repository per service, since path-based filtering is otherwise impossible.",{"key":182,"text":224},"Remove the test stage for services that were not directly touched, but still run their build and deploy stages.",{"key":185,"text":226},"Configure the pipeline to detect changed paths and only run jobs for the services whose directories changed.",{"key":188,"text":228},"Increase the number of parallel runner machines so the full pipeline for all services finishes at the same time.","Path-based triggering (change detection on directories\u002Ffiles) lets a monorepo pipeline run only the jobs relevant to what actually changed, cutting run time without reducing test coverage where it matters. Option a is an unnecessarily drastic structural change; most CI\u002FCD tools support path filters within a single monorepo. Option b is unsafe — skipping tests while still deploying an untouched-looking service risks deploying based on stale validation. Option d just throws more hardware at the problem instead of avoiding unnecessary work, and doesn't reduce wasted compute.",{"id":231,"topic":55,"difficulty":175,"body":232,"options":233,"correct_key":179,"explanation":242},"019f56bb-b910-7145-8c95-c5351f289b77","A particular integration test fails intermittently across unrelated pull requests, roughly one run in five, with no consistent code change correlating to the failures. Developers have started routinely re-running the pipeline whenever it fails, without investigating further. What is the main long-term risk of leaving this pattern unaddressed?",[234,236,238,240],{"key":179,"text":235},"The team gradually loses trust in pipeline failures and may reflexively re-run past a genuine regression someday.",{"key":182,"text":237},"The pipeline tool will eventually refuse to run the same job twice, permanently blocking further re-runs.",{"key":185,"text":239},"The flaky test will automatically be promoted to a required check on every branch, blocking all future merges.",{"key":188,"text":241},"Build caching will silently corrupt because of the repeated re-runs, producing invalid artifacts going forward.","A known flaky test that people habitually re-run past, rather than fix or quarantine, erodes trust in the pipeline as a signal — the real danger is that a genuine regression could someday be dismissed as 'probably just the flaky test' and re-run past instead of investigated. Option b, c, and d all invent mechanical failures that pipeline tools don't actually exhibit; the real risk here is a human\u002Fprocess one (eroded trust), not a technical malfunction of the tool itself.",{"id":244,"topic":58,"difficulty":175,"body":245,"options":246,"correct_key":185,"explanation":255},"019f56bb-b91b-7957-b842-c1847f4371e6","A team runs a service whose traffic varies throughout the day, but whose baseline load is predictable and stable over the year. What is the most cost-effective infrastructure strategy?",[247,249,251,253],{"key":179,"text":248},"Run all capacity purely on-demand, since committing to reserved capacity always reduces the flexibility needed for a varying workload",{"key":182,"text":250},"Reserve all capacity needed for the daily peak, since reserved pricing always removes the need to think about autoscaling entirely",{"key":185,"text":252},"Cover the predictable baseline load with reserved capacity, and handle the variable\u002Fpeak traffic with on-demand instances added via autoscaling",{"key":188,"text":254},"Disable autoscaling entirely and run a fixed number of large on-demand instances sized for the peak at all times, to keep the setup simple","Mixing reserved capacity for the known, steady baseline with on-demand (often autoscaled) capacity for the unpredictable peak captures the discount on stable usage while keeping flexibility for the variable part. Option b overcommits reserved capacity to cover peak load that doesn't happen most of the day, wasting money. Option d abandons autoscaling and pays peak-level cost around the clock, which is the most expensive option described.",{"fields":257,"seniorities":430,"interview_shapes":431,"locales":436,"oauth":438,"question_count":441,"coach_enabled":442,"jd_match_enabled":442},[258,284,305,321,331,344,363,382,404,411,417,424],{"key":259,"name_tr":260,"name_en":260,"sort":261,"specializations":262},"backend","Backend",1,[263,266,269,272,275,278,281],{"key":264,"name":265,"field":259},"general","Genel",{"key":267,"name":268,"field":259},"go","Go",{"key":270,"name":271,"field":259},"python","Python",{"key":273,"name":274,"field":259},"java","Java",{"key":276,"name":277,"field":259},"csharp","C#\u002F.NET",{"key":279,"name":280,"field":259},"nodejs","Node.js",{"key":282,"name":283,"field":259},"php","PHP",{"key":285,"name_tr":286,"name_en":286,"sort":287,"specializations":288},"frontend","Frontend",2,[289,290,293,296,299,302],{"key":264,"name":265,"field":285},{"key":291,"name":292,"field":285},"javascript","JavaScript",{"key":294,"name":295,"field":285},"typescript","TypeScript",{"key":297,"name":298,"field":285},"react","React",{"key":300,"name":301,"field":285},"vue","Vue",{"key":303,"name":304,"field":285},"angular","Angular",{"key":306,"name_tr":307,"name_en":307,"sort":175,"specializations":308},"fullstack","Fullstack",[309,310,311,312,313,314,315,316,317,318,319,320],{"key":264,"name":265,"field":306},{"key":267,"name":268,"field":259},{"key":270,"name":271,"field":259},{"key":273,"name":274,"field":259},{"key":276,"name":277,"field":259},{"key":279,"name":280,"field":259},{"key":282,"name":283,"field":259},{"key":291,"name":292,"field":285},{"key":294,"name":295,"field":285},{"key":297,"name":298,"field":285},{"key":300,"name":301,"field":285},{"key":303,"name":304,"field":285},{"key":5,"name_tr":6,"name_en":6,"sort":322,"specializations":323},4,[324,325,326,327,328,329,330],{"key":264,"name":265,"field":5},{"key":154,"name":155,"field":5},{"key":161,"name":162,"field":5},{"key":158,"name":159,"field":5},{"key":164,"name":165,"field":5},{"key":170,"name":171,"field":5},{"key":167,"name":168,"field":5},{"key":332,"name_tr":333,"name_en":333,"sort":334,"specializations":335},"ai-engineer","AI Engineer",5,[336,337,338,341],{"key":264,"name":265,"field":332},{"key":270,"name":271,"field":332},{"key":339,"name":340,"field":332},"llm-rag","LLM\u002FRAG",{"key":342,"name":343,"field":332},"mlops","MLOps",{"key":345,"name_tr":346,"name_en":347,"sort":348,"specializations":349},"database","Veritabanı","Database",6,[350,351,354,357,360],{"key":264,"name":265,"field":345},{"key":352,"name":353,"field":345},"postgresql","PostgreSQL",{"key":355,"name":356,"field":345},"mysql","MySQL",{"key":358,"name":359,"field":345},"mongodb","MongoDB",{"key":361,"name":362,"field":345},"redis","Redis",{"key":364,"name_tr":365,"name_en":366,"sort":367,"specializations":368},"mobile","Mobil","Mobile",7,[369,370,373,376,379],{"key":264,"name":265,"field":364},{"key":371,"name":372,"field":364},"ios-swift","iOS (Swift)",{"key":374,"name":375,"field":364},"android-kotlin","Android (Kotlin)",{"key":377,"name":378,"field":364},"flutter","Flutter",{"key":380,"name":381,"field":364},"react-native","React Native",{"key":383,"name_tr":384,"name_en":385,"sort":386,"specializations":387},"security","Güvenlik","Security",8,[388,389,392,395,398,401],{"key":264,"name":265,"field":383},{"key":390,"name":391,"field":383},"appsec","AppSec",{"key":393,"name":394,"field":383},"offensive-pentest","Offensive \u002F Pentest",{"key":396,"name":397,"field":383},"cloud-security","Cloud Security",{"key":399,"name":400,"field":383},"devsecops","DevSecOps",{"key":402,"name":403,"field":383},"blue-team-incident","Blue Team \u002F Incident",{"key":405,"name_tr":406,"name_en":407,"sort":408,"specializations":409},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[410],{"key":264,"name":265,"field":405},{"key":412,"name_tr":413,"name_en":413,"sort":414,"specializations":415},"data-engineer","Data Engineer",10,[416],{"key":264,"name":265,"field":412},{"key":418,"name_tr":419,"name_en":420,"sort":421,"specializations":422},"game-dev","Oyun Geliştirme","Game Development",11,[423],{"key":264,"name":265,"field":418},{"key":425,"name_tr":426,"name_en":426,"sort":427,"specializations":428},"ml-engineer","ML Engineer",12,[429],{"key":264,"name":265,"field":425},[13,14,7],{"junior":432,"mid":434,"senior":435},{"questions":433,"median_sec":3},20,{"questions":433,"median_sec":3},{"questions":433,"median_sec":3},[437,9],"tr",[439,440],"google","github",21750,true]