← IBM Interview Insights

IBM·Software Engineer·Technical Phone Screen·Senior

Senior
May 2026

Summary

Technical screen for a DevSecOps role at IBM, pretty deep on Kubernetes tooling. The whole session basically revolved around ArgoCD and GitOps patterns, which I was not expecting to be the entire focus.

Questions Asked (6)

Q1

How does ArgoCD implement the GitOps model, and why is Git treated as the source of truth for deployments?

System DesignTechnical Trade-offs
Author's notes

I gave a reasonable answer about Git holding the desired state and ArgoCD polling for changes, but I fumbled a bit explaining WHY that model is better than imperative kubectl commands.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining GitOps and its core principles, then explain how ArgoCD implements them through its architecture and reconciliation loop. Finally, justify why Git is the source of truth by highlighting benefits like auditability, rollback, and collaboration.

Pro tip: Mention that Git as source of truth enables declarative, version-controlled infrastructure, but also acknowledge challenges like secret management and the need for additional tools (e.g., Sealed Secrets, SOPS) to handle sensitive data securely.

1. Define GitOps

Explain GitOps as a paradigm where Git is the single source of truth for declarative infrastructure and applications, with automated synchronization to the target environment.

2. ArgoCD Architecture

Describe ArgoCD's components: API server, repository server, application controller, and how it continuously monitors Git repositories and compares desired state with live state.

3. Reconciliation Loop

Detail how ArgoCD detects drift and automatically or manually syncs the cluster to match the Git state, ensuring consistency and enabling self-healing.

4. Why Git as Source of Truth

Discuss Git's inherent properties: version history, branching, pull requests, and audit trails, which provide traceability, collaboration, and rollback capabilities.

5. Benefits and Trade-offs

Summarize advantages like increased deployment velocity, reduced human error, and compliance, while acknowledging trade-offs such as secret management and initial learning curve.

Key Points to Mention

  • Declarative configuration stored in Git
  • Continuous reconciliation and drift detection
  • Automated sync policies (auto-sync, self-heal)
  • Audit trail and rollback via Git history
  • Separation of concerns between CI and CD
  • Security considerations for secrets in Git

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q2

Walk me through the ArgoCD Application resource. What are the key fields and what does ArgoCD actually do with it?

System DesignAPI & Integrations
Author's notes

This went fine.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining the ArgoCD Application as a Kubernetes Custom Resource that declaratively specifies the desired state of an application, linking a source (Git repo) to a destination (Kubernetes cluster/namespace). Then, walk through the key fields (source, destination, project, syncPolicy) and explain how ArgoCD continuously reconciles the live state with the desired state, highlighting its GitOps workflow.

Pro tip: Emphasize that ArgoCD is a pull-based GitOps operator, not just a deployment tool—this shows you understand the architectural shift from push-based CI/CD. Also, mention that the Application resource can be managed by ArgoCD itself (app-of-apps pattern), demonstrating advanced usage.

1. Define the Application CRD

Explain that the Application is a Kubernetes Custom Resource Definition (CRD) introduced by ArgoCD to represent a deployable unit. It follows the Kubernetes declarative model.

2. Break down key fields

Describe the essential fields: metadata (name, namespace), spec.source (repoURL, path, targetRevision, helm/kustomize), spec.destination (server, namespace), spec.project, and spec.syncPolicy (automated, selfHeal, prune).

3. Explain ArgoCD's reconciliation loop

Detail how ArgoCD continuously monitors the source repository and the live cluster state, comparing them to detect drift. It then reports sync status (Synced/OutOfSync) and health status.

4. Describe sync and deployment actions

Explain that when sync is triggered (manually or automatically via syncPolicy), ArgoCD applies the manifests to the destination cluster, using kubectl apply or similar, and can prune resources not in Git.

5. Highlight advanced patterns and benefits

Mention the app-of-apps pattern for managing multiple Applications, and how this enables GitOps, auditability, and rollback capabilities.

