Serengeti logo BLACK white bg w slogan

What Advice Would You Give to Another Software Developer?

Zoran Kovačević, Director of Technology

A somewhat demanding title, so I'll give my two cents in a very informal, direct and general way.

Enjoy Your Work as Much as Possible

When writing code – give your best, put yourself “in the shoes” of the many developers who will have to maintain it for many years to come and do try to make them happy. Always try to learn the concepts and understand the source code, don't ever copy-paste it, if needed – reuse it.

Clean code, software design and architectural patterns as well as other software development best practices are “your friends” which lead to a sustainable code base. Grasp the logic behind them and use them appropriately. Respect the coding standards, understand why they’re needed and have the necessary discipline to apply them consistently.

never stop learning

Never Stop Learning

Learn with understanding from more experienced and knowledgeable colleagues and other sources (e.g., online courses, books, blogs, etc.; read), but also build your own perspective based on sound arguments and reasoning. When asking for help from other people (e.g., another team member), remember and respect the fact that it takes extra effort on their part, so use it sparingly.

The general idea is for one to grow (as fast as possible) into a developer who can independently and efficiently meet most of the challenges and be able to seek external help only when truly needed.

Understand that writing tests (unit, end-to-end, etc.) and documentation is essential for successfully building and maintaining complex information systems. Don't “overengineer stuff” out of your desire to build something complex, learn to love simplicity.

Complexity usually has a tendency to creep in uninvited over time, so there's no need to introduce it sooner without a valid cause. When finding a solution to a challenge, break it down into “smaller challenges” which are simple enough to overcome while still (at least mostly) keeping in line with the best practices and agreed standards. Technical debt should be dealt with continuously, usually there will be no large refactoring and/or rewrite, “get it right” as soon as possible.


Teamwork Makes the Dream Work

When working in a team, understand that you should all be applying effort to succeed together using the chosen (hopefully) agile approach (e.g., Scrum, Kanban, Scrumban, etc.) by achieving common goals (e.g., the Sprint Goal). Thus, everyone should know what the common goals are and understand them clearly. Regarding trends, tools and technologies – keep up-to-date but remember that you should “use the right tool for the job”.

Let's do business

The project was co-financed by the European Union from the European Regional Development Fund. The content of the site is the sole responsibility of Serengeti ltd.