Zühlke – Empowering Ideas

tomi
Insights

7 tips to define your career goals in software development

How do you plan your personal development? What is the value of understanding concepts? How can a company help you plan your career?

Pour some coffee, put on some relaxing music and join us for the seventh episode of The Hüb where Milan Tončić shares the valuable experience he obtained while working as an Advanced Software Engineer at Zühlke.

 

Insight in brief

Welcome to the Hüb – a place where our experts frankly share their opinions, ideas and expertise, their knowledge of the industry, its future and important trends.

What is the main skill of a Full Stack Developer?

I would say that it’s having a good understanding of concepts behind both Back-End and Front-End or, as I often like to say - a clear vision of the whole stack. A Full Stack developer can easily communicate with both types of developers and adjust to the workflow of each.

Personally, since I am mostly involved in Back-End development on my current project, I'm trying to keep up with the latest Front-End concepts by doing side projects or just by reading materials.

What are practical ways to achieve self-development?

I believe everyone should develop their potential to the highest possible level, so it’s a personal matter, since I enjoy this process very much. I like to create a structure and track the development, how it evolves, and change habits and beliefs that no longer serve me.

Self-development doesn't pick a time and place. One thing that you need is actually the will to walk that road. But even then, you would need the destination. That's something that people often neglect and you will get nowhere without it. This refers to both professional and personal development.

Let's say we have a clear vision of a place where we want to be. A clear destination. But how will we get there? We need to define our strategy. What will the way to our destination look like, what are habits that we should build and what habits should we change, what steps do we need to take? The last important element is flexibility. We should be flexible enough to see when we're not getting closer to our destination and adjust our actions accordingly.

That's self-development in a nutshell. I apply this pattern in my life and it really brings value.

I would like to emphasize the importance of habits. Try setting up a habit, one that will support you. Work on that 30 minutes a day and track your progress weekly: one that I see as a real game changer is reading. Whether you want to master some work or non-work-related topic you can't make a mistake with this one. Personally I enjoy reading early in the morning for at least half an hour. I choose mornings because I feel I can absorb anything at that time, plus they are free of distractions. I love keeping that part of the day for myself. Making more of them can drastically change your life.

I also strive to use working hours wisely and get as much as I can out of them. If you think about it, 40 hours a week is not a small amount of time to invest in something. And we accumulate that weekly, annually... The only question is: how do we spend that time? How to invest wisely? Practically – do code reviews, observe how other experienced colleagues think, how they communicate, why did they write a code the way they did, what are the underlying concepts of the technology that you use, why it is being used in the first place, which problems are solved by that technology, what are the limitations, etc.

How can a company help out with goal setting?

We have Career Planning in our company, which means that I come up with the draft of my career vision for the next 3-5 years and then I formulate it together with my line manager. And once a year we define goals that will bring us closer to that vision. During these meetings we align our wishes with the company/market needs, we plan them out and track their progress in the coming period. Something I also really appreciate is Zühlke's continuous learning and training programme which provides me with great support in achieving my goals.

We also have Capability Owners - those are people who track the market needs and are responsible for some areas. An example would be a Cloud Capability Owner. If I want to learn cloud-related development I can go to them and get some guidance in that area to help me set the goals.

What internal programs are there at Zühlke to help your growth?

Topic teams are a good way to improve something that you may lack a chance to develop on a current project due to your technology stack, for example. You can set aside some time and gather colleagues to further develop knowledge for that specific area, and in doing so also advance the competencies in the company. You can also develop something that will bring benefit to your colleagues, make some internal process easier or even build something that can be used on commercial projects. And there is a possibility to work with colleagues from different locations where you might not have a project at that time. This gives you just the slightest idea of what the concept of Topic teams brings.

How important is it to develop soft skills?

Many believe investing in soft skills doesn’t require time or training, but I beg to differ. This is due to preconceived notions, where people don’t really put in the effort to apply the techniques being taught.

Giving and receiving feedback is a good example of why soft skills matter. Many times over I have seen people attending training and applying the things they learned superficially. It’s not enough to just read about the sandwich technique (say something nice to a person, immediately followed by the points of improvement and then another nice thing). But there is so much more to this. You need to establish trust with the person, and a lot of people don’t get this. When you have established trust and your good intentions are established, then you can point out what might be improved.

To develop a healthy feedback culture, it’s important to have a healthy overall atmosphere in the company, the conviction that there is always someone to give you a hand. If you know you have a supportive environment, you know you can't really fail, and then you really go after things. You will show initiative, you will try to advance processes if something is not functioning, and you will step out of your comfort zone - which is a sign of true progress, no matter how basic that sounds.

Would you recommend becoming a specialist or a generalist?

For me, it was the right decision to move forward as a generalist. In this line of work, you never know what will happen in the future. If you understand the concepts behind technologies, it will be easier for you in the future. One way of achieving this in my case is to learn from my colleagues and understand their way of thinking. If you talk to people who have spent 10 or more years on the job and are experts in their areas, you will notice that they think in terms of concepts, not just technologies. It is easy to learn and apply technology but understanding what is behind it is the tricky part.

How do you maintain job satisfaction?

I see programming as a creative endeavour, where we transform our ideas into reality. We utilize programming languages to do this like we would use any other language to communicate. In this case, we just happen to be communicating with a machine. What fascinates me about programming is the creative process, having no limitations. Projects are defined, but programming itself gives you the freedom to create. Also, problem solving is in essence engineering. We have complex projects and problems, so many things a person can choose to do and develop over the course of their career as they see fit. So, keep your focus on what drives you!

tomi contact

Milan Tončić

Advanced Software Engineer
Contact person for Serbia

Milan Tončić is an Advanced Software Engineer and has worked at Zühlke since November 2017. There are two things that undividedly attract his attention and those are software and personal growth. Both are subject to constant change and complement each other. He has worked on various projects, following an Agile methodology in a distributed setup, mainly focused around the .NET ecosystem. He is devoted to the Full Stack path and to delivering reliable and high-quality software solutions.