7 tips for adding value to your software development
What is the best way to handle a large client? What is the value of security in projects? How do you inspire others who are curious about your field of work?
Pour some coffee, put on some relaxing music and join us for the
Insight in brief
Welcome to The Hüb – a place where professionals generously share their ideas and experience. Our aim is to bring you the big picture and move the whole industry forward.
How do you start working for a large client?
Working for a large client at Zühlke was a tad intimidating at first, especially coming from another big company whose processes and the overall organization didn’t always suit me. But I was in for a pleasant surprise.
The application I worked on is made of three parts, one is for our client’s end users, the second for customer support operators, and the third for the salespeople. So these are connected but are also separate entities.
First of all,
What helped most was the organization of the project itself and the team. When a new person is introduced, regardless of their seniority level, there is always an onboarding procedure and delegated tasks for team members. For example, I might demonstrate CI/CD to you, another team member will let you know about the logistics, and someone third might show you Front End.
There was even a precise hour-by-hour schedule for the first few days. When I started I even had an onboarding procedure in Zürich with other teams who are working on the project.
Furthermore, you can utilize the first few weeks on the job to find your footing. Starting with easier tasks and working alongside colleagues until you are ready to take on more serious ones gives a certain freedom in getting to know the project. This kind of work organization and approach to new team members were most helpful for me.
What is the value of Pair Programming and Code Review?
Pair Programming is an excellent
Code Review is a must when it comes to code quality. A member of another team is more likely to spot an oversight, which is great when you think of Security and Data Protection. Code Review became mandatory and we started paying special attention to it a few years ago when we brought in new technologies and organized Microservices within the project. We also have a person from another team performing the Code Review, so a new member gets to know a
How can Microservices improve software development?
To go a step back, when I
Development is made easier because everything is logically compartmentalized, and I can easily locate any part of the application in the code to develop it further. Of all the project phases I mentioned, this is by far the best, but we have a few more things to learn. What also adds value is that you use things you can easily find on Google or Stack Overflow. It wasn’t the case before, because the majority of software solutions or patterns were developed
What does a Security Champion do?
A Security Champion is a role formed about two years ago with the goal to pay more resources and attention to Security topics in projects. This is how it came about that every team has a designated Security Champion, who is in charge of coordination with the security team of the client’s company. It was an interesting position and I thought I’d give it a shot and learn something new.
There are several tasks a Security Champion currently does on this project. The first is a huge project, actually a subproject that protects all the URL links in an application we are working on. What does that mean? If a URL contains a name, surname, phone number, or ID, it is considered sensitive data that can be misused by someone. Our task is to encode those links into one ID that gives out no particular information and hides the sensitive data.
The other thing we do is secure all the services and endpoints in the new infrastructure, and make it clear which privileges are needed to perform certain actions. It is an ongoing process, and we are yet to find an optimal solution.
What is Solution Design?
Solution Design is handled by a person who communicates with clients and translates their requests into a technical language all the team members understand and can implement further.
For example, we get a request from a client for a certain functionality. To migrate things from system A to B or from B to C. My job is to first have a sit-down with the client to learn what their request is in the simplest language possible, after which I analyze the current status of the system, code, and application to learn how it functions and which elements require change or adaptation. My goal is for my colleagues to be able to immediately start coding after reading the story and to have a clear grasp of the logic, external systems,
How do you acquire knowledge outside work?
The first step I made when it came to Solution Design was sharing my interest with my colleagues, and I got so much useful advice as a result. As for obtaining new knowledge, it’s the same as with other jobs or any new skill –
How do you inspire others who are curious about your field of work?
Inspiring young talent is indeed a matter of the heart for me. I believe we are a great company when it comes to interpersonal relationships, work environment, and support for our staff. I really value that and want to be able to pass it on to others all the way through my career.
The first two days in the company were emotionally hard for me because it coincided with a job fair, which I had organized for a long time and I couldn't attend for the first time in years. But I was able to go next year and meet all the people I had cooperated with – representing my company! I lost my voice after two days because I talked to so many students about the projects we do, our benefits, and technologies. It was clear that our presence left a good impression on people since there were several people who came for an interview with us after speaking to us. One of them even said that I was able to give him a good image of the company, which is why he applied for the job. I must say I enjoy presenting the company this way and leaving a good impression on potential new talents.
Vladimir Tomic is a software engineer, working for Zühlke since November 2016. Since February 2017 he has been working on a project for a large Swiss customer, where he had the opportunity to take many different responsibilities - as a software developer, security champion, solution designer, and more.
After working hours, he spends his time mainly by doing photography, playing keyboards and chess. He also works on improving his German language skills and he loves coffee and chocolate.