Junior Devs Remote Roles Anywhere
The purpose of our project was creating a tool lodged in a website that would allow the search of “Junior remote job posts” in a quick and simple way for Holberton and Coderise members.
Our development team was made up of Antonio Estela as “FrontEnd Developer”, Jose Cuervo as “Devops Developer” and Ricardo Camayo and I worked on “BackEnd Development”.
Our project arose from Coderise’s request to develop this tool together as a part of our final project in Holberton School’s “Foundations Program”, and it’s designed so that, once finished, all the students in this program could use this tool to ease their search for a job that adjusts to their tastes and needs in the best possible way, in this way providing filters and information that we ourselves, being part of the program, consider important and relevant.
For everyone, no matter the academic area or educational level, it can be a scary experience to transition from student/apprentice into a functional part of the workforce. Finding a job can be the hardest part at the start, especially if you don’t have any experience in this.
In the technology and programming area this can be even more complex, as you face job positions you’ve maybe never even heard of, many new technologies, different levels of professional qualification, and all this can be very overwhelming, enough to feel completely lost and want to leave that search in hands of someone who can help you. We’ve gone through this ourselves, even more in the development of this project, but this has allowed us to understand the industry a bit more and in this way provide the most precise solutions for each Holbie’s needs.
Because of this, I would like to highlight our most important Features that give our product great value:
- Login using the Holberton or Coderise credentials for privacy.
- Daily search for new job posts.
- “Full responsive” page compatible with mobile devices.
- Search engine that allows you to search by company name, technologies or job post name.
- Voting system to rate job posts and sort out the most relevant.
- Filters for development categories such as FrontEnd, BackEnd and Devops.
- On the bottom part of each post you will find the technologies required for the position.
Our project was developed with the following structure and using the following technologies:
For the scrapper, in charge of extracting the necessary job posts, we used NodeJS, in charge of storing the obtained information in a .JSON archive to then be integrated into our database built in PostgreSQL, which would organize everything in a way so that then, through the use of our API REST, it would connect to the website developed in VueJS and thus be used by the final user thanks to our Deployment made in Jenkins.
One of our biggest challenges was the use of new frameworks for each of us, we’d never used any of the previously mentioned technologies, therefore it was more than necessary to learn effectively in a short amount of time, in a constant and progressive manner to achieve our ideal goals for the project. Yes, this caused many problems during its development, as it didn’t only implicate a disadvantage in the unitary development of each of our corresponding parts of the project, but it also affected each part’s integration process.
It was because of this that we had to work separately, each member concentrated solely on his corresponding challenges, for more than half of the project’s development.
In my perspective, as I was in charge of this branch of the development, the Scrapper’s optimal functionality and its integration into the database gave us plenty of headaches, first because each website is different, and being able to organize all the data we needed so that our project could work in the way we visualized seemed impossible. In addition to this, in the middle of the development, one of the websites we had designated to extract information changed some source code aspects, making our Scrapper’s structure obsolete. Likewise, one of the libraries we used updated and the use of the functions we had designated changed, and from night to morning (literally) our Scrapper stopped working and we didn’t know why. This brought us to reread our entire code and upon not finding any flaws there, we remitted to the library’s documentation, and there we found that it had changed, we implemented said improvements but nothing improved. This was when we checked the website and found those changes. Correcting these steps of the Scrapper took us almost 3 days to once again organize and solve optimally; fortunately we were able to do it without many obstacles but I have to admit it was a very stressful situation (imagine having dedicated almost a month to the code and having it break from one moment to another for no apparent reason).
This experience taught many valuable lessons, not only to me but to the entire development team and that’s the most important part of this project, not only creating awesome tools but also growing as developers and as people.
Personally, I believe I’ve learned a lot with this project, the technical knowledge obtained in this short period of time is very important and useful, and finding out that I’m capable of learning and applying knowledge with these strict time margins is an extremely valuable discovery for myself.
I’ve also learned that I can get to be very capable of leading a team in an orderly and efficient fashion in order to reach the established objectives.
To finish off, thank you for your interest in this process and I hope what I’ve expressed here can be useful for you; each one of us treads down their path differently but there are shared experiences from which we can learn and grow with different perspectives.
My name is Victor Paz, I’m a student from Holberton School who’s just finished his process in the Foundations Program, you can find me on Twitter as @VictorP1312.