Welcome to the Sone Software Engineer Onboarding Guide. This guide is designed to help you get ready to start in our development envrionment. We aim to use the best tool for the job, while ensuring consistency that allows engineers to transition smoothly across different projects and environments.
Our primary tech stack includes Node.js and TypeScript, but we’re always open to adapting as needed.
To get started, you'll need to install Node.js. We recommend using nvm (Node Version Manager) for ease of installation.
To install nvm
, run this command in your terminal:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
After installing nvm
, install the latest NodeJS LTS (Long Term Service) version:
nvm install --lts
Once installed, verify your setup with:
node -v
npm -v
We have automated our onboarding process with a pretty nifty CLI tool that is available by running the following command:
npx @sone-works/sone-dev-onboarding
The automated process will take you through the following steps.
We prefer using pnpm
over npm
for package management for it's speed in efficiently handling dependencies. To install PNPM, run the following command:
npm install -g pnpm
After installation, you can verify it by running:
pnpm -v
We like to alias the pnpm
and pnpm dlx
commands to pn
and pnx
respectively for brevity.
Add the follow to your .zshrc
/.bashrc
file (usually located in your Home directory)
alias pn="pnpm"
alias pnx="pnpm dlx"
We utilize Github as our package registry and require a access token (classic) with scopes access.
In your .npmrc
file ( ~/.npmrc
), add the following:
/npm.pkg.github.com/:_authToken=<GITHUB_TOKEN>
Our code editor of choice is Visual Studio Code (VSCode) due to its open-source principles, versatility and wide range of extensions. Here are some extensions we recommend for our development experience:
- Biome: For it's language independent, performant formatting and linting.
- TypeScript: Enhanced support for TypeScript development.
- GitLens: For better visibility of Git changes.
- NPM Intellisense: Autocompletion for import statement
- Tailwind CSS IntelliSense: Autocompletion for Tailwind class names
- Thunder Client: Integrated Rest API Client with Postman like features
You can find all of these in the VSCode marketplace, or by running the following command after installing VSCode:
code --install-extension biomejs.biome --install-extension ms-vscode.vscode-typescript-next --install-extension eamodio.gitlens --install-extension christian-kohler.npm-intellisense --install-extension bradlc.vscode-tailwindcss --install-extension rangav.vscode-thunder-client