how-to-start

Impactful Project Ideas for Fresher Resumes: Get Noticed by Employers

In the realm of professional resumes, Showcasing a personal project can significantly enhance your profile. When this project is hosted on GitHub, it serves as a proof of your understanding of concepts, coding skills, and practical application. This becomes a green flag for HR professionals and Technical Leads seeking candidates who go beyond theoretical knowledge and engage in hands-on experience.

Now, Let’s discuss the type of project you should undertake. Ideally, your project should address a real-life problem that you have observed firsthand, providing a tangible solution. Rather than presenting a generic project, I will illustrate with an example from my experience.

I once visited a renowned clothing brand, Ecstasy, with the intention of replacing a product. However, I faced a challenge as I didn’t have the invoice. The store manager, whom I knew, manually scrolled through recent purchase history and identified my transaction. This incident highlighted a critical issue — the software only allowed searching/filtering by invoice number or purchase date. If it could search by customer name or purchase amount, the process would have been much more straightforward.

Now, delving into technical aspects, the software’s limitation stemmed from the database structure, where searching by certain fields was costly in terms of both operation and query execution time.

To Address this, What can we do?

  1. Creating indexes and partial indexes in database tables is crucial to optimize SELECT queries, ensuring that a Sequential Scan is avoided. It is essential to understand which fields are frequently used in queries. Index creation simplifies the SELECT statements, functioning somewhat like a dictionary. While creating indexes is relatively straightforward, determining which fields to index can be a nuanced process.

  2. Additionally, there might be scenarios where the database portion of the codebase has been entirely delegated to an ORM (Object-Relational Mapping). In such cases, despite having indexes created, sequential scans might still persist. This challenges the conventional wisdom, as ORM may not fully leverage the created indexes.

  3. In distributed environments, sharding the database when the number of records in a table becomes disproportionately large can lead to performance benefits.

  4. Alternatively, for search-related tasks, directly utilizing Elasticsearch is can be an excellent idea. Here, certain data structures like Inverted Index, Trie, Suffix Tree, Suffix Array become relevant.

  5. Finally, after optimizing at the database level, further improvements can be made in your own code, incorporating strategies such as caching. Crafting a reliable solution involves a combination of database-side optimizations and thoughtful coding practices. I’m eager to hear if anyone else has additional solutions to offer.

What Should Be Inside Your Project?

  1. Project Structure: Choose a project structure such as MVC, Domain Driven Design, or N-Tier Architecture. Whether it’s a monolith or microservices, having well-defined business logic is crucial.

  2. Coding Conventions: Follow coding conventions tailored for each language. Consistency in variable naming to bracket placement matters.

  3. REST API Best Practices: Implement REST actions (GET, POST, PUT, PATCH) with instant input validation. Handle user inputs gracefully, preventing scenarios like someone inputting 1234 as his First Name.

  4. Testing Strategy: Adopt a dual testing approach with both unit and integration testing. Write tests beforehand using Test-Driven Development (TDD) to ensure code correctness.

  5. Logging and Error Handling: Log internal errors structurally, but avoid exposing critical information in client responses. Utilize tools like Sentry or AWS CloudWatch to analyze errors efficiently.

  6. HTTP Response Codes: Define a systematic approach to HTTP response codes. For example, use 404 for not-found records, 400 for input validation errors, and 500 for server-related errors. Always ensure a 200 status for successful responses.

  7. Response Code and Message Pairing: Pair response codes with meaningful messages. For instance, send 403 for auth related errors and 200 for everything functioning correctly. Never confuse error types, such as sending a 500 code for a 400 error.

  8. Docker Compose: Employ Docker Compose to install and manage development dependencies like PostgreSQL through containers, ensuring consistency across environments.

How To Quick Start a Project?

  1. Shortlist REST API endpoints, define their formats, visualize what would be the json response whether the request is successful or returning an error.

  2. Design database tables and corresponding classes/structs.

  3. Test raw SQL queries in the database console to verify correct data retrieval.

  4. Create specific branches and pull requests for GitHub tasks.

  5. Input validation, Unit testing, Debugging, and API responses using tools like Postman.

  6. Document code using meaningful comments, maintain a well-organized README on GitHub, and follow industry standards for commit messages and Swagger/OpenAPI specifications.

Developer relationships resemble soul connections. Source code can inspire either admiration or discomfort. Following industry best practices is like using Cupid's arrows to protect a harmonious tech journey. Happy Coding!

Last updated