Skip to content

Engineering Onboarding

Welcome to Orbital Kitchens! This guide covers Orbital-specific setup, tools, and workflows. We assume you're already familiar with Git basics, development environments, and general software engineering practices.

Table of Contents

Access Required

Contact casey.f@orbitalkitchens.com or henry.p@orbitalkitchens.com to request access to any of the following resources.

GitHub Repositories

Request access to these repositories:

  • orbital - Main .NET application
  • orbital-manager-backend - Python backend services
  • orbital-wiki - Documentation site (this wiki)

Azure Access

  • Azure account with access to Orbital resources
  • Azure host: cihanorbitalkitchens.onmicrosoft.com
  • Portal: portal.azure.com

Databases

  • MongoDB access (local or cloud instance)
  • PostgreSQL/Supabase access
  • Snowflake access for data warehouse
  • Database credentials added to .env files

Third-Party Services

Communication & Infrastructure

  • Slack - Team workspace access

Development Tools Setup

Clone the repositories you need access to (see Access Required section above), then install the Orbital-specific tools below.

Python Backend (orbital-manager-backend)

Orbital-Specific Requirements:

Setup:

# Verify Pants installation
pants --version

# Install dependencies and run tests
pants test ::

# Configure environment
cp .env.example .env
# Edit .env with your credentials (see Environment Configuration below)
  • Verify Pants runs successfully
  • All tests pass
  • Configure .env file with database credentials

.NET Application (orbital)

Orbital-Specific Requirements:

Setup:

# Install frontend dependencies
cd Orbital/Orbital.Web
pnpm install

# Run the application from root
cd ../..
dotnet watch run --project Orbital/Orbital.AppHost/Orbital.AppHost.csproj
  • Install all Orbital-specific tools
  • Frontend dependencies installed
  • Application runs successfully

Documentation Site (orbital-wiki)

Setup:

pip install -r requirements.txt
mkdocs serve  # Runs at http://127.0.0.1:8000
  • Site runs locally

Additional Orbital Tools

  • Azure CLI - Required for Azure deployments
  • Docker - Required for running databases locally
  • GitHub CLI - Recommended for PR workflow
  • Cursor IDE - Team standard

Documentation to Read

Familiarize yourself with our documentation to understand the system architecture, development practices, and operational procedures.

Essential Reading (First Week)

Complete these readings to understand our development workflow and system architecture:

Important Reading (First Month)

Deep dive into system functionality and operational procedures:

Reference Documentation (As Needed)

Keep these resources handy for specific tasks:

Local Development Setup

Orbital Database Stack

Set up these Orbital-specific databases (via Docker or remote instances):

  • MongoDB - Primary order data store
  • Required collections: orders, delivery_service_parameter
  • PostgreSQL/Supabase - Relational data (tables auto-created on startup)
  • RabbitMQ - Message queue for service communication
  • Test connections with sample queries

Orbital Environment Configuration

Python Backend (orbital-manager-backend):

Edit .env with these Orbital-specific variables. Example file is in .env.example:

  • MONGO_URI - MongoDB connection string
  • POSTGRES_SUPABASE_URL - PostgreSQL/Supabase connection
  • RABBITMQ_URL - RabbitMQ connection string
  • SENTRY_DSN - Orbital Sentry project DSN
  • CORS_ORIGINS - Allowed origins for API

.NET Application (orbital):

  • Configure Azure Key Vault access (Orbital tenant)
  • Verify appsettings.json environment-specific configs

Verification Checklist

  • ruff check . passes (FastAPI Backend)
  • pants test :: passes (FastAPI Backend)
  • .NET application builds and runs (If running Orbital .NET backend)
  • API /ping endpoint responds
  • Create test order and verify processing through system

For detailed development workflow, coding standards, and PR process, see Best Practices.

Key Concepts

Orbital Tech Stack

  • Pants Build System - Monorepo build orchestration for Python services
  • Ruff - Fast Python linting and formatting
  • .NET Aspire - Cloud-native orchestration for .NET services
  • Metalama - Code generation and aspects for .NET
  • MongoDB - Primary order data store
  • RabbitMQ - Inter-service messaging
  • Sentry - Error tracking and monitoring

Orbital-Specific Workflows

Getting Help

  • Slack - Daily communication and quick questions
  • .agents/ Documentation - Service-specific context (read before making changes!)
  • Code Reviews - Learn from team feedback
  • This Wiki - Comprehensive documentation

First Tasks

Get Started

First, get yourself set up:

  • Schedule 1:1 meetings with Kory, Casey, and Tung to introduce yourself and learn about the team
  • Go to Linear (project management) and GitHub - browse through open issues and assign yourself to a smaller bug or task to get familiar with the codebase

Hands-On Learning

Once you have a task assigned, start working through it:

  • Create a test order in MongoDB and watch it flow through the system
  • Modify an existing API endpoint (add logging, improve error handling)
  • Write a test case for existing functionality
  • Pair program with a senior engineer on your assigned task

Remember

  • Read .agents/ first - Always check service-specific context before making changes
  • Test thoroughly - Our customers depend on system reliability
  • Ask questions - No question is too small

Welcome to Orbital Kitchens!


Last Updated: 2025-10-23