Welcome to the Team! 🚀
Our Engineering Culture
Welcome aboard! We’re excited to have you join our team. We’re a small, focused development team building production-grade SaaS applications and Shopify apps. Our engineering culture is built on four core principles:
The Four Rules
- Predictability - Every endpoint follows the same pattern, every component has the same structure. When you’ve seen one, you’ve seen them all.
- Readability - Code should tell a story. Anyone should be able to understand what’s happening without being an expert.
- Simplicity - We favour minimal dependencies and clear separation of concerns over clever abstractions.
- Upgradability - We version our APIs, keep business logic in services, and design for change.
We prioritise shipping reliable features quickly over perfect architecture. Our users depend on us, so we emphasise testing, monitoring, and clear documentation.
Tech Stack Overview
We support two common stacks depending on the project:
- Python + React: FastAPI backend, React/Next.js + TypeScript frontend with Tailwind CSS.
- Full TypeScript/JavaScript: Node.js backend (NestJS/Fastify/Express), React/Next.js + TypeScript frontend with Tailwind CSS.
Typical components:
- Backend: FastAPI (Python 3.14) or Node.js (NestJS/Fastify/Express)
- Frontend: React 18+ with TypeScript (often Next.js) and Tailwind CSS
- Database: PostgreSQL 15+
- Caching/Queues: Redis
- Background Jobs: Celery (Python) or queue workers such as BullMQ (Node.js)
- Infrastructure: Docker + Docker Compose (local), Railway/Cloud66 (production)
- Cloud: AWS services where needed (S3, SES, etc.)
Key documentation:
Essential Reading: Style Guides & Best Practices
These guides will help you ask better questions, write better code, and collaborate more effectively:
Communication & Collaboration
- How To Ask Questions The Smart Way - Essential guide for asking technical questions effectively
- Getting Answers - Practical tips for getting help from others
General Coding Philosophy
- The Zen of Python (PEP 20) - Guiding principles for Python code (applies broadly)
- The Twelve-Factor App - Best practices for building SaaS applications
- KISS Principle - Keep It Simple, Stupid
- YAGNI - You Aren’t Gonna Need It
Python Style Guides
- PEP 8 – Style Guide for Python Code - Official Python style guide
- Google Python Style Guide - Google’s Python conventions
- Real Python Style Guide - Beginner-friendly PEP 8 guide
JavaScript/TypeScript Style Guides
- Airbnb JavaScript Style Guide - Industry-standard JS/React style guide
- Google JavaScript Style Guide - Google’s JS conventions
- TypeScript Do’s and Don’ts - Official TypeScript best practices
Code Review & Quality
- Google’s Code Review Developer Guide - How to do effective code reviews
- Conventional Commits - Standard for commit messages
- Semantic Versioning - Version numbering best practices
Security Best Practices
- OWASP Top 10 - Top 10 web application security risks
- OWASP Cheat Sheet Series - Security guidance for developers
These resources complement our internal standards and will help you grow as a developer. We especially recommend reading “How To Ask Questions The Smart Way” as it will help you get better support from the team and the wider developer community.
First Day Checklist
Accounts & Access
- GitHub account added to organisation
- Slack workspace invitation accepted
- AWS console access (if needed)
- Railway/Cloud66 dashboard access
- pgAdmin or database GUI tool installed
- Postman account created and team workspace joined
- Added to relevant email groups
Slack Channels to Join
Please ask HR to Add you to our Slack Channels (if not already)
- Use threads to keep conversations organised
- Don’t hesitate to ask questions - we’re here to help!
Tools to Install
Complete setup instructions are in local-setup.md. You’ll need:
- Python 3.14
- Node 22.21.0
- Docker Desktop
- VS Code (or your preferred editor)
- Git
- pgAdmin or another PostgreSQL client
- Postman (for API testing)
Repository Access
You should have access to:
- Main application repository
- Infrastructure repository (if separate)
- Internal tools repository
Clone the main repo and follow the setup guide in local-setup.md.
First Day Goals
By end of day one, you should:
- Have local development environment running
- Successfully run the application locally
- Run all tests successfully
- Understand the system architecture (see
architecture-overview.md) - Know where documentation lives
Editor & Tooling Setup
See ../06-tooling/editor-setup.md for:
- VS Code recommended extensions
- Linter configuration
- Pre-commit hooks setup
- Debugging configuration
Also review ../06-tooling/pre-commit-hooks.md for setting up automated code quality checks.
First Week Goals
By end of week one, you should:
Environment Fully Working
- Local dev environment runs smoothly
- Can run tests and migrations
- Pre-commit hooks installed and working
First PR Merged
- Pick up a “good first issue” from the backlog
- Follow our development workflow (see
../03-workflows/feature-development.md) - Get code reviewed and merged
Documentation Read
- Read all of
01-getting-started/ - Skim
02-standards/(you’ll reference this constantly) - Understand our Git workflow (
03-workflows/git-workflow.md) - Know our PR process (
03-workflows/pr-process.md)
- Read all of
First Pairing Session
- Shadow a team member on a feature
- Understand how we debug issues
- Learn our deployment process
Where to Get Help
Team Members
- Technical Lead - Architecture decisions, complex technical problems
- Senior Developers - Code reviews, design discussions, best practices
- DevOps/Infrastructure - Deployment, infrastructure, CI/CD issues
- Product Manager - Feature requirements, priorities, user context
Documentation
- This playbook (
docs/) - Standards, workflows, runbooks - API Documentation (
docs/api/endpoints.md) - API contracts - README - Project-specific setup and context
- Code comments & docstrings - Inline documentation
Common Resources
- GitHub Issues - Bug tracking, feature requests
- Postman Collections - API testing and examples
- dbdiagram.io - Database schema diagrams
- Production logs - CloudWatch/Datadog (links in
../05-runbooks/debugging.md)
Learning Path
Week 1-2: Foundations
- Set up environment
- Read core documentation
- Make small PRs (bug fixes, minor features)
- Learn our Git workflow and standards
Week 3-4: Contributing
- Pick up medium-sized features
- Write tests and documentation
- Participate in code reviews
- Understand deployment process
Month 2: Ownership
- Own features end-to-end
- Design database schemas
- Make architectural suggestions
- Help onboard the next new team member
Development Philosophy
We Value
- Shipping early and often - Small, incremental improvements over big bang releases
- Clear communication - Over-communicate in async environments
- Testing - If it’s not tested, it’s broken
- Documentation - Future you (and your teammates) will thank you
- Code reviews - Learn from each other, maintain quality
- Simplicity - Solve today’s problems, not hypothetical future ones
We Avoid
- Premature optimisation - Make it work, make it right, then make it fast
- Clever code - Prefer obvious over clever
- Large PRs - Keep changes small and reviewable (<400 lines)
- Undocumented decisions - Capture context in code comments and docs
Performance Standards
- API Response Time: <500ms for all endpoints (see
../02-standards/api-patterns.md) - Test Coverage: 80% minimum
- PR Review Time: Within 24 hours
- Deployment Frequency: Multiple times per day to staging, daily to production
Next Steps
- Complete the setup in
local-setup.md - Read
architecture-overview.md - Review
../02-standards/code-standards.md - Pick up your first issue!
- Set up your editor with linting and pre-commit hooks (see
../06-tooling/)
Welcome to the team! Let’s build something great together. 💪