โ† All topics

๐Ÿ›  Interview Prep

Git, Tools & AI

Git, debugging, testing, the command line, Docker, CI/CD and working with AI: what proves you can work on a real team.

100 questions, most asked first

Ranked by how often each question comes up in real interviews. #1 is the most common.

#1git merge vs git rebaseBranching & PRsMediumFree#2The everyday Git workflowGit basicsEasyFree#3The pull request workflowBranching & PRsEasyFree#4Resolving a merge conflictBranching & PRsEasyFree#5How do you use AI tools when coding?AI toolsEasyFree#6How do you debug a problem you've never seen before?DebuggingEasyFree#7Find and fix the bug, then test itTestingEasyFree#8git reset vs git revert vs git restoreGit internalsMediumFree#9git stashGit basicsEasyFree#10Unit vs integration vs end-to-end testsTestingEasyFreeUnlock 90 more Git, Tools & AI questions ยท all 1,200 questions for $39/year (about 11ยข a day)See full access#11How do you review AI-generated code?Reviewing AI codeMedium๐Ÿ”’#12Writing good prompts for coding helpPromptingEasy๐Ÿ”’#13Giving and receiving code reviewsCode reviewEasy๐Ÿ”’#14git cherry-pickBranching & PRsMedium๐Ÿ”’#15Finding the commit that broke something (git bisect)DebuggingMedium๐Ÿ”’#16Essential command-line skillsLinux & shellEasy๐Ÿ”’#17Unix file permissions and chmodLinux & shellEasy๐Ÿ”’#18Environment variables and managing secretsDocker & CI/CDEasy๐Ÿ”’#19Docker basicsDocker & CI/CDEasy๐Ÿ”’#20What is CI/CD?Docker & CI/CDEasy๐Ÿ”’#21Semantic versioningDocker & CI/CDEasy๐Ÿ”’#22Package managers and lockfilesDocker & CI/CDEasy๐Ÿ”’#23Branching strategies (trunk-based vs Git Flow)Branching & PRsMedium๐Ÿ”’#24Writing good commit messagesGit basicsEasy๐Ÿ”’#25What belongs in .gitignore?Git basicsEasy๐Ÿ”’#26Test-driven development (TDD)TestingMedium๐Ÿ”’#27Mocks, stubs and fakesTestingMedium๐Ÿ”’#28What does code coverage tell you (and not)?TestingEasy๐Ÿ”’#29Debugging an issue in productionDebuggingMedium๐Ÿ”’#30AI hallucinations in codingAI toolsEasy๐Ÿ”’#31Using AI tools safely at workAI safetyEasy๐Ÿ”’#32Calling an LLM API from your appAI in appsMedium๐Ÿ”’#33What is RAG (retrieval-augmented generation)?AI in appsMedium๐Ÿ”’#34What is an AI agent?AI toolsMedium๐Ÿ”’#35Prompt injectionAI safetyMedium๐Ÿ”’#36An effective AI pair-programming workflowAI toolsEasy๐Ÿ”’#37When shouldn't you rely on AI?AI safetyMedium๐Ÿ”’#38Testing AI features (evals)AI in appsHard๐Ÿ”’#39Shell pipes and redirectionLinux & shellEasy๐Ÿ”’#40Managing processes from the terminalLinux & shellEasy๐Ÿ”’#41SSH keysLinux & shellEasy๐Ÿ”’#42Debugging APIs with curlDebuggingEasy๐Ÿ”’#43Scheduling tasks with cronLinux & shellEasy๐Ÿ”’#44Docker Compose for local developmentDocker & CI/CDEasy๐Ÿ”’#45Infrastructure as codeDocker & CI/CDMedium๐Ÿ”’#46Releasing safely and rolling backDocker & CI/CDMedium๐Ÿ”’#47Monitoring and alertingDebuggingMedium๐Ÿ”’#48Incident response and blameless postmortemsTeamwork & processMedium๐Ÿ”’#49Agile and Scrum basicsTeamwork & processEasy๐Ÿ”’#50How do you estimate how long a task will take?Teamwork & processMedium๐Ÿ”’#51Working with legacy codeCode reviewMedium๐Ÿ”’#52Getting productive in an unfamiliar codebaseCode reviewEasy๐Ÿ”’#53Writing useful documentationTeamwork & processEasy๐Ÿ”’#54Technical debtCode reviewMedium๐Ÿ”’#55Pair programmingTeamwork & processEasy๐Ÿ”’#56How and when to ask for helpTeamwork & processEasy๐Ÿ”’#57Handling critical code review feedbackCode reviewEasy๐Ÿ”’#58Cleaning up commits before a PRGit internalsMedium๐Ÿ”’#59Detached HEAD and recovering lost commitsGit internalsMedium๐Ÿ”’#60Git tags and releasesGit basicsEasy๐Ÿ”’#61Monorepo vs polyrepoTeamwork & processMedium๐Ÿ”’#62Using a debugger instead of print statementsDebuggingEasy๐Ÿ”’#63Finding performance bottlenecks with a profilerDebuggingMedium๐Ÿ”’#64Linters and formattersCode reviewEasy๐Ÿ”’#65Type checking as a safety netTestingEasy๐Ÿ”’#66Handling vulnerable dependenciesDocker & CI/CDMedium๐Ÿ”’#67You accidentally committed a secret. Now what?Git basicsMedium๐Ÿ”’#68Dev, staging and production environmentsDocker & CI/CDEasy๐Ÿ”’#69The twelve-factor appDocker & CI/CDMedium๐Ÿ”’#70Load testingTestingMedium๐Ÿ”’#71Flaky testsTestingMedium๐Ÿ”’#72Property-based testingTestingHard๐Ÿ”’#73Snapshot testingTestingEasy๐Ÿ”’#74The AI coding tool landscapeAI toolsEasy๐Ÿ”’#75Tokens and context windowsAI in appsMedium๐Ÿ”’#76Controlling LLM cost and latencyAI in appsMedium๐Ÿ”’#77Prompting vs RAG vs fine-tuningAI in appsMedium๐Ÿ”’#78Embeddings and vector searchAI in appsMedium๐Ÿ”’#79Structured outputs and tool callingAI in appsMedium๐Ÿ”’#80Bias and responsible AIAI safetyMedium๐Ÿ”’#81Can you use AI during an interview?AI toolsEasy๐Ÿ”’#82"Explain this code line by line"Reviewing AI codeEasy๐Ÿ”’#83Writing a simple shell scriptLinux & shellEasy๐Ÿ”’#84Automating tasks with npm scripts and MakefilesDocker & CI/CDEasy๐Ÿ”’#85Network debugging toolsDebuggingMedium๐Ÿ”’#86Contributing to open sourceBranching & PRsEasy๐Ÿ”’#87On-call and code ownershipTeamwork & processMedium๐Ÿ”’#88Architecture decision records (ADRs)Teamwork & processEasy๐Ÿ”’#89Refactoring safelyCode reviewMedium๐Ÿ”’#90Large files in GitGit internalsEasy๐Ÿ”’#91"It works on my machine"DebuggingEasy๐Ÿ”’#92How would you deploy a web app for the first time?Docker & CI/CDEasy๐Ÿ”’#93Connecting a custom domainDocker & CI/CDEasy๐Ÿ”’#94Running a side project cheaplyDocker & CI/CDEasy๐Ÿ”’#95Learning a new framework or tool quicklyTeamwork & processEasy๐Ÿ”’#96Getting productive in your editorDebuggingEasy๐Ÿ”’#97Quick text processing (grep, sed, awk, jq)Linux & shellMedium๐Ÿ”’#98Using AI to debug effectivelyAI toolsEasy๐Ÿ”’#99Letting AI write testsReviewing AI codeMedium๐Ÿ”’#100Staying effective as AI tools keep changingAI toolsEasy๐Ÿ”’