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.