🎯 Reproducible local Internal Development Platform (IDP) for developing and testing Data Science and Machine Learning projects 🚀
1. MacOS Settings
✅ Show your Mac's hidden files
Find Terminal under Launchpad > Other > Terminal, then run the following commands:
Type defaults write com.apple.Finder AppleShowAllFiles true and press Enter
Type killall Finder and press Enter again
✅ Create APFS Volumes & Setup Workplace Folder
cd ~
ls -l workplace
ln -s /Volumes/Workplace ~/workplace
ls -l workplace
⚠️ WARNING: The Disk Utility program should now have the volumes, make sure under the name it says: System: APFS Volume • Workplace: APFS (Encrypted)
✅ Installing Homebrew Package Managers
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> ~/.zshrc
eval "$(/opt/homebrew/bin/brew shellenv)"
brew analytics off
brew update
brew upgrade
- ✅ Invoke Apple’s Software Update Tool
softwareupdate --install -a
2. Docker Desktop & VSCode

Docker is a tool used to run containerized applications. In the event that you require it for a project, Docker can be installed by following the instructions at
The system resources reserved for Docker should be modified during installation (2 CPUs and 2 GB RAM). If you are only running a few containers at a time then the default settings will be adequate. This will also leave more resources for your actual MacBook to consume if you leave Docker running in the background.
docker system prune --all --force
Lambda runtimes
git clone https://github.com/nnthanh101/Machine-Learning
cd Machine-Learning
code .
2.3. Installing Web Browsers:
* ✅ Chrome
* ✅ Brave
* ☑️ Firefox
3. Install Utilities
Software Developer's Tech Stack
Docker
Front-End:
✅ TypeScript, HTML/CSS/JavaScript
✅ React, React Native, Next.js
Back-End:
✅ NodeJS 18.x
✅ Python 3.10.12
Redis
[ ] SQL: SQLite, MySQL/MariaDB, Postgres
[ ] NoSQL: MongoDB, DynamoDB
Data Science:
Python (pyenv)
Scikit-Learn
Tensorflow
Install Python
⛔️ Do not mess with your system Python: Avoid using or installing packages to ‘system Python’, the Python program already installed on your system.
✅ Prefer to use pyenv in macOS to manage my Python versions and virtual environments.
Note: if python-build fails due to “zipimport.ZipImportError: can’t decompress data; zlib not available” go here first.
Bash note: if using Bash then change ~/.zshrc to ~/.bash_profile here.
Install pyenv
brew update
brew install xz pyenv pyenv-virtualenv
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
Create Python 3 Venv
mkdir ~/workplace/<WORKSPACE_NAME>
cd ~/workplace/<WORKSPACE_NAME>
pyenv -v
pyenv install --list
pyenv install 3.12.1
pyenv global 3.12.1
python -V
Handling virtualenv using pyenv-virtualenv
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
pyenv virtualenv 3.12.1 analytics
pyenv activate analytics
pyenv virtualenvs
python - m venv venv
source env/bin/activate
deactivate
JupyterLab
pyenv activate analytics
pip install jupyterlab
jupyter lab
echo "alias python=/usr/bin/python3" >> ~/.zshrc
echo "alias pip=/usr/bin/pip3" >> ~/.zshrc
source ~/.zshrc
Install NodeJS
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.zshrc
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> ~/.zshrc
nvm install --lts=Iron
nvm use --lts=Iron
node -v
npm -v
npm install -g yarn aws-cdk
yarn -v
cdk --version
[ ] Setup Java
Bash note: if using Bash then change ~/.zshrc to ~/.bash_profile here.
echo "export JAVA_HOME=/Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Content
## Verify that this is in ~/.zshrc or ~/.bash_profile
cat ~/.zshrc
## OR
# cat ~/.bash_profile
[ ] Install Ruby Languages
brew install rbenv libyaml libffi
ruby-build 2.5. 8 ~/.runtimes/Ruby 25 x
Install AWS CLI
Note: if AWS CLI is version 1 then go here to install AWS CLI version 2.
aws --version
Set Up AWS CLI Config File: AWS CLI v2 utilizes a config file to store frequently used configurations and credentials.
ls ~/.aws
mkdir ~/.aws
nano ~/.aws/config
Add the following to your AWS CLI config file.
[default]
output=json
region=ap-southeast-2
## (Optional) Add a named profile - boto 3 has issues assuming named profiles
[profile oceansoft]
output=json
region=ap-southeast-2
To exit Nano, press Control+X, “Y” to accept changes, and then Return to save the file at /Users/<ALIAS>/.aws/config. After, enter the following in the Terminal.
aws s3 ls
aws s3 ls --profile oceansoft
Install RStudio
Finished & Post Setup
If you followed along with this guide you should now have a working MacOS environment set up for development work. The Post Setup steps following this guide are needed every time you set up a new workspace for development work.
\> ✅ You may need to restart your computer after installing the above packages.