Hi! Re: dot files, they are just all the files that hold your configuration and preferences, from your aliases and your customised prompt, your zsh plugins, your themes, etc., to your MacOS system behaviour. The idea of versioning them allows you to "feel at home" in any new system, whether it's a new computer or a virtual machine. The link I shared has some awesome customisations and a very nice automated script. Others us tools like Chef. But if you like to customise and personalise and shortcut the life our of your work tools, investing the time in this approach once will save you tens and possibly hundreds of hours over a lifetime of multi machine use! Re: databases, I might prefer alternatives if I used lots of separate apps for my day to day workflows... but I've turned my Jetbrains IDE into a spaceship that I never have to leave, which saves on context switching. Instead of opening and moving between apps, inside my IDE I: Manage all my databases (mongodb and neo4j included) with all the considerable power and versatility of Datagrip View and control ALL my AWS services manage, view and interact with all my Docker containers execute all my complex git actions and visualise my branches play Spotify and configure my playlists by work mode and mood log in to remote servers and interact with the code remotely with all the IDE functionality conference call with video and pair program in each other's machines. Make and test http requests and responses, like a micro Postman run all my tests, front and back end and so, so much more. Just the above would have involved switching again and again between 5-7 apps to work one one full stack feature. And unlike with VS code, the experience doesn't feel like a collection of extensions, but one seamlessly interconnected system. So this is why I don't choose separate database software! I find that having it all in one place reduces cognitive load and context switching and enables a more integrated and direct development experience.