Safiullah Rattar

Software Developer

Software engineering student at Carleton University, graduating April 2026. I build full-stack web applications. Most recently I built parhako.com, an EdTech platform now used by 1,600+ students.

Projects

  • Parhako — EdTech platform for university entrance exam prep. 1,600+ users, 30+ paying customers. Built the full stack: Next.js frontend, Express.js REST API, PostgreSQL with Prisma ORM. Includes a mock test engine, Chart.js analytics dashboard, JWT auth with subscription management, and a Python ETL pipeline that processes 10,000+ exam questions from scanned textbooks using OCR and the Gemini LLM API.
  • Carleton Course Scheduler (Capstone) — Scheduling tool that generates conflict-free timetables from student preferences using constraint-satisfaction algorithms. React, TypeScript, Python, PostgreSQL.
  • Learning Management System — University of Mirpurkhas — Full LMS covering course delivery, student enrollment, assignment submission, grading workflows, and analytics dashboards for instructors. React, Node.js, PostgreSQL.
  • AI Data Extraction Pipeline — Automated pipeline that processes exam questions from scanned PDFs. OCR extracts raw text, Python structures it by subject and chapter, and LLM validation catches errors. Cut manual data entry by 80%.

What I know

Languages: JavaScript, TypeScript, Python, SQL, HTML/CSS, C++

Frontend: React, Next.js, Chart.js, responsive design, accessible UI

Backend: Node.js, Express.js, REST API design, JWT auth, RBAC, session management

Databases: PostgreSQL, MongoDB, Prisma ORM, schema design, query optimization

AI / data: Gemini LLM API, prompt engineering, OCR pipelines, ETL design

Testing: Jest, React Testing Library, pytest, unit and integration testing

Tools: Git, GitHub, Docker, Linux, Neovim, CI/CD pipelines

Practices: Agile/Scrum, code reviews, client requirements gathering, full project lifecycle

Other things

I daily drive Arch Linux and Neovim. Configuring my setup has become a hobby in itself. Also 2,500 hours in Dota 2. Invoker main, not sorry.