The Developer's Guide to a Tidy File System
Organize Your Development Environment for Maximum Productivity
As engineers, we obsess over clean code, elegant architectures, and well-organized repositories. Yet many of us work with chaotic file systems that slow us down daily. After 15+ years in the industry, I've learned that a well-structured file system is as crucial as clean code.
Why File Organization Matters
Cognitive Load Reduction: A consistent structure means less mental overhead when switching between projects or machines. You always know where things are.
Faster Context Switching: Whether you're jumping between personal projects and work tasks, or onboarding to a new machine, familiar paths reduce friction.
Backup Strategy: Organized directories make it trivial to backup only what matters and exclude build artifacts or cache directories.
Team Consistency: When your team follows similar patterns, pair programming and troubleshooting become more efficient.
The Structure
Here's the directory structure I recommend for both personal and work machines:
π root
ββ π home
β ββ π <user>
ββ π development
ββ π acme-workspace (work projects)
ββ π apps (standalone applications)
β ββ π ngrok
β ββ π toolbox
ββ π tunes-workspace (personal projects)
ββ π workspace (miscellaneous/experimental)
Key principles:
/development
lives at root level for universal access- Workspaces group related projects (company, personal, experiments)
/apps
contains standalone tools and utilities- Consistent naming across all machines
Setting Up a Separate Partition
I strongly recommend putting /development
on a separate partition. This provides:
- Isolation: OS reinstalls don't affect your projects
- Performance: Dedicated I/O for development work
- Backup granularity: Back up code separately from OS
Conclusion
This structure has served me well across dozens of machines and multiple companies. The key is consistencyβpick a structure and stick with it everywhere. Your future self will thank you.
The separate partition approach might seem like overkill, but it's saved me countless hours during OS upgrades, laptop migrations, and system failures. Treat your development environment as infrastructureβit deserves the same care you give your production systems.
A well-organized file system is as important as clean code. Invest time in setting up a consistent structure once, and reap the productivity benefits for years to come.