Onboarding Guide
Welcome to Kirana Labs
Welcome to the engineering team at Kirana Labs! This guide will help you get set up, understand our workflows, and become a productive team member as quickly as possible.
First Day Essentials
Account Setup
Your tech lead or manager will help you set up accounts for the following services:
- Email: Your Kirana Labs email account
- Microsoft Teams: Our primary communication tool
- Gather: Our virtual office
- GitHub: Access to our code repositories
- Plane: Our project management tool
As needed for specific projects:
- Bitwarden: For secure password management
- Railway/AWS/GCP/Azure: For infrastructure management
Development Environment Setup
-
Install Essential Software:
- Windusrf, Cursor, or Visual Studio Code (or preferred IDE)
- Git
- Node.js (v20)
- PostgreSQL
- Docker
- Microsoft Teams desktop client
- Outlook desktop client (or equivalent)
-
Development Tools Configuration:
- Configure ESLint and Biome for code quality
- Set up database access
- Configure API keys for development
- Suggested tools: TablePlus, Insomnia
First Week: Understanding Our Stack
Technology Overview
Review our primary technology stack:
- Frontend: NextJS 15, React Server Components, TypeScript
- Mobile: React Native w/ Expo (when needed)
- CMS: PayloadCMS v3.24
- Backend: Node.js v20, Express (when needed outside of NextJS)
- Database: PostgreSQL
- Infrastructure: Railway, AWS/GCP/Azure
- Caching/Queues: Redis, BullMQ
Project Architecture
Each project generally follows this structure:
-
NextJS Application:
- App router with server and client components
- Server components for data fetching
- Client components for interactivity
-
PayloadCMS Integration:
- Collections for content modeling
- Admin UI for content management
- API endpoints for data access
-
Database Layer:
- PostgreSQL for relational data
- TypeScript interfaces matching database schema
-
Deployment Pipeline:
- GitHub for version control
- GitHub Actions for CI/CD
- Railway for hosting and infrastructure
Getting Started with a Project
To get started with an existing project:
# Clone the project repository
git clone https://github.com/kirana-labs/[project-name].git
# Install dependencies
cd [project-name]
npm install
# Create a local .env file (copy from .env.example)
cp .env.example .env
# Set up the database
# Option 1: Use Docker
docker-compose up -d
# Option 2: Connect to existing development database
# Update .env with connection details
# Run database migrations (if using PayloadCMS)
npm run payload:migrate
# Start the development server
npm run dev
Understanding Our Workflow
Agile Process
We follow the Agile methodology:
- Sprint Duration: 1-2 weeks depending on the project
- Daily Standups: Brief meetings to discuss progress and blockers
- Sprint Reviews: Demonstrations of completed work
- Retrospectives: Team reflection and process improvement
Git Workflow
- Create a branch from
devfor your task - Make regular commits with clear messages
- Push your branch and create a pull request
- Address feedback from code reviews
- Merge your changes after approval
# Start a new feature
git checkout dev
git pull origin dev
git checkout -b feature/KL-123-feature-name
# Make your changes and commit
git add .
git commit -m "KL-123: Add feature X"
# Push your branch and create a PR
git push -u origin feature/KL-123-feature-name
Code Review Process
All code changes require review:
- Self-review your code before submitting
- Request reviews from appropriate team members
- Address all comments and feedback
- Get final approval before merging
Your First Task
Your first task will be a small, manageable feature or bug fix to help you get familiar with our codebase. Your tech lead will guide you through:
- Understanding the requirements
- Setting up the local environment
- Implementing the change
- Creating your first pull request
- Deploying your change
Communication Channels
-
Microsoft Teams Groups:
General: Company-wide announcementsKirana Labs Tech: Engineering team discussions[Project Name]: Project-specific channelsRandom: Non-work discussions
-
Meetings:
- Daily standups (15 minutes)
- Sprint planning/reviews (weekly or bi-weekly)
- 1:1 with your manager (bi-monthly)
- Team meetings (as scheduled)
Learning Resources
Internal Documentation
- Coding Standards: Our coding guidelines
- Development Workflow: Our development process
Technology Documentation
- Next.js Documentation
- React Documentation
- TypeScript Handbook
- PayloadCMS Documentation
- PostgreSQL Documentation
Starter Projects
Explore these repositories to understand our project structure:
Common Questions & Troubleshooting
Development Environment
Q: How do I connect to the development database?
A: Connection details are in the project's .env.example file. Copy this to .env and update with your credentials.
Q: How do I reset my database for development?
A: Run npm run db:reset in the project directory. This will drop and recreate your local database.
Q: How do I access the PayloadCMS admin panel?
A: Start the development server and navigate to /admin in your browser.
Workflow
Q: How do I estimate tasks? A: Work with your tech lead to estimate task complexity and time requirements.
Q: What should I do if I'm blocked? A: Post in specific project's Teams group or discuss during the daily standup.
Q: How do I deploy my changes?
A: After your PR is merged to dev, it will automatically deploy to the development environment.
30/60/90 Day Goals
First 30 Days
- Set up your development environment
- Understand our technology stack and architecture
- Complete your first few tasks with guidance
- Get familiar with our codebase and practices
First 60 Days
- Work independently on assigned tasks
- Participate actively in code reviews
- Suggest improvements to our processes
- Deepen your understanding of our business domain
First 90 Days
- Take ownership of features or components
- Mentor newer team members
- Contribute to architectural discussions
- Identify and propose solutions to technical challenges
Feedback and Continuous Improvement
We value your feedback on our onboarding process:
- Share your experience with your manager during 1:1 meetings
- Suggest improvements to our documentation
- Help improve this guide for future team members
Welcome to the team! We're excited to have you join us and look forward to your contributions to Kirana Labs.