Key Points to Mention

  • Application is a Kubernetes CRD that defines source (Git) and destination (cluster/namespace).
  • Key fields: source.repoURL, source.path, source.targetRevision, destination.server, destination.namespace, project, syncPolicy.
  • ArgoCD continuously reconciles desired state (Git) with live state (cluster) and reports sync/health status.
  • SyncPolicy controls automated sync, self-healing, and pruning of resources.
  • ArgoCD supports multiple source types: plain YAML, Helm, Kustomize, Jsonnet.
  • The app-of-apps pattern allows managing ArgoCD Applications as GitOps resources themselves.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q3

What is the difference between manual sync and auto-sync in ArgoCD, and when would you choose one over the other?

Technical Trade-offsSystem Design
Author's notes

Pretty comfortable here.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clearly defining manual sync and auto-sync in ArgoCD, highlighting the key difference in who triggers the deployment. Then, discuss the trade-offs between control and speed, and provide scenarios where each is preferred, emphasizing alignment with team processes and risk tolerance.

Pro tip: Mention that auto-sync can be combined with sync waves and health checks to safely automate complex deployments, and that manual sync is often used in regulated environments for audit purposes.

1. Define the concepts

Briefly explain that manual sync requires a user to trigger synchronization, while auto-sync automatically applies changes when the Git repository is updated.

2. Compare control and automation

Discuss how manual sync offers greater control and review opportunities, whereas auto-sync provides faster feedback and reduces manual toil.

3. Highlight use cases

Give examples where each is appropriate: manual for production or regulated environments, auto for dev/test or rapid iteration.

4. Discuss trade-offs and best practices

Explain how to mitigate risks with auto-sync (e.g., using sync windows, health checks) and how manual sync can be augmented with automation (e.g., CI pipelines).

5. Conclude with decision criteria

Summarize factors like team maturity, environment criticality, and compliance requirements that influence the choice.

Key Points to Mention

  • Manual sync: user-initiated, allows review before deployment, suitable for production.
  • Auto-sync: automated, triggered by Git changes, faster but requires safeguards.
  • Trade-off: control vs. speed and consistency.
  • Use cases: manual for regulated/production, auto for dev/test or continuous deployment.
  • Risk mitigation: sync windows, health checks, and approval gates for auto-sync.
  • Hybrid approaches: auto-sync with manual approval for critical changes.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q4

How does ArgoCD reconcile the live cluster state against the desired state in Git? What happens when they drift?

System DesignRoot Cause Analysis
Author's notes

This is where I got tripped up.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Explain ArgoCD's GitOps reconciliation loop, detailing how it continuously compares the desired state in Git with the live cluster state and takes corrective actions on drift. Emphasize the automated sync process, drift detection, and configurable sync policies.

Pro tip: Mention that ArgoCD's reconciliation is not just about applying changes but also about detecting and alerting on drift, and that you can configure sync policies to automate or manualize the process. This shows you understand operational flexibility and safety.

1. Define Desired State

Explain that the desired state is stored declaratively in Git repositories, which ArgoCD monitors for changes.

2. Reconciliation Loop

Describe how ArgoCD continuously polls the Git repository and compares the desired manifests with the live cluster resources.

3. Drift Detection

Detail how ArgoCD identifies differences (drift) between the live state and the desired state, marking the application as OutOfSync.

4. Sync Policies and Actions

Explain that based on sync policy (automatic or manual), ArgoCD either automatically applies the desired state or waits for user approval to sync.

5. Handling Drift

Describe the outcomes: automatic sync reverts drift, manual sync requires intervention, and alerts/notifications can be triggered.

Key Points to Mention

  • Git as the single source of truth for desired state
  • Continuous reconciliation loop with configurable intervals
  • Drift detection and OutOfSync status
  • Automatic vs. manual sync policies
  • Self-healing capabilities to revert drift
  • Notifications and alerts for drift events

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q5

How would you handle multi-environment promotion with ArgoCD, for example promoting a release from staging to production?

System DesignTechnical Trade-offs
Author's notes

