In this post, we will talk about the selection process phase in which some companies will request you to elaborate on an IT project. In this project, the company will assess your ability to understand the project requirements, structure a project from the beginning, originality in resolution, software architecture, and versatility in the use of different technologies. In addition, the developer’s ability to prepare a project containing an organized, complete, efficient, and error-free code will be evaluated.
1. Preparation of an IT project: some important points
When applying for a job that requires project preparation:
- Have knowledge and full control of what is being developed: That’s why I recommend you to apply for jobs in which you already have previous experience in the specific programming language requested.
- If any information is missing or unclear, you can and might consult the recruiter (sometimes they will not provide such information). However, it is important to be proactive, checking if the requirements make sense and are possible to be complete. Example: In one test, the project description required me to use a currency conversion API that was down. Instead of waiting for the evaluators to mention this fact, I found another API that could replace the one mentioned in the project scope and I suggested its use to the evaluators.
- Review the content related to the prerequisites for the job a few days before starting the project (for example, if the job requires developing projects including PHP applications, review this content). They will serve as a reference to show what the company is waiting for.
- During the test, objectively plan each step to be developed, prioritizing mandatory criteria and, later, bonuses. Usually, the project instructions are sent to you in organized topics.
- Make sure each requirement is working properly and securely, for this:
Fig 1. Elements of good programming practices
- Write unit tests
- Test code coverage
- Test your project through the eyes of a lay user
- Give your project to someone else to test (other than someone participating in the same selection process)
- In general, use the standard tools, modules, and plug-ins provided by the programming language and/or framework for faster development. Don’t reinvent the requirements and avoid pre-existing code generation tools in the framework (e.g. database migrations, basic crud generation, autoloading, etc.). This will delay your coding process and lower your score.
- Use good programming practices: meaningful names for objects, methods, functions, variables, paths, etc [Fig. 1 and Fig. 2].
- Make code comments in essential snippets, some companies complain about excessive code comments. But do not leave your code uncommented either, the key here is balance.
- Always use clean or friendly URLs (simple, easy-to-remember addresses, taking the user exactly where they want in your project).
- Avoid using absolute paths.
- Always review the project several times before submitting: The first time, check that all requirements are complete, a second time check for warnings in the project that could cause errors in more complex test cases, a third time check if there are any errors or comments that are not important and clean up your code.
Fig 2. Variable names
2. Project submission
At the end of this step, you are usually required to submit the project to a repository (GitHub, BitBucket, Gitlab, etc) and share the link with the recruiter, always following the commands in the project description. Attention: sometimes the project submission can be another way that does not include the online repository submission.
Add installation instructions (if applicable) by creating a README.md file and the script (source code) in a separate file if needed. These instructions should include any installation requirements to get your project running. For example: In a project developed using the LAMP stack, anything beyond a basic installation (Apache, PHP, and MySQL) must be included in the README.md file.
A README.md file makes the project more professional and clear for the evaluators to understand.
Be sure to add the appropriate commands for a possible test (if applicable).
3. Project evaluation
Em geIn general, the company uses other developers to evaluate projects. The evaluation criteria are usually:
- Project correctness: Do the mandatory features work?
- Architecture used: Does the project have a software architecture? Is the project scalable and use design patterns? Do classes have single responsibility?
- Good programming practices: Is the code easy to understand and properly commented on? Are there significant names?
- Automated tests: have automated tests been developed? Is there code coverage?
- Code efficiency: Sometimes the project must run within a time limit, but this is not always required.
4. Examples of projects
Chatbot system, blog builder, any front-end application that needs to consume data from an external service (API), extract reports through complex database queries, or even a mini-app.
- If the project involves implementing a database, check the project description for the database engine that will be used, and do not forget to provide instructions for installation.
- If you need to use a framework to implement the project, follow its standard structure, without using too many customizations.
- If the project involves a front end, try to use the best practices such as ATOMIC design, ensuring that the front end components are generic enough to be reused.
5. Extra tips
The project development has a deadline pre-defined by the company, which can last from a few hours to a few days for its elaboration. In general, you tell the recruiter when you will start the project and the time will start to run from this moment.
The suggestion here is: if you don’t have enough time to implement all the mandatory features, try to negotiate with the company for an extension of time.
One last important tip is: if the project to be developed is a web, together with the source code, deliver a link to the application running. This makes the correction easier for the evaluator, as they won’t have to install the project locally. Examples of hosts for web applications are Vercel and Heroku. Delivering your application already hosted and running shows you have professionalism and knowledge in infrastructure, which will certainly give you points in the evaluation.
6. To go further
Clean Code: A Handbook of Agile Software Craftsmanship
by Robert C. Martin
This book brings the main techniques to improve the quality and readability of your code, as well as the main mistakes made by less attentive programmers.
I hope you are enjoying the content made available to you, we hope that they are adding knowledge and being useful in your career. Thank you if you can share this content on your LinkedIn!
Wait for the next posts with exclusive content that we are planning for the next few weeks!
See you later!