My Job hunting experience!
Tags: career, webdev, programming
Published: 2022-01-10 17:11:48

Hi Guys, today I want to share my Job hunting experience that lasted for 4 weeks from mid/end of october to 2nd, 3rd week of November 2021. 

About me:
`I am a full stack developer skilled in Django, React, Docker, FastAPI, etc and have intermediate knowledge in NodeJs, MongoDB, NextJS, DevOps (Nginx, CI/CD, etc). I have a total of 2.5 years of experience in full stack with the above mentioned skills.`

## Stats
- I applied for 60-70 Jobs on various platforms 
- I was shortlisted for 1st round in 20-22 companies
- After 1st round, 3-4 companies rejected me and no-show from 4-5 companies. 
- Out of the remaining 13-14 companies (most of them were product based startup and had either or both Django/React in their stack and job profile was full stack developer), I cleared the final round in 4 companies after giving 2-3 intermediate rounds of interview.
- It took 5-7 days to compare the offers, and finally I accepted one based on these factors - job profile, compensation, location, tech stack, etc

## Platforms I used
1. https://naukri.com - keep your naukri profile 100% complete, buy naukri fast forward if needed, give some assessment on naukri, search and apply 10-15 jobs daily.

2. https://tophire.co/ - Signup and get your profile sortlisted on this platform. The tophire is awesome, success rate is pretty high here because of the way platform is designed. Here you dont apply for companies, companies apply for you 😉.

3. https://angel.co/ - Create or update your profile, add all details like projects, linkedIn links etc. Search and apply for jobs based on your skills and prepare a small summary that you will send to recruiter while applying. Eg message to recruiter - `Hi X, I have 2 Years of experience in react, here is my portfolio www.example.com, I am interested in the FE position in Y company, let me know if we can have a chat. I am available on abc@gmail.com or +91 11111 22222`. Things I love about this platform is most of them are product based startups, they offer good salary, and the salary range is also mentioned in the job details. 

4. https://geektrust.in - I got couple of interviews from this portal.
5. https://www.linkedin.com/ - Keep it updated, pass some assessments, and update your profile status to actively job-searching, etc.
6. Some more: https://optimhire.com/, apna app, Hirect, Zigup

## Questions asked (some)
## Frontend 

1. Move an element to the center of screen horizontally, vertically
2. Width vs min-width
3. IndexDB
4. Event loop in JS
5. HEAD vs OPTIONS network call
6. CORS
7. flex in css
8. React DOM Rendering, Virtual DOM vs Real DOM
9. Redux vs context
10. Custom hooks, usememo
11. async function
12. Improve Lighthouse performance in react
13. Promise vs async await

## Backend
1. How can we compress JSON response from backend to frontend?
2. Python touple vs List
3. Disadvantage of python?
4. Multiprocessing/multithreading in python
5. GraphQL vs REST? can we use GraphQL as REST api endpoints? Advantage with using GraphQL with REST?
6. REST API standard terms/keywords
7. MVT vs MVC
8. Stateless vs stateful? cookies vs JWT?

## DataBase
1. SQL Group By & Django ORM Group by
2. Minimum Data models / Table required for an e-commerce, relations
3. DB Normalizations
4. ACID functionality 
5. SQL vs No-SQL
6. Postgres vs Mongo
7. Indexing vs composite indexing? Order of fields in composite indexing?


## System Design Questions / DevOps
1. High lvl block diagram of a file converter system eg: pdf to image, how can we make it scalable and performant, fail safe, etc.
2. Why Micoservices? Challenges in Microservices?
3. What is 775 permission?
4. Command for memory / space utilization in linux
5. How load balancer works? eg?
6. Vertical vs Horizontal Scaling?
7. Terms like - Deamon, Kernal
8. Send file to remote server using ssh?
9. What this will you consider before selecting a new tech in your team? Eg Django vs FastApI or React vs Vue
10. Use of refresh token in auth? What if we hack refresh token of a user?
11. Design a pubsub system with python/js

## Coding
1. Given an array of integers, return a new array such that each element at index i of the new array is the product of all the numbers in the original array except the one at i.
For example, if our input was [1, 2, 3, 4, 5], the expected output would be [120, 60, 40, 30, 24]. If our input was [3, 2, 1], the expected output would be [2, 3, 6]

2. Given a list of numbers and a number k, return whether any two numbers from the list add up to k.
For example, given [10, 15, 3, 7] and k of 17, return true since 10 + 7 is 17. 
This should be done in 1 pass.

3. Many more, I dont remember. As I was applying for only full stack, coding was very easy.

### How to crack job ?

1. Get shortlisted for interview: Creating an awesome resume is the only thing in your control that you can do to get shortlisted. Most recruiter will spent 10-60 seconds at your resume to shortlist so my suggestion would be - add only important things like what impact you did in your current job, what problem you solved, list your linked-in, stackoverflow, github accounts in resume, possibly host your websites on heroku, github-pages, etc and give a live link in the resume. This shows your dedication towards coding. And mention some acheivements, list of all your personal projects. For a 2 years of exp, 1 page resume is more than enough i think.

2. Clear the Interview: Most interviewers ask core questions from any topics. So you can google `Top 50 Question in react/Django/Frontend/FullStack/Backend/DataBase/etc` and prepare them. Thats it, it will cover around 80% questions. And before attending an interview, try to do some research on the company, what they do, tech stack, etc and after the interview ask some question like what is the team structure? etc. Note these down. These will help you in comparing these companies. 

3. Tips: Dont settle just after getting 1,2 job offers, ask recruiter for some more time. If you have some better offer from Y company and you want to join X company. Be honest, ask the recruiter of X company that you have a good offer and re-negotiate your compensation. (We can re-negotiate after accepting an offer and most of the recruiter are aware of this).

Questions? Feel free to ask in the comments. Thanks for reading!