I talked about separate directories or branches per environment and using ApplicationSets or just multiple Application resources pointing at different paths.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by explaining ArgoCD's GitOps model and how it enables declarative, version-controlled deployments across environments. Then describe a promotion strategy that balances safety and speed, such as using separate ArgoCD Applications per environment with a promotion pipeline that updates the desired state in Git. Highlight trade-offs between automated and manual promotion, and how to handle configuration differences.

Pro tip: Emphasize that promotion should be a Git commit, not a kubectl command—this ensures auditability and rollback. Also mention using ArgoCD's sync waves and health checks to gate promotions automatically.

1. Define environment-specific ArgoCD Applications

Use separate ArgoCD Applications for staging and production, each pointing to a different branch or directory in Git. This isolates environments and allows independent sync policies.

2. Implement a promotion pipeline

Create a CI/CD pipeline that, upon successful staging tests, updates the production manifests in Git (e.g., via a pull request). ArgoCD then detects the change and syncs production.

3. Handle configuration differences

Use Kustomize overlays or Helm values to manage environment-specific parameters (e.g., replicas, resource limits) while keeping the base manifests identical. Avoid hardcoding environment details.

4. Add approval gates and health checks

Configure ArgoCD to require manual approval for production syncs, or use automated sync with health checks and sync waves to ensure staging is healthy before promoting. Integrate with tools like Argo Rollouts for canary deployments.

5. Ensure rollback and observability

Leverage Git history for rollbacks—revert the promotion commit and ArgoCD will sync back. Monitor sync status and application health via ArgoCD dashboard and alerts.

Key Points to Mention

  • GitOps principles: Git as single source of truth, declarative configs, automated sync
  • ArgoCD Application CRD and how to structure apps per environment (e.g., app-of-apps pattern)
  • Promotion strategies: manual approval vs. automated, blue-green vs. canary
  • Configuration management with Kustomize/Helm to avoid duplication
  • Security and compliance: RBAC, audit trails via Git commits, and secrets management
  • Integration with CI pipelines (e.g., Jenkins, GitHub Actions) to trigger promotions

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q6

How do you roll back a deployment using ArgoCD, and how does that interact with the GitOps principle of Git being the source of truth?

Technical Trade-offsSystem Design
Author's notes

The tension here is interesting: if you roll back via the ArgoCD UI you're reverting to a previous sync without changing Git, which kind of breaks the model.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Explain the two main methods to roll back in ArgoCD: using the UI/CLI to revert to a previous Git commit, or using the `argocd app rollback` command. Then discuss how this aligns with GitOps, emphasizing that Git remains the source of truth and manual rollbacks should be reconciled with Git to avoid drift.

Pro tip: Mention that while ArgoCD allows quick rollbacks via CLI/UI, the best practice is to revert the Git commit and let ArgoCD sync, ensuring Git remains the single source of truth and avoiding configuration drift.

1. Define GitOps and ArgoCD's role

Briefly explain that in GitOps, Git is the source of truth for desired state, and ArgoCD continuously reconciles the cluster to match Git.

2. Describe rollback methods in ArgoCD

Outline the two primary ways: (1) revert the Git commit and let ArgoCD sync, or (2) use ArgoCD's rollback feature (UI/CLI) to deploy a previous version.

3. Explain the GitOps implications

Discuss that using ArgoCD's rollback without updating Git creates drift; the recommended approach is to revert in Git to maintain Git as the source of truth.

4. Highlight trade-offs and best practices

Compare speed vs. consistency: CLI rollback is fast but may cause drift; Git revert is slower but ensures auditability and consistency.

5. Conclude with a balanced recommendation

Suggest that for emergencies, use ArgoCD rollback and then immediately revert Git; for normal operations, always revert Git and sync.

Key Points to Mention

  • Git as the single source of truth in GitOps
  • ArgoCD's reconciliation loop and drift detection
  • Methods: Git revert vs. ArgoCD rollback command
  • Risks of manual rollback without Git update (configuration drift)
  • Auditability and traceability through Git history
  • Best practice: revert Git commit and let ArgoCD sync

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.