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
- Development Tools Setup
- Documentation to Read
- Local Development Setup
- Key Concepts
- Getting Help
- First Tasks
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
.envfiles
Third-Party Services¶
- Sentry - Error tracking and monitoring
- Otter Developer Portal - developer.tryotter.com
- OK Manager - manager.orbitalkitchens.com
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:
- Python 3.11 or higher
- Pants Build System - Monorepo build orchestration
- Ruff - Linting and formatting
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
.envfile with database credentials
.NET Application (orbital)¶
Orbital-Specific Requirements:
- .NET 8 SDK
- .NET Aspire workload - Cloud-native orchestration
- Metalama - Code generation and aspect-oriented programming
- pnpm - Frontend package manager
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:
- 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:
- Best Practices - Developer workflow and standards
- Code Reviews - Code review guidelines
- Architecture Overview - System design and components
Important Reading (First Month)¶
Deep dive into system functionality and operational procedures:
- Order Flow - How orders flow through the system
- Onboarding a new brand - Brand setup procedures
- Onboarding a new location - Location setup procedures
- Service-specific
.agents/directories - Context and implementation details for each service
Reference Documentation (As Needed)¶
Keep these resources handy for specific tasks:
- Pants Documentation - Build system reference
- Ruff Documentation - Linting and formatting tool
- Google Python Style Guide - Python code style standards
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.jsonenvironment-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
/pingendpoint 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¶
- Onboard a new brand
- Onboard a new location
- Order flow through the system
- Monitor and triage errors in Sentry
.agents/directories - Service-specific context and implementation details
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