DEV Community 👩‍💻👨‍💻

Anden Acitelli
Anden Acitelli

Posted on • Originally published at andenacitelli.com

Portfolio Project Tips for a New Grad Software Engineer

Overview

When I was going through college, I serially did projects that never got finished. Some were big enough to talk about in interviews, but I would label very few of them as worth talking about for more than a minute or two.

However, I recently finally released a website with real users and real feedback. I've had about 3,000 lifetime users and average about 100 users per day, and it's been a great time. I wrote at length about this in a Reddit comment and figured I'd port it over here.

Advice

Various bits of advice I learned from the process:

  • Keep scope painfully minimal, and release as early as possible. Your brain will continually be like "I have to implement this feature, then I'll consider it done" and then it just keeps moving the goalposts. Define a minimal goal, get to it, release, then iterate in chunks, ideally based on end user feedback. I almost guarantee you your vision for your product will differ from your goal end user's. An aside: When someone asks something like "I have a ton of legacy code and I'd like to fully rewrite it" on this subreddit, common consensus is that it's never a good idea and that you should write tests and slowly and iteratively improve on the product. The same applies here - get the hard part done early (which is getting a cohesive, genuinely minimally done product done) then iteratively add more value.
  • Depth over breadth. Be someone that's really good with one language or stack. Unless your project is in some way an exception, you're almost always best off picking a well-established tech stack with lots of resources online, rather than a newer framework that may be theoretically better but the development process will require a lot more debugging. I personally use Spring Boot + React due to their maturity, popularity, and overlap with my job, but your decision should basically just be to pick a versatile language you already know and has a mature ecosystem.
  • Find a project you believe in and would use. I honestly believe this is the hardest part. I keep a Notion page where I just scribble down ideas as I think of them. Try and fix a problem, provide value, or save someone time. The important part is it being something you will find useful, because that's part of where the motivation comes from. I built Churner's Paradise because I wanted an at-a-glance way to figure out what the highest-value credit card bonuses were, and all the other websites didn't support the level of filtering and personalization I'm working towards with the website.

Conclusion

Thanks for reading! If you got some value from the article please consider a PayPal donation, which enables me to keep writing more articles like this.

Top comments (0)

Take a look at this:

Settings

Go to your customization settings to nudge your home feed to show content more relevant to your developer experience level. 🛠