Skip to main content

New Team Member Onboarding

Day 1: Welcome & Account Setup

HR Completes (Before Start Date)

  • Keycloak account created
  • Added to employees group in Keycloak
  • Welcome email sent with:
    • Keycloak login URL
    • Temporary password
    • MFA setup instructions

New Team Member (First Hour)

  • Login to Keycloak: https://auth.company.com

    • Change temporary password
    • Set up MFA (required - use authenticator app)
    • Save recovery codes securely
  • Access granted automatically (within 15 min):

    • ✅ Rocket.Chat
    • ✅ Email
    • ✅ Docusaurus (this documentation)
    • ✅ GitHub organization (read access)
    • ✅ Netbird VPN (dev network)
  • Download & install tools:

    • Netbird VPN client: Download
    • Git: git --version to check if installed
    • Code editor: VS Code, JetBrains, or your preference
    • Docker: docker --version
  • Configure Git:

    git config --global user.name "Your Name"
    git config --global user.email "your.email@company.com"

    # Set up SSH key for GitHub
    ssh-keygen -t ed25519 -C "your.email@company.com"
    cat ~/.ssh/id_ed25519.pub # Add to GitHub Settings → SSH Keys
  • Join Rocket.Chat:

    • Login at https://chat.company.com
    • Join channels: #general, #engineering, #random
    • Introduce yourself in #general!

Manager Completes (Day 1)

  • Add to team group in Keycloak:

    • Example: Add to engineering-backend group
    • This auto-grants GitHub team access
  • Welcome meeting:

    • Team introductions
    • Overview of current projects
    • Assign onboarding buddy
  • Share team-specific resources:

    • Team channel in Rocket.Chat
    • Relevant documentation
    • Current sprint board / project management

Week 1: Development Environment

Development Setup

  • Clone key repositories:

    # Main application repos
    git clone git@github.com:company-org/api-server.git
    git clone git@github.com:company-org/web-app.git

    # Infrastructure repo
    git clone git@github.com:company-org/infrastructure.git
  • Install dependencies (varies by project):

    # Example for Node.js project
    cd api-server
    npm install

    # Copy environment template
    cp .env.example .env
    # Ask team for dev database credentials
  • Run locally:

    # Start development server
    npm run dev

    # Verify it works
    curl http://localhost:3000/health
  • Connect to Netbird VPN:

    • Login with your Keycloak credentials
    • You now have access to dev/staging networks
  • Access development database:

    • Connection details in infrastructure/inventory/development/group_vars/
    • Or ask in team channel

First Contribution

  • Pick a starter task:

    • Manager/buddy assigns "good first issue"
    • Small, well-defined task
  • Create feature branch:

    git checkout -b feature/your-first-task
  • Make changes, commit:

    git add .
    git commit -m "Brief description of change"
    git push origin feature/your-first-task
  • Create pull request:

    • Go to GitHub
    • Create PR from your branch to main
    • Add description of what you changed
    • Request review from team member
  • Address review feedback

  • Merge your first PR! 🎉

Week 2: Tools & Processes

Learn the Stack

Set Up Local Tools

  • Pre-commit hooks (prevents committing secrets):

    pip install pre-commit
    cd your-repo
    pre-commit install
  • Ansible (if you'll touch infrastructure):

    pip install ansible

    # Get vault password from DevOps lead
    echo "vault_password_here" > ~/.ansible_vault_password
    chmod 600 ~/.ansible_vault_password

    # Test it
    ansible-playbook playbooks/site.yml \
    -i inventory/development \
    --vault-password-file ~/.ansible_vault_password \
    --check
  • Docker setup:

    # Add yourself to docker group (Linux)
    sudo usermod -aG docker $USER
    # Log out and back in

    # Test
    docker run hello-world

Access Requests (As Needed)

  • Production read access (if on-call):

    # In Rocket.Chat
    /access request resource=production-read justification="Will be on-call next week"
  • SSH to staging (automatic for engineering team)

  • Any team-specific tools

Month 1: Become Productive

Project Work

  • Completed 3-5 tasks independently

  • Participated in code reviews:

    • Reviewed others' PRs
    • Learned codebase by reading code
  • Deployed to staging via PR

  • Understand the architecture:

    • How services communicate
    • Where data lives
    • Key dependencies

Team Integration

  • Attended team meetings:

    • Sprint planning
    • Standups
    • Retrospectives
  • Pair programmed with team members

  • Asked questions (encouraged!)

  • Contributed to documentation:

    • Fixed typos or outdated info
    • Added clarifications
    • Shared knowledge

On-Call Preparation (If Applicable)

  • Shadowed on-call engineer for a week

  • Reviewed incident runbooks:

  • Practiced emergency procedures:

    • Rollback deployment in staging
    • Restart service via Ansible
    • Check monitoring dashboards
  • Added to on-call rotation (after 6-8 weeks typically)

Ongoing: Continuous Learning

Regular Activities

  • Read incident postmortems (learn from mistakes)
  • Attend tech talks / knowledge sharing sessions
  • Contribute to documentation
  • Propose improvements to processes
  • Stay updated on security policies

Resources

Documentation:

  • This Docusaurus site (regularly updated)
  • Team-specific wikis

Communication:

  • Rocket.Chat channels (ask questions!)
  • GitHub discussions
  • Team meetings

Learning:

  • Pair with senior engineers
  • Code review feedback
  • Post-incident reviews
  • Architecture discussions

Checklist Summary

Day 1: Accounts, tools, first login Week 1: Dev environment, first PR Week 2: Tools, processes, access Month 1: Productive contributor Ongoing: Keep learning and improving

Getting Help

Stuck on something?

  1. Check documentation first
  2. Ask your onboarding buddy
  3. Ask in team channel (Rocket.Chat)
  4. Tag relevant team: @backend-team, @devops, etc.

Having trouble with:

  • Access/accounts → #it-support or @devops
  • Code/technical → Team channel or buddy
  • Process/policy → Manager or #engineering
  • Anything else → Your manager

Feedback

How can we improve onboarding?

  • Tell your manager
  • Suggest changes to this doc
  • Submit PR with improvements

Goal: Get you productive and happy within 1 month!

Welcome to the team! 🚀