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. For team resources and links, see Team Resources.

GitHub Repositories

Request access to these repositories:

Azure Access

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

Databases

Third-Party Services

Communication & Infrastructure

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:

  • Python 3.11 or higher
  • Ruff - Linting and formatting

Setup:

# Install dependencies and run tests
pip install -r requirements.txt
pytest

# Configure environment
cp .env.example .env
# Edit .env with your credentials (see Orbital Environment Configuration below)
  • 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 AI-powered code editor. See Team Resources for details.

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. See Architecture Overview for details
  • 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)
  • pytest 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

Our Python services are built on a modern tech stack. We use Ruff for code linting and formatting, and pytest for testing. Our microservices communicate via RabbitMQ, with MongoDB as our primary order data store. We also use .NET Aspire and Metalama in our .NET ecosystem. Sentry is our tool for error tracking and monitoring.

Orbital-Specific Workflows

Getting Help

  • Slack: #engineer-bug-requests for daily communication, bug reports, and quick questions
  • Linear: Create tickets for bugs, feature requests, and track work items
  • Team Resources: See Team Resources for team updates, shared documents, and engineering design document examples.
  • Service-specific .agents/ Documentation: Context (read before making changes!).
  • Code Reviews: Learn from team feedback.
  • This Wiki: Comprehensive documentation.

First Tasks

Get Started

  • Schedule 1:1 meetings with Kory, Casey, and Tung to introduce yourself and learn about the team.
  • Go to Linear and GitHub Organization, browse open issues, and assign yourself a small task to familiarize yourself with the codebase.

Hands-On Learning

  • Create a test order (via Otter webhook simulation or 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.

Pull Request Process

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