Tip 1 : get hands on experience with creating & testing apis. on top of that : learn to write mongoose queries & queries that can query nested stuff & populate fields. this will help you to plan the project on paper & implement on code. have a good grasp of authentication & authorization so that you can add your own twists & turns like a pro & not just follow the same flow which coding tutorials teach. Learn in depth about middlewares & how you can pass data from one middleware onto the next.
Tip 2 : learn how to do things in mysql like you can do in mongoose. most tutorials dont teach mysql with node these days initially so it gets hard when we try to do this for the first time.
Tip 3 :learning axios well & useEffect along with it will help in connecting the backend to frontend easily. because I knew the basics well which I learnt from udemy, it was quite intuitive. Also, react router dom is an essential library (which has now evolved a lot) that I had good hands on practice of. due to this, I was able to link different pages nicely when I had to make the frontend for the backend.
Tip 1: Have lots of projects in the resume. have a proper github account to show the evidence that you have built projects. always try to show something innovative because copied ideas are everywhere are employees doubt whether it is you who have coded it or someone else is coding as a proxy on your behalf. to establish authenticity, always be ready to explain why you wrote even a single line of code. have explanation about every line of code. this will convey to the employer that you don't do things just because you felt like doing it randomly. reasons are very important because every action that we do. I always told interviewers that I want to write modular code & learn more about OOPS concepts. when asked why : I told them because I want to write my own library. Due to this : I never gave the impression to employers that I am learning something just because everyone is learning it. there must be a reason behind why we are doing a certain thing. if we are using react, then there must be a reason. sometimes we can just do fine with writing static sites with html,css & js & infact a lot of freelancers are earninga lot of money just with these technologies. the key here is : to gauge market demand & find which tech-stack caters to our needs. talking about these things gives the employers an understanding into how well we understand business & can assimilate that with tech.
Tip 2: having a creative skill set (like I had in guitar & lead guitar) will allow the employer to know that you are capable of innovation & are willing to go that extra mile if need be. in japanese tradition they say that : the way you do one thing, is the way you do everything. also, if you heart takes you towards experimenting vue js while you are still learning react, go ahead. but make sure you build at least one meaningful project out of it. this versatility is good.
https://github.com/mkpgtr/DeepThought_NudgeAPI
Background : DeepThought Edutech Ventures was hiring for this company 12th Wonder. The first round was relatively easy but I chose to go the extra mile & impress the recruiters by adding relationships between data models & folder structure. It was also asked of us : to create API documentation & according to my skill-level then, I think I managed it well. I created the YAML file & got to work it with my Express API. I deployed it on render. Recently, I removed it from deployment because I exhausted the free-quota.
The Task : We were asked to create a backend api for an imaginary organisation where people can create announcements & link events with those announcements. Also, room for innovation was given so that the recruiters could know how far a guy can stretch it.
What I did : Thanks to my learning from Udemy, I knew the basics of API creation & testing with postman. The fun part was to add bells and whistles to the Basic API routes, controllers & middlewares. For this, I added relationships between the data-models. You can see in the Github link which I have attached. Also, I worked a lot on handling edge cases & errors.
https://github.com/mkpgtr/DeepThought_NudgeAPI/blob/master/routes/subCategoryRoutes.js (look at line 13)
I added code that will validate parent-child records & store data in proper format. I had added other stuff like this in the image Upload API of this project also.
After this project, there was interview on this project. Here I was asked to just open the code which I had submitted. My project was good but the interviewer told that : I had to convert this whole code into MYSQL code. So, in the next round I brought forth the MYSQL version.
Because I did extra things from my side in Round One, it was scary for me to convert those mongodb relations into MYSQL foreign-key like relations due to the fact that : I never worked with mysql library for Node JS as extensively as I worked with in this project.
There were lots of cases in this project, where I was confused how to approach the problem. Like linking values from one table to another & then generating another table by using values from some other table.
The loops I have written in this file : https://github.com/mkpgtr/NudgeAPI_MYSQL/blob/master/routes/eventRoutes.js
were worth the hard-work. I did not know I could do it but somehow I was able to manage it. In other files also, you can see that I have tried to work out solutions someway or other. & this is not chatGPT code.
I wrote this code from first-principles & from the understanding which I had regarding : how MYSQL works (7months ago).
When I finished the task, I was pretty sure that the interviewer would love this. & so it happened. I was asked to show this code in the live round. There, my understanding was tested about how to hit routes & how JWT works & all. I was also asked about middlewares.
Finally, I was asked to build the frontend for this API. So in the next round, I had to present the frontend for this API. I created the frontend in React.
It was straight forward API consuming & I was quite burnt out by now because of doing this one project. I added the feature where database changes would be reflected in the dropdown. linked the dropdown options to database records. also added pagination feature. image upload was done via axios. & other stuff like that. I took the pagination logic from chatGPT & told the interviewer that this logic was taken from chatGPT.
Until now, I had been interviewed by the software developer of DeepThought..But this time the interviewer was the tech-lead of 12th Wonder itself.
I was asked to write MYSQL queries. I had implemented a feature where, if a parent record was deleted then child record would also get deleted. I did this via On Cascade Delete option in mysql admin dashboard.
I also showed the interviewer how every piece of code is working & related to each other. The interviewer was very impressed & he asked me to learn about caching. After 6 hours, I implemented that caching feature using node cache library & I learnt about how caching works in nodejs. It was a nice interview experience.
The HR round happened before the technical rounds. DeepThought has an awesome recruitment process. It was of seven days observation period. From 5PM to 9PM we had to attend a Zoom link video call & do group discussion & observe people already working in different companies in the Zoom Rooms. I passed that observation period within four days.
Also, we had to write reflections about what we learnt each day on the zoom link. So overall, this was the most transparent & effecient HR rounds I have ever come across while giving interviews.
It was technically of 960 minutes : 4 hours for 4 days

Here's your problem of the day
Solving this problem will increase your chance to get selected in this company
What is recursion?