JobStack finds the latest programming jobs from around the world to provide you with a fast and simple job searching experience.

View website


What is JobStack?

JobStack is a job board that searches the web for the latest programming jobs from around the world. It was built to provide job seekers with a fast and consolidated job searching experience.

You can search, filter, and save jobs without having to sign up, however you do have the ability to create an account and persist your job searching activity to it if you choose to.

What did I learn from building JobStack?

JobStack was built to further develop my understanding and knowledge of JavaScript and React, as well as provide me (and hopefully others) with a consolidated job searching experience.

This project allowed me to grasp React concepts such as component composition and rendering, prop management, state management, lifecycle events, context API, conditional rendering, styled components, utilizing React Router to handle different types of routing (Modal, Sidebar/Panel-based, Page), and many more concepts. Some additional JavaScript concepts I've further improved include data mutation, handling both synchronous and asynchonous requests, destructuring, template literals, arrow functions and scoping.

I also implemented a Firebase backend utilising Cloud Firestore to store the data, Authentication to handle both temporary and permanent accounts (manual signup as well as OAuth), and Cloud Functions to create a serverless backend that processes new jobs when they become available. This taught me how to better organise and structure the backend of a product as well as provide more experience consuming APIs in the frontend.

The job search experience is powered by Algolia, allowing for incredibly fast and responsive search capabilities. It allows users to perform real-time search, location-based search, and filtering. Algolia does most of the heavy lifting here, but I still needed to create several custom components to render a tailored search experience.

In terms of UI design and HTML/CSS, I designed the product to adapt to mobile, tablet, and desktop experiences, as well as improving my knowledge of concepts such as Flexbox, CSS Grid, CSS Variables, SASS, and SVGs, to name a few.