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).
Your CI jobs start failing with git errors, and you suspect the remote Git repository has developed corrupt objects. Walk through how you'd detect the corruption, isolate the problem, restore service without losing history, and prevent it from happening again.
Explain the difference between df and du and provide the exact commands you would run to: (a) show overall filesystem free space in human-readable form, and (b) find the top 5 largest directories immediately under /var, excluding mounted virtual filesystems. Include any flags and filters you would use.
Your CI uses shallow clones to speed builds but you now need to run git bisect inside CI to find a regression introduced months ago. How would you modify the CI job to obtain the necessary history on-demand while keeping the common case fast? Provide commands and a policy for when to fetch more history.
A teammate asks: 'What is the staging area (index) and how does git add differ from git commit?' Explain what each command does and give an example where using git add -p or git add -A would matter.
You ask an AI assistant to modify a function in an existing codebase, but it quietly changes the function's signature and breaks several callers elsewhere in the code. What safeguards would you put in place to catch this before merging, and how would you preserve interfaces and backward compatibility when accepting AI-generated changes going forward?
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.