Things to do in your personal projects for your first job
Tags: job, firstjob, bootcamp, junior
Published: 2021-09-10 23:13:33

It is hard to prove your level of experience if you have never worked in the software industry before. As a relatively new developer who has gone through a bootcamp and job-hunting processes in the past year, I'd like to draft some ideas for upgrading your portfolio out of my personal experience.


### Know how to work with data

A web application is useless without data. All the big companies you would possibly want to work for are representing data in their products and internal tools one way or another. Know how to use data tables, charts, calendars, etc.

Fetching some data and putting it on a data table is not enough sometimes. Make your apps interactive by adding functionality for CRUD operations to the table or calendar component.

Beware of network calls initiated by your app in your projects. Your apps should not make unnecessary network requests. Research and practice with libraries that handle this problem. Or, even better, come up with your solution!

I interviewed a handful of companies whose interview process included a project/assignment that had something to do with tables. Knowing how to handle them would give you a head start when interviewing those companies.


### 1. Be "jack-of-all-trades" and "master-of-one" at the same time

This was the key in my experience. I heavily focused on React and its ecosystem while learning other things to make me a better front-end developer. I built many web apps (front-end/full-stack), a simple UI library, a Google Chrome extension, multiple mobile apps; all revolving around my React knowledge. 

I learned GraphQL but used it with React. Made back-end applications with React front-end. React Native and Chrome extension projects of mine showed my "can work in different platforms" knowledge but they were still involved in React in some way.

It gave me a lot of talking points in interviews for jobs that required React knowledge since it is (probably) the most requested technology for web development jobs recently. It also proves that you are eager and open to learning new things.

Pick yourself a focus point (preferably a popular one) and learn other things around that technology. Having trouble finding the peripheral technologies to go with your main focus? Look at job descriptions to see if they are mentioned, look at packages and their download count on npmjs, look at the "used by" count of a library's GitHub repository. These are all indicators of an open-source library's popularity.


### Polish your projects

This is a nice way to show your "attention to detail" skill. Your first software job is not going to be writing code 8 to 5 every day. There will be team discussions around features, meetings with clients, writing documentation, etc. A developer who is capable of handling different aspects of a project is an asset to any company. 

Say you built an app and deployed it. It is equally (if not more) important to have;

- readme file that documents the project
- nice URL (not randomly generated by Vercel, Heroku, Netlify, etc.) attached to the Readme file and the description of your repository on GitHub so the recruiter/hiring manager can see what you are capable of
- fully functioning features and UI elements that looks and feels complete

If you already do that for every project, awesome! The next thing would be to talk about your projects and find ways to improve them.

- Record short videos explaining how to use your application
- Post about struggles, accomplishments, things you learned building the app on social media (LinkedIn & Twitter is usually a great place to do that)
- If a project came out to be a good one, keep improving it. One large project would be more impactful than 5 basic projects (I did this with my UI library project by rewriting it 2 times, once after I learned classes in JavaScript, once after I learned TypeScript)
- If you don't know what to do to improve your projects, you can research similar products for new features or ask other developers for ideas.


### Conclusion

All the things I mentioned here immensely helped me get two high-paying jobs in the 8 months. I hope some fresh bootcamp grads or self-learners might benefit from my experience.

To some, the list might be overwhelming and feel like forcing you out of your comfort zone (that was the intention, surprise!) However, if you want to be a software developer, these are the things that you will deal with on a "sprintly" basis.

You will have to communicate.

You will have to document.

You will have to have lengthy discussions on products/features.

And eventually, you will get to the "fun" part; building stuff!

It's a package. You cannot separate one from another. So it's better if you get to it before you start your first job!