Do You Need Portfolio Project As A Junior Developer? Make Online Game!

1/3/2021 ● 4 minutes to read

The year is 2021 and the global high-tech market in general and the Russian-Israeli high-tech market, in particular, are overwhelmed by the number of junior developers knocking on the doors of any company that willing and not-so-much-willing to hear. Several studies provided multiple insightful explanations for this phenomenon and most of the hiring managers in the field have their own theories on this subject. But, almost everyone agrees, this situation is here to stay and you as a junior developer need to stand out of the crowd.

One can mention the obvious, repeating in each blog post (sorry colleges, this is time someone will say (well, write) that out load) recommendation such as:

  • Extra calcium in the university.
  • Contribute to well known (preferable domain related) open source project.
  • Join a development community and contribute actively (organize meetings, help with technical questions, etc.).
  • Participent (and win) hackathons, coding\hacking\mathmatics competition, and other...
  • Learn extra subjects via online\offline courses (by the way, your "cour$era" certificate does not impress anyone but your knowledge and skills).

But, I am not "one" in this case and therefore let's jump over these repeating suggestions and talk about the one that has already shown time after time to be the secret sauce in the junior developers seeking a job salad. I am talking about a project that you developed by yourself (or with friends) that you can show both the final product and code in one click of a button. A personal project that did not been developed as part of an academic course or previous work shows multiple capabilities regarding the developer that companies looking for in a candidate. To name a few:

  • The coding level of the candidate in an environment similar (if not harder) to the environment one will have in the job.
  • The candidate's ability to manage a full cycle of development from concept to development, debugging, and up to deploying.
  • If the project is done in a team (very recommended) the candidate's ability to work in a team (or even to manage one in rare cases).
  • From a technical point of view, proves skills regarding version control (assuming the Git repo is published and well mentioned during the project), coding style, familiarity with programming languages, and advanced programming methods, etc.

Now, when you convened (please read further only if you are convened otherwise my assumption is incorrect and the text is just falling apart. In the case you decide to read further despite not been convened, this is on you - imagine Gandolf yelling "you shall not pass" when you do so), the main question still remains is "what product should I develop?". No worries, the answer is surprisingly simple - web application game.

Regarding the technical aspect - the web application. Currently, an increasing number of projects become or burn as a web application and become one of the preferred interfaces of users worldwide. One prove among dozens for this claim is the Stackoverflow technology survey of 2020 that shows that the web application related programming languages are opening the charts with JavaScript and HTML\CSS with 69.7% and 62.4% usage, respectively, for professional developers. Therefore, you probably need to show off your web application skills. That said if you are more interested in real-time, high performance, quantum computing (please consult a professional for the recommended treatment), or specific interface (native mobile, desktop application, etc.) then you may ignore completely this part which more suitable for the general audience.

Regarding the main subject - why games? Well, it is possible to divide the answer into three main components. First, it is fun. Everyone likes games... Maybe you do not like these shooting games with a lot of action or puzzle games. Nevertheless, games are additional media allowing you to experience a story and studies show that stories are the way we as humans best communicate. Therefore, developing a game is something a user (for example, a hiring manager) would enjoy reviewing and spend more time doing so, which might make you more rememberable. Second, games provide a wonderful opportunity to show and experience a wide range of skills. For example, 2d or 3d dynamics and beautiful visuals are impressive. Another example is the procedural generation in games which usually requires a deep understanding of the project, threads, object-oriented programing, and dividing the problem into smaller, defined problems - all skills necessary for a good developer. Third, games provide a fruitful ground for further, more sophisticated projects that you can add later on. A classical example is to add an AI player to the game. A less straightforward idea is to add a component that tracks the player's playing style and fine-tune game parameters to make the experience more fun. A data science experiment can be to define clients that would be willing to buy something related to the game based on in-game activity. The number of possible extensions is enormous and one can choose one or more of them.

As a final recommendation, do not try and develop either a very famous game or a complex one. Famous games probably have already a digital version developed by a studio - which will be just above your capabilities. Another chess game is just missing the points presented above. Moreover, your game will be always compared to the professionally-done ones and lose - so just avoid this comparison. Similarly, individuals tend to think game development is easy and start with big plans. Do not get me wrong, big plans are wonderful but most of the individuals will arrive to the inevitable understanding that game development is hard and will leave the project in the middle. To avoid this, just start with a small project and let it grow according to the available time and willingness you have over time.