What to expect from working on enterprise projects as a software engineer with Zühlke
Enterprises can be great places for developers to work, and in this post I’ll be separating the facts from the fiction. My colleague, Stefano, who currently works on a project as a software engineer at a financial institution here in Zurich, has agreed to join me to offer his perspective on the subject.
By Sergio Trentini who heads one of our Competence Units and Stefano Canonico, a software engineer with Zühlke
Insight in brief
In this post we’ll be separating the facts from the fiction:
- What does the reality of working on projects in a large enterprise look like for developers?
- Who could this role appeal to?
I’ve come across quite a few accounts of what it’s like to be a Java software engineer in a large enterprise. Perhaps you’ve seen them too:
- It feels like digging a hole and filling it up again.
- There are 50 approval levels for everything.
- All I did was maintain old, buggy code.
- Your personal contribution is lost.
- Boring. Not fun.
As Head of one of Zühlke’s Competence Unit, my role includes deploying software engineers to projects with larger clients such as banks and telcos. Part of that process often involves helping my colleagues unpack their reservations about working in larger organizations.
I’ve been with Zühlke for almost nine years, while Stefano is just out of university. (So you get the voice of experience and the enthusiasm of youth.) Between us, we’ll give you the information you need to make up your own mind.
While being a software engineer in a large enterprise isn’t for everyone, there are amazing career opportunities (and a great deal of job satisfaction) for the right person.
I’m hoping that person might be you, so let’s dive in.
The reality of working on projects in a large enterprise
Let’s start with what some may regard as the negatives—the things you might miss.
You aren’t going to find greenfield projects, and you’ll rarely encounter the latest tech stacks and frameworks in a bank or telco. What you will get are big enterprise software systems that may have been around for years.
You’ll be dealing with legacy code. And a culture that insists on the tried and tested rather than the latest new thing. (Which of course is understandable given the complexity of these mission critical systems. Stability is key.)
But—and it’s a big but—there are very real upsides to all this. In what follows we’ll be looking at the kind of personality that’s a good fit for enterprise roles and what you stand to gain.
A role that appeals to a special kind of software engineer
People in large enterprises are going to challenge you every step of the way, and that can be tough. But if you enjoy a challenge, you’ll love it. Finance, for example, lends itself to very interesting problems. I know senior software engineers who enjoy the process of writing concept papers that set out the complexity of a problem and expose design flaws early in the process.
Here’s Stefano on the rewards of getting things absolutely right:
«At the beginning, it was very challenging. But seeing my software in production— making a real difference to the organisation—has been so rewarding. It can take a lot of perseverance and patience to get there, but this only makes the achievement all the more satisfying.»
You’ll develop exceptional communication and negotiation skills
You’ll need them to deal with all those stakeholders with different interests and priorities. The smallest change to the software you’re working on might affect a host of different departments. Getting everyone aligned around a common vision will be an important part of your job—and something we’ll train you to get really good at.
You can expect to spend a lot of time collaborating with domain experts to create a shared understanding of what needs to be done. You’ll be organising and moderating workshops to gather and document their requirements. And going back to them repeatedly with what you’ve built to make sure you’re all on the same page.
You’ll gain invaluable experience and opportunities to grow your career
The experience gained with complex software systems will help you grow into a software architect—a role where successful stakeholder management is crucial. Or if you prefer, you could progress as a line manager, which is something I did. Both paths are open to you, and there are great opportunities to advance in both.
One of the most rewarding aspects of my job is seeing people grow and being part of that journey. If you join Zühlke, you can expect to be coached throughout your career. Where are you now? What are your strengths and where do you have the greatest potential? Where do you want to develop further? Whatever your dreams, we’ll work with you to support your growth.
Not just a software engineer—a Zühlke software engineer
Most companies claim to have a fantastic culture. We have a family.
If you’re the right fit for us (and we’re right for you) in terms of potential and personality, you’ll be warmly welcomed into our international family. We set the bar high, so you’ll be working with colleagues who are leaders in their field. Just as importantly, they’ll also be among the nicest, most helpful people you could hope to meet because we hire for that too, as Stefano will vouch:
«You can talk to anyone about your ideas. They’re always willing to discuss them with you. If you have a problem, it’s really easy to get expert help. That’s something I love about our culture.»
Like family, we want you to have the best experience possible at Zühlke. That’s why:
- We give you as much training as you need (we set aside 10% of our revenue for training and development.)
- We value connection and collaboration. Peer-led learning is a central pillar of our culture. Onca a month, our management share everything from our finances to our plans for the future.
- We aim to support you in any direction you choose. Whether that’s a new post or a new skill, we’re invested in helping your career thrive.
Experienced Software Engineers - Product-Focus
- As part of a successful team you will be responsible for the further development and stable operation of complex, business-critical enterprise systems.
- You make design decisions for new features and implement them together with the team.
- You are responsible for the strategic maintenance of the applications, reduce technical debts and keep the code base up-to-date.