DEV Community

Bladimir
Bladimir

Posted on • Originally published at bladbaez.wordpress.com

The Golden Project: The One Demo That Serious Software Engineers Should Have In Their Portfolio

Laptop with code image
Some Software Engineers, specially when starting their careers, struggle having substantial projects to showcase since they just graduated from School and may only built 1-2 academic projects and have covered the theorical part of the IT field; similar situation occurs with self-taught developers. Even worse, there are scenarios in which there is nothing to show for it.

In my case, back in the days I had some GitHub repositories that represented my portfolio of work related to generic already-known solutions to problems. They were built just to acquire technical skills, learn a new framework, pick up a programming language, be caught up with some related technology and acquire some hands-on experience. After a while, I realized that each of those software projects were too basic in terms of structure and organization which didn’t help much when preparing for job interviews that include a portfolio review, or to show it to a potential client.

The Problem with Toy Projects

One of the main problems of having just simple CRUD apps in the portfolio is their lack of structure and purpose. It is true that they perhaps can be used to demonstrate knowledge about a specific concept or enhance a skill, but this is not enough because in almost all cases they get thrown away and maybe left unfinished; unless someone develop them as a hobby while exploring new technologies or basic concepts.

The main goal of a serious engineer should be building to learn. By learning, I mean “active learning”, which is different than just following tutorials or doing courses over and over. So, when developing a software project for demo purposes or diversify the portfolio it is important to apply the appropriate strategies in order to create something substantial so that it doesn’t feel the time was wasted. That is the “Golden Project”.

What is a Golden Project?

A Golden Project is the best single production-grade personal demo which is polished, well structured, and a software anyone would use in real life. It demonstrates the full capabilities of a Software Engineer during the whole software lifecycle, from analysis and architecture to deployment and documentation. It can be considered a project that one can be proud of, like a lethal weapon for interviews, showcase to potential clients and other career opportunities. It is a work done with care.

While some new software engineers don’t even have a single app to present, others publish around 5-7 small toy projects or CRUD apps to highlight a portfolio of demos that just fulfill content into their resumé when preparing for jobs; only few developers own solid demos. The major downside with this approach is that hiring managers when analyzing candidate profiles they immediately notice that these kind of projects just do not click and then quickly decide not move forward in a job application. Same happens when you try to present your previous work to new leads. So, a Golden Project solves all these issues by demonstrating the fundamental real skills and professionalism; more importantly, when done right, it shows determination and persistense.

Toy vs. Golden Projects

  • Toy Project: too simple, lacks of architectural and coding structure, sometimes considered throw-away experiments. Mostly built without a real purpose, just for job hunting.

  • Golden Project: complex, robust, shows well-defined planning, organization, architecture, reliable similar to a production-grade level. Built with a goal in mind.

What Makes a Software Project “GOLDEN”?

It is not about the bunch of trendy technologies or fancy tools you use. Everything relies on the motivation behind it and the standards applied throughout. It should have the following characteristics:

  • It solves a real problem, it is not a project implemented with random ideas or unknown scope. It must have a reason to exist.
  • It follows best software practices, meaning it is crafted applying the highest possible standards to make it highly valuable.
  • It is live and works properly, even if no one uses it, it is built as it would be used in real life so every possible error is handled properly following best practices. The users can explore its functionalities and provide feedback.
  • It is relevant to the field, realistic, secure. It complies with the fundamentals security standards, even as a demo, similar to a production-level project.
  • It includes the decision-making of relevant parts, meaning not implementing features just for the sake of learning a particular framework or tool. The process of building a Golden Project should emphasize why a decision was made, it demonstrates architectural thinking.
  • It is well documented, so it’s easy for anyone to understand by including detailed instructions, descriptions and images.

Is It Worth It?

Beginning to build a project of that magnitude could be intimidating at first because it is not something you can produce in one day, but in the long run it will be worth it. Obviously, when developing these kind of projects, there will be a lot of challenges and difficulties that certainly will arise. But there is an important takeaway, when you try to find a way to solve a particular problem and stay persistent especially in projects that big and complex, you’ll learn more than just following a happy-path tutorial. Not only does it give you a rewarding learning experience when finishing it, but also teaches you valuable things such as commitment, discipline and professional growth. Plus, you’ll own it forever and can be used as reference for other project ideas, or inspire others.

Right now I’m in the middle of building my own Golden Project which is not live yet, but I’m polishing every aspect of it so it fullfil the minimum criteria that simulates a real production software. As soon as it’s ready I’ll drop the link here and show the results.

If you already have or think to build one and want to share the details, you can share in the comments below, so I can give feedback.

That’s it. I’ll end this post by adding this remark:

| The hardest part of a journey is starting. Once you begin, the rest gets easier.

Thanks for reading.


If this article helped, share it with anyone in the field who’s stuck building toy projects!

Top comments (0)