When I started preparing for technical interviews, I noticed something strange.
I remembered DSA problems.
I remembered system design concepts.
But I kept forgetting the implementation details of my own projects.
Interviewers would ask questions like:
- Why did you choose PostgreSQL instead of MongoDB?
- How does authentication work in this project?
- Walk me through the request flow.
- Why this architecture?
And I'd end up opening GitHub to remember code that I had written.
That felt wrong.
So I built Churn.
The Idea
Instead of manually revising every repository before an interview...
What if a CLI could read my project and interview me?
pip install churn-cli
churn interview .
Churn scans your repository and generates interview questions based on your actual implementation, not generic programming questions.
Example Questions
Instead of asking:
What is JWT?
It asks:
- Why did you implement JWT authentication in this project?
- Explain the request flow from the controller to the database.
- Why did you choose FastAPI over Flask?
- How does your caching strategy work?
- What trade-offs did you make while designing this API?
The questions come from the repository itself.
Then I Realized...
Most repositories suffer from another problem.
Documentation.
README files become outdated.
Architecture documents don't exist.
PRDs are rarely written.
So I added another command.
churn docs .
Now Churn can generate:
- README.md
- PRD.md
- ARCHITECTURE.md
- REPORT.pdf
directly from an existing codebase.
One More Feature
While working on different repositories, I noticed many projects were missing basic engineering practices.
No CI/CD.
No Docker.
No tests.
So I built:
churn doctor .
Example output:
README ✓
Architecture ✓
License ✓
Docker ✗
CI/CD ✗
Tests ✗
Overall: C (60%)
It provides a quick repository health report before interviews, open-source releases, or deployments.
Engineering Decisions
Some of the parts I enjoyed building the most:
- Recursive repository scanning
- Git-based file prioritization
- AI provider abstraction (Gemini, Groq & OpenAI)
- Markdown, JSON and PDF generation
- Public & private GitHub repository support
- Local repository support
- Configuration management
- Repository health analysis
Ironically, integrating an LLM wasn't the hardest part.
Designing a clean CLI, handling repositories, configuration, prompts, error handling, and creating a good developer experience took much longer.
Why I Built It
I didn't build Churn to replace interview preparation.
I built it because I wanted a tool that understood my own codebase better than generic interview sheets ever could.
If it helps even a few developers better understand and present their own projects, I'll consider it a success.
Try It
📦 PyPI
https://pypi.org/project/churn-cli/0.5.0/
🐙 GitHub
https://github.com/DhawalShankar/project-churn
I'd genuinely appreciate feedback, feature requests, or contributions.
If you've ever forgotten the details of your own project during an interview, I'd love to know how you currently prepare.
Top comments (0)