Version Control and Developer Tooling Questions
The everyday toolchain of software work: version control with Git (branching, merging, rebasing, conflict resolution, using git bisect to find a regression), command-line and shell proficiency for day-to-day navigation, log inspection, and troubleshooting, IDE and editor workflows, build systems and package/dependency management (npm, Maven, pip, Gradle, CocoaPods, and embedded/cross-compilation toolchains), and the growing practice of AI-assisted coding: using, reviewing, and verifying AI-generated code and tests. Deliberately generic across languages and stacks; language- and domain-specific frameworks live in their own categories. This topic covers a developer's individual command of these tools, not: writing durable shell automation and glue scripts (Shell Scripting and Automation owns that), producing, versioning, and publishing build artifacts or container images (Build Automation and Artifact Management owns that), release cadence and change governance (Release Management and Change Control owns that), or diagnosing a live production incident end to end (Performance Troubleshooting and Incident Response and the Observability topics own that).
Explain how git bisect works and demonstrate, with commands, how to use it to find the commit that introduced a regression in a test suite. Include how you would automate bisecting in CI if the test can be run non-interactively.
Describe the difference between creating a new branch locally and creating/pushing a remote tracking branch. Provide the sequence of commands you would use to create a feature branch, set its upstream to origin, and open a pull request (mention the typical steps on GitHub/GitLab).
Explain what a detached HEAD state is, how it can occur, and two ways to recover if you accidentally make commits while in detached HEAD. Include specific commands to preserve or attach those commits to a branch.
Write a one-liner (or short pipeline) that finds the largest 10 regular files under /var, correctly handles spaces and newlines in filenames, excludes /var/lib/docker and /var/run, and prints sizes in human-readable form sorted descending. Explain each tool and flag you used.
Linters and formatters: propose an adoption plan that minimizes developer friction while ensuring code quality. Discuss pre-commit vs CI enforcement, auto-fix vs review changes, incremental rollout, and how to avoid large rewrite PR noise.
Unlock Full Question Bank
Get access to all Version Control and Developer Tooling interview questions and detailed answers.
Sign in to ContinueJoin thousands of developers preparing for their dream job.