Skip to content

tadaworks/dev-onboarding-guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

Developer Onboarding Guide

Welcome to Tada! We're happy you're here. Let's get started.

This guide has one goal: Check code into production by the end of the day.

Dev Machine Setup

If you get stuck, as for help in team chat.

A word of advice: Don't get hung up on the breadth of any new tech. It'll all make sense soon, and Google is your friend until then.

Package Management

Homebrew is the "missing package manager for OS X", and makes keeping bits in sync way easier.

Open your terminal and run the following commands:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update

While you're at it, install cask, which extends what can be installed from homebrew.

brew install caskroom/cask/brew-cask

Terminal Setup

The default terminal that you've been using works, but once you go iTerm2 + Zsh, you never go back.

brew cask install iterm2

You can install Zsh from the terminal. There's a good chance that it's going to fail on your first run, and you'll be prompted to install Apple deverloper tools. After installing those, run the command again.

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Looking for alt + ← or cmd + →? Yeah, us too. This thread on StackOverflow provides a fix.

Zsh has a ton of plugins available for tab-based auto complete, which can be activated by adding entries to the plugins tuple in ~/.zshrc. Here are a few that you might find useful:

plugins=(git aws brew github npm node osx vagrant)

Looking for a theme? Lots of people love Solarized, and Dracula is a favorite of ours.

Browser Setup

You'll need Chrome, Firefox, and Safari (you're probably looking at it) regularly for sanity-checking compatability.

brew cask install google-chrome
brew cask install firefox

Plugins

Wait, what about IE?

We have a collection of Windows VMs to test the app in markets where legacy support is a must. These installs are outside of the scope of this guide, so ask for help if you're working on a market-sensitive feature.

Credential Management

LastPass is used for securely sharing credentials, certificates, and other things too sensitive to pass around by email.

You can install Lastpass here. This is extremely sensivite software, and the preferred install method is via this link.

If you feel really adamant about managing this install from Homebrew, just make sure that brew cask info lastpass references https://github.com/caskroom/homebrew-cask/blob/master/Casks/lastpass.rb, and that lastpass.rb points to https://lastpass.com/download/cdn/lpmacosx.zip.

But I Love 1Password!

Us too, but LastPass lets us federate and log access, which beats passing around a keystore. Your creds will arrive on edible paper shortly.

Communication

We prize strong communication. Bookmark these links as you'll be referring to them often.

###Email and Calendar Our team uses Office 365, which includes access to Word, Excel, PowerPoint, Outlook, and our OneNote archive. Log in here with the credentials stored in your LastPass account to start the installation process.

Editor and Plugins

Yes, you can use your favorite editor.

Our go-to is Sublime Text. This setup works with all of our stuff, so if you aren't super opinionated, give it a spin. Even if you are, you should probably follow along since your editor needs to support equivalent plugins.

brew cask install caskroom/versions/sublime-text3

Next, run this command to allow you to call sublime from the terminal

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/bin/sublime

###Plugins Install Package Control, which manages plugins within ST.

Cmd + shift + p opens the Package Control prompt after installation. Search install and select Package Control - Install Package for each of the following:

You can also install themes like Solarized and Dracula (along with thousands of others) in Package Control.

##Dev Environment We host our development environments in Vagrant-managed VirtualBox VMs. This helps us eliminate per-machine config isues when bugs crop up, and improves reproducability.

brew cask install virtualbox
brew cask install vagrant

###Where's Otto? It's under investigation, and will likely find its way into our stack after it's had some time to brew.

##Source Control We use Git for source control, and GitHub as our host.

If you don't already have one, create a GitHub account and then follow this guide to generate an SSH key pair and to test GitHub authentication.

Get someone official looking to add you to the Tada Works organization so you can start pulling down code!

New to Git?

We've all been there. Here's an excellent tutorial

Git from the Bottom Up is another fantastic resource to help you understand how Git works, something most people who use it every day don't fully understand. We recommend this even to seasoned folk.

Production Tools

We currently deploy Dockertized services to our CoreOS cluster, hosted in AWS. AWS credentials are available in LastPass.

brew install fleetctl
brew install awscli

Getting Familiar

  • Babel Try Out: Babel is an ES2015+ (aka ES6+) to vanilla JavaScript transpiler, allowing us to write modern JavaScript code today.
  • A Beginner's Guide to NPM: A quick overview of the Node Package Manager
  • Webpack Tutorial: Gives an overview of the Webpack module bundler, a tool we use to package up our JavaScript code for the web.
  • Vagrant: Vagrant is used to bootstrap our development environment. If you can type vagrant up, feel free to skip this one.
  • Docker: An overview of running Docker containers on CoreOS. We use Vagrant to scaffold CoreOS on our local machines.

On the Way Out

This is a pretty brief overivew, designed to get you up and running as quickly as possible. Each repository contains a README.md with basic usage instructions to get you started. If you have any questions, ask them in team chat. A great one to start with: "Hey, why are we using JavaScript?"

About

Because employee handbooks are for HR departments.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published