InterviewPal 🤖

Serverless Functions
Prompt Engineering

InterviewPal is a GPT-3.5 powered AI that helps you practice for your interviews. It will ask you common and relevant interview questions and give you insightful feedback on your answers.

Summary ✨

An AI powered web application that helps you prepare for your next interview. Asking behavioural and technical questions, it can evaluate your answers and provide you with scores and constructive feedback. The project was meant for the 2023 Hack the Break hackathon. I worked on the backend and its integration with the frontend.

Details 🔎

InterviewPal was a hackathon project that I worked on with a team of 4 other developers built in 18 hours.

The project was built using `React`, `Next.js` for both the frontend and backend, `ChatGPT 3.5 API`, `Redis`, `TypeScript`, and `Zod` for type safety.

My role 🫡

I worked mostly on the backend and connecting the frontend to the backend. I was my first time working with OpenAI API.

I also dealt with JavaScript Streams API and Redis for storing temporary user data since Vercel is a serverless platform.

For the frontend, I aided in designing a UI component and implementing it using Tailwind CSS.

Challenges 🥵

Prompting ChatGPT to give us a nicely JSON formatted response was probably the most challenging part of this project. At the time, GPT 4 was not introduced yet which could have made this process a lot easier!

Also, learning about the OpenAI API and how to use it required reading through the documentation and learning the API's quirks. Thankfully, OpenAI had a great documentation for GPT 3.5 on their website and it was an enjoyable read for me.

Lack of time was also a big one since our time was limited to 18 hours. We had to make a lot of compromises and cut out features that we wanted to implement. To make up for this, we decided to focus on the core features of the project and strive for a minimal viable product (MVP).

Takeaway 📖

This was my first hackathon experience and I learned a lot about the process of building a project from scratch in a short amount of time. I also learned that it is effective to work Agile and to break down a project into smaller Minimum Viable Products (MVPs).