Developers either freelancers or job seekers are hired based on their portfolio. But what makes for a good portfolio?
So you are a developer & looking for a new gig or a job & everyone asks you for the portfolio? So what makes a good portfolio?
First of all there is no one solution fits all scenario. The development field is vast & depending on your work area your portfolio needs will vary. This blog is directed towards web-developers but I am sure you can use the concepts discussed here for your own purpose.
The first question that comes on the topic is "What kind of projects are valid?".
The objective of creating these projects is to showcase the diversity of our talents. So our projects need to be from different domains. If we talk about basic CRUD apps, the app should allow all the 4 basic operations - Create, Read, Update & Delete. Throwing in a bit of data visualisation would really make it standout.
- Social Media - like Facebook, Twitter
- e-Commerce - like Amazon, DTC brands
- Media Player - Netflix, Youtube
- Messaging, Group & Individual Chats - like WhatsApp, Telegram
- Productivity - like Asana, Trello
- Game, Extra points for Multiplayer games - anything simple like a Maze, Snake
- You can get more project ideas from Product Hunt , r/appideas , Dribble , Behance , etc...
Ideally it should be 5 projects but the bare minimum is having 3 projects.
Yes making clones is ok but try to add / remove a feature, brand name. You can add a disclaimer in the footer that this is just for educational purposes.
No! Basic websites are not ok as a project. Most companies are not looking for website builders.
There are more openings in Front-End rather than Backend today but if you are targeting more for a Full-Stack or Backend heavy role, go for it. Just use the best practices for API & also document your API. The bar for Backend is higher.
- At least 2 apps should have a Backend & should be connected to it.
- At least 2 apps should have a Database & some kind of Database storage.
- At least 2 apps should have a Login Auth functionality with user specific features, for eg. Bookmark.
- Atleast 2 apps should have some kind of Routing feature used.
- All four operations of CRUD.
- You may use API mocking providers like miragejs for other projects without back-end.
- It should be mobile friendly & preferrably responsive. If you cant make it responsive, limit the view-port to mobile width, so that it looks good even on desktop.
- Have a few contributions to some Open Source projects & have them merged.
- Some Data Analysis & Visualisation.
- Contribution in GSoC, GSoD& Hackathons.
- A fast-paced video walkthrough of the App with your commentary, highlighting any unique / challenging features. The reviewer doesn't have the time to go through your app in detail, make it easy for him & bonus is you get to highlight unique features of the app.
- A Google Document talking about the system architecture of the app. If possible add reasons for choosing the said architecture.
- Tests incorporated in the project. The most basic of them are also OK. The idea is to let the reviewer know that you understand how it works.
- Optimised performance & lighthouse report.
- Add link for the deployed App, Repo, Video & Google Doc in your Resume.
- The github code should incorporate the Psuedocode. It makes the job of reviewer really easy.
- Your commits in github should have meaningful comments. Avoid comments like "A minor update" rather say "Added the close button".
- Check out this portfolio of Rahul Jain. What a pleasure. Though this level is not needed. Something basic is also more than good enough.
I will add more as I come across them
- This post is mostly inspired from the topics discussed here. Do watch!
- Here is another post which goes into really a lot of detail on the topic.
Hit me up with any questions you would have!
Keep Smiling :)