Skip to main content

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​

  1. 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)
  2. 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:

  1. NextJS Application:

    • App router with server and client components
    • Server components for data fetching
    • Client components for interactivity
  2. PayloadCMS Integration:

    • Collections for content modeling
    • Admin UI for content management
    • API endpoints for data access
  3. Database Layer:

    • PostgreSQL for relational data
    • TypeScript interfaces matching database schema
  4. 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​

  1. Create a branch from dev for your task
  2. Make regular commits with clear messages
  3. Push your branch and create a pull request
  4. Address feedback from code reviews
  5. 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:

  1. Self-review your code before submitting
  2. Request reviews from appropriate team members
  3. Address all comments and feedback
  4. 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:

  1. Understanding the requirements
  2. Setting up the local environment
  3. Implementing the change
  4. Creating your first pull request
  5. Deploying your change

Communication Channels​

  • Microsoft Teams Groups:

    • General: Company-wide announcements
    • Kirana Labs Tech: Engineering team discussions
    • [Project Name]: Project-specific channels
    • Random: 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​

Technology 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.