By Darrell RobertsPosted: 19/08/2024

What are the signs of an interesting project?

Screenshot of 3D on my book club websiteThe 3D feature I implemented on my own Fullstack web application

Like many professions, developers need a portfolio to showcase their work. Word of mouth alone isn't enough to convince either clients or companies that you're the right fit for the job.


And so, in this portfolio you'd expect at least a handful of projects that show the applied knowledge of their skills. Of course this will vary depending of their discipline.


For example, a backend developer may showcase projects pertaining to RESTful APIs, database management or microservices that scale an app. Therefore you'd expect to see the use of Node.js or Python for server-side code, SQL or NoSQL for database queries, or AWS for serverless applications. In addition these projects could also be logic for a software application or even a video game. In such a case you may see the practical use of Java, C++ or C#.


In essence the backend developer is trying to show not only that they have a firm grasp on data structures and algorithms, but that they can use them for practical use cases.


On the other hand, a frontend developer would present very different applications. As frontend is more considered with the client-side and user interfaces, there's a heightened importance on responsiveness and the user experience.


For instance, it could be the design, layout and user journey of an ecommerce website, the presentation of a mobile app or interactivity of a social media project. Frontend developers usually make use of the three amigos of web development: HTML, CSS and JavaScript. These present different challenges to say creating an API with Python.


A frontend developer wants to show that they can make consistent, responsive user interfaces, which conform to the accessibility standards.


However, you may notice that either a purely backend project or purely frontend project, is not much without the other. You can't have an ecommerce website, for example, without a backend. Nor can you have a database that is accessible to the average user without a user interface. Therefore, if you have a Fullstack project, you show the power of both. So in my ecommerce example, an ecommerce website whereby the developer has made both the user interface with, say, React; as well as a backend that can process clients' request and store the product information in a database with say Express; would be an example of a Fullstack project.


Showing a Fullstack project is a lot more impressive as it shows that you can navigate with both Frontend and Backend technology, along with the ability to work directly with databases. But what makes a great Fullstack project?


First off, let's talk about which projects not to do. And speak of the devil. A common project you may see amongst Fullstack Developers is a to-do app. It's a common one developers do at coding bootcamps as an introduction to JavaScript, Node.js and how to link the Frontend to the Backend. Problem is, because so many developers make one, it's not particularly interesting to see one in a portfolio. This also means that the challenges it presents are usually generic. Thus, not that impressive nor that interesting to conquer. Lastly, to-do apps these days are so well-developed that it is incredibly hard to create a better one. Just look at Notion .


So the idea is to make a project that will catch the reader's eye and make them want to investigate. A good way to start is essentially to solve a problem, which really is the main purpose of coding . Ask around your friend groups or family and see if they have a blocker or issue with a task that may inconvenience them. Of course this can be anything and that's the point, as it's likely they'll have a unique problem which requires a unique solution - and thus your project is born. Often people need reminders, which can be translated into apps with timers, or struggle to manage large quantities of data, which can be stored in a database. I could give examples but that kind of defeats the purpose of creating a one of a kind project. I can however tell you what I did.


As a keen book reader, or I'll be honest, book snob, I am member of a book club. We'd read a book, score it, record it and choose the next. Originally, these scores only existed on a Whatsapp group and it was not long until it became incredibly difficult to figure out who scored what on a particular book. So then I noticed the problem and found the solution was to store the scores or data into a Mongo Database. I needed to create a server application to do this, so I made an Express app which could communicate with MongoDB. But then I wanted myself and the members to be able to directly submit their scores into this database, which meant creating a list of CRUD operations. The members of this book club aren't developers, therefore I needed to make a user interface, which I did with the Next framework, and voila - our Fullstack, book club website was born.


We now use this website for our book scores and every member has their own account login and profile page.


Yet I didn't create the website and abandon it, as you shouldn't do either with your projects. This is why it's also good to create a project that either you or someone else will use regularly. It should be an ongoing work-in-progress that needs updating, refactoring and new features. I achieve this by asking the book club members to always let me know if they have any ideas for new features. By doing this, it challenges me to think on my feet. If I implemented just my own ideas, there is a certain bias as I may only work on features I know, subconsciously, I can implement. For instance, one of the book club members wanted to know if it was possible for me to display the books as 3D models. Although I worked with 3D projects before , doing it within a Fullstack application that ran on Next, definitely felt like a big challenge. Not only would I need to integrate it already with the existing codebase, but I would need to consider how I could implement it within the Next infrastructure. Suffice it to say, I was able to create it and it was a great feeling, mostly because I was able to bring another person's vision to life.


But my example is just one of numerous ways you can create a Fullstack application and the sky is the limit. By making it idiosyncratic and unique to your situation, it will be naturally interesting and non-generic.


Essentially, it should be something that reignites your passion in coding. The job market is especially turbulent at the moment and rejections can kill your ambition.


Therefore, having a project that you love working on will be your guiding light.

Previous

Should I Create a Website, Mobile App or Software?

Next

How to handle rejections?


Back to Blog homepage