I want to do some complex / large project using mern stack ,that would be push my skills to a level up …
I have completed all frontend(except d3) /backend certifications in FCC
That you as a interviewer happy to see in a candidate’s portfolio…/ enjoy to discuss.
Honestly? Just make anything. But actually make it for real.
And by “real” I mean pretend you’re building something for real customers. Pretend you’re building a real product. Pretend you have stakeholders.
I always like to use a to-do app as an example because it’s a classic portfolio piece but is often very simple. But it doesn’t have to be.
“Complexity” shouldn’t really be the goal, but “feature rich” instead, I think stands out much more. Most web applications out there aren’t very complex from a domain perspective, but they have a lot of features, a lot of users, a lot of maintainers and as the codebase grows over time introduces challenges.
Take a standard to-do app and make it something people might pay for. What features would you need?
A few ideas:
- Creating an account so I can save my lists
- Billing management allowing me to pause and resume my payments anytime
- Sharing my lists with other users (maybe a family plan?)
- Tags or categories for tasks so I can find them later
- Due dates for tasks
- I want in-app and push notifications as reminders for tasks with upcoming due dates
- Searching and filtering
- I want to search my entire task history
- I want to filter by things like “archived” or “past due” or maybe tasks that are about to be due
- I want to search by category or tag
- I want search to be fast
There’s so many more features I’m sure you can come up with for this. But the point is as you add each feature it’s going to add complexity and you’re going to have to think about a lot of things.
- Observability. If you’re app has real customers you want to know when something goes wrong. How do know when errors occur in production and how do you track them?
- Maintainability. How do you add each feature in a way that is maintainable? How will you keep your code from turning into spaghetti?
- Testing. A real product with real customers needs a testing strategy. Are your tests automated? Do you do manual QA? Or both? How much code coverage do you expect from your automated tests? And what are the tradeoffs you’re willing to live with? What’s your balance between unit, integration and e2e tests?
- Continuous Integration & Deployment (CI/CD). You’ll want to be able to deploy changes to your app quickly and safely. How do you ensure that deployments are fully automated and ensure that deployments are safe for production before being deployed?
- Feature flags. Modern practice is to build incrementally and ship features as early as possible even if they’re not complete. To do this, teams build features behind flags or toggles that can be switched on and off in production. How will you implement this?
- Stable environment. Your team delivers features quickly and the app gets updated all the time and that’s awesome! Your customers love it! Your sales team on the other hand doesn’t appreciate when they’re in the middle of a demo and the UI gets updated. They hate that! How do you go about building an environment that changes less often so sales can deliver successful demos to their leads?
No one would expect a newcomer to the industry to actually check all of these things off (and there are many more). But I think looking for a project idea that is inherently “complex” to beef up your portfolio is the wrong idea.
Literally any application is complex when you treat it like a real product with paying customers and a business around it. And you’ll a) probably learn a lot more about real-world development by sticking to one application and growing it as far as you can, and b) will stand out a lot more if you have a real product on your resume (even if it doesn’t actually have real customers or make real money).
Just my perspective, and certainly not everyone agrees. But hopefully this helps you in some way
Make an e-commerce app like Amazon.com - put some sample products on there, allow user registration, add testing (unit, integration, E2E), and finally CI/CD. That should keep you busy for a while.
Thanks for such a detailed explainations and suggestions .
Really appreciate it.
Thanks for the suggestions!!!
This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.