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. For team resources and links, see Team Resources.
GitHub Repositories¶
Request access to these repositories:
- orbital - Main .NET application - GitHub Repository
- orbital-manager-backend - Python backend services - GitHub Repository
- orbital-wiki - Documentation site (this wiki) - GitHub Repository
Azure Access¶
- Azure account with access to Orbital resources
- Azure host:
cihanorbitalkitchens.onmicrosoft.com - Portal: Azure Portal
Databases¶
- MongoDB access (local or cloud instance) - MongoDB Atlas or local setup
- PostgreSQL/Supabase access - Supabase Dashboard or local PostgreSQL
- Snowflake access for data warehouse - Snowflake Data Warehouse
- Database credentials added to your local .env files
Third-Party Services¶
- Sentry - Error tracking and monitoring. Access: Sentry Issues Dashboard. See Team Resources for details.
- Otter Developer Portal - developer.tryotter.com
- OK Manager - Our internal kitchen operations platform. Access: manager.orbitalkitchens.com
Communication & Infrastructure¶
- Slack: Team workspace access; primary channel is
#engineer-bug-requests - Linear: Task and project tracking. See Team Resources for details. Access: Linear Projects
- Team Drive: Access shared documents and design docs via Engineering Team Drive
- Daily and Weekly Updates: Google Doc for team updates and progress tracking
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:
- .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 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:
- 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:
- 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. 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.jsonenvironment-specific configs
Verification Checklist¶
-
ruff check .passes (FastAPI Backend) -
pytestpasses (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¶
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¶
- Onboard a new brand
- Onboard a new location
- Order flow through the system
- Monitor and triage errors in Sentry
- Service-specific .agents/ directories - Context and implementation details for each service
Getting Help¶
- Slack:
#engineer-bug-requestsfor 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¶
- Always get someone to approve your PR before merging (cross-validation).
- Link PRs to Linear tickets.
- Follow Best Practices and Code Review Guidelines.
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