For an entry level / junior developer, personal projects are often the holy grail when it comes to starting conversations with recruiters, hiring managers, and ultimately, scoring jobs. Project-based learning (or PBL) also happens to be one of the best, if not THE best way, to get familiar with new technologies, paradigms and approaches you have yet had a chance to work with.
Project based learning increases long-term retention, improves problem-solving and collaboration skills, and improves students’ attitudes towards learning.
– Strobel, 2009
Something to keep in mind, the way personal projects are presented (pitched) matters more than you think. If you had to choose a future team mate based on the following statements, whom would you rather work with?
- Candidate A: I built this app as I wanted to learn
Pythonand ultimately get a job working with the same technology
- Candidate B: I encountered a problem / tedious repetitive task I couldn’t find a solution for automating. I decided to build this app in
Pythonas I saw it as an opportunity to learn something I haven’t worked with in the past in order to further expand my horizons. I decided to use framework A instead of framework B as it best suited my use case and there also seemed to be more job opportunities using framework A
The latter not only portrays the candidate’s ability to translate real life problems / constraints into code which no hiring manager takes for granted, it also showcases the candidate’s ability to properly analyse a problem and evaluate the available tools needed for the job prior to laying out the first lines of code.
Hard truth is, building a simple
Build a Clone of an existing Website
Choose a website you like and create a clone of it.
Building a popular website smaller scale clone will expose you to some of the same constraints the engineerings faced while building the website of your choosing. Want to push it a step further? Add a database, make the components interactive, try adding an additional layer of security, sky is the limit!
Build an Enterprise App (CRUD)
CRUD (Create Read Update Delete) is a very common feature for most web apps.
A To-Do list or a Note taking app will get you started with CRUD.
A step further would be to build a small scale CRM (Customer Relationship Management) system, a CMS (Content Management System) or even a small scale ERP (Enterprise Resource Planning) system focusing on one or two core modules that are used in every business.
Even further? Lots of large scale projects require some sort of communication with the backend server and displaying data fetched from that server. This requires the use of an API (Application Programming Interface). Also, try integrating any third party APIs into your application (Traffic Data? Weather? Twilio? Email?)
Build a URL Shortener
Make the world a better place by.. shortening URLs?
Handle edge cases flawlessly and build a dashboard tracking metrics like number of clicks, sources, etc. Give the user the ability to filter by Date Created, Top Performing, etc. Push it a step further with incorporating a unique id for affiliate links and another step further with a web browser extension!
Find a way to automate some repetitive task you find yourself performing on a daily / weekly / monthly basis.
Bonus points if you find a way to automate a certain part of your work, your employer will very likely not only thank you, but also compensate you. Use third party APIs to save yourself some time. If you need some inspiration, check out this Reddit thread that’s full of great ideas on
Python automation. Once done, why not give it a pretty frontend to make it a fully fledged web application?
Build an API Connected App
Why not build a modern, interactive frontend with either React, Vue, Angular or Svelte consuming one of these free APIs?
Skyscanner Flight Search
Open Weather Map
REST Countries v1
URL Shortener Service
SYSTRAN.io – Translation and NLP
Investors Exchange (IEX) Trading
City Geo-Location Lookup
Youtube To Mp3 Download
Nexmo SMS Messaging API
Crypto Asset Tickers