inhire.ioBlogJob in TechDemystifying Principal Engineering

Demystifying Principal Engineering

Job in Tech
09/12/2021

Grand Parade is a major Technology Hub and part of William Hill, a trusted brand with global recognition in the sports betting and gaming market. In Krakow specifically, they have teams developing a Global Trading Platform, a real-time Sports Catalog and Betting Platform, a Gaming aggregation platform, a Data Platform, and much more. In this article penned by Katarzyna Osuch-Bukowska, Engineering Manager & Principal Engineer Lead, you will find out how the job of Principal Engineer looks like.

Last year, I opened a new chapter in my professional career, taking the position of Principal Engineering Lead at Grand Parade, a Technology Hub for William Hill. Currently, I lead a team of Principal Engineers who are responsible for setting the standards for engineering excellence within the Sportsbook department of around 100 people.

The principal engineer role is still rare in the IT industry; for this reason, it might be worth having a closer look at it. This article summarizes what I have learned so far about goals and challenges of principal engineering, as well as it is an attempt to define what kind of skillset an ideal principal engineer should have.

Career stage, background, years of expertise

At William Hill, software engineers are responsible for delivering online gaming and sports betting software, which is a mix of on-prem, private, and public systems ranging from monolithic databases to cutting-edge cloud patterns. We successfully manage the complexity of real-time trading updates to a global customer base, comparable with the busiest Fintech companies. This scale means working with hundreds of third-party integrations with tens of thousands of transactions per minute and hundreds of releases per week. All this requires high-class specialists, so we introduced the position of a principal engineer at our company.

Looking at the career path in our organization, the role of a principal engineer is one of the career milestones available for senior software engineers. If you are a senior software engineer looking to develop your career in the people management area, the development team lead role would be your best option. If you have leadership skills, but you want to remain hands-on, a principal engineer role is definitely worth considering.

Expectations

The major goal of Principal Engineering in our department is to define best practices such as standards, patterns, processes, technologies and manage their implementation across development teams. For example, one of our initiatives is to promote InnerSource or to standardize the approach to Non-Functional Requirements. My principal engineers have worked on performance improvements to get a better Lighthouse Performance Score (LPS), New Generation Sportsbook architecture, standardization of Docker images, migration to New Relic, migration of infrastructure to AWS and Kubernetes, defining the logging standards and many more.

The principal engineers play an active role in the Idea-To-Concept process. One of my observations is how tightly principal engineering is connected to architecture. The architect role can even be considered the next step in a career for a principal engineer. In our department, the principal engineering team is the bridge between the architects’ team and other development teams. My team focuses on bringing existing solutions in line with the engineering and architectural principles. Principal engineers together with architects regularly review all technical documentation that is currently being worked on in order to provide constructive feedback before the concept is sent to development teams for implementation. 

Once technical documentation is approved, principal engineers contribute to new deliveries and cooperate closely with development teams to ensure that best practices are followed, and the solution architecture is adhered to in the optimum way. We especially care about standard libraries/frameworks, design patterns, code style, CI/CD pipeline, testing strategy, Non-Functional Requirements (NFRs), or branching strategy. Sometimes we even join a delivery team for the first few sprints to support development teams working on the new project.

I believe my principal engineers are a special force that comprises of various experts in their field. They can coach and mentor other software engineers within the department. My team is always available to other tech members to provide any guidance and support. We have a dedicated Slack channel, that is available to anyone who needs to speak to a principal. We are responsible for increasing awareness of the new tools, new initiatives, and propagate best practices. 

To stay up to speed within their discipline, principal engineers are supposed to dedicate their time to keep up with industry trends to share this knowledge within the organization. Principals strongly support other development leads in their recruiting process, not only by participating in the interviews but also by providing guidelines that could be used by technical interviewers.

Challenges

Principal engineers stay hands on and do not have other engineers reporting to them, but they still need to be leaders. They work across the organization, and they need to maintain good relationships not only with development teams but also with senior management and the business. Principal engineers work independently, recognizing areas for improvement within the organization and being creative in finding solutions. 

The other challenge is to ensure that principal engineers are always assigned to critical tasks from the company’s strategic point of view and suitably challenging ones according to their level of expertise. Assigning principal engineers to objectively simpler tasks,  could lower their motivation.

What do principal engineers think about their role?

I asked my team to explain what being a principal means to them and how they see their role in our organization.

Jakub Kubica, Principal BE Engineer: “Being a principal engineer is like writing an application in C++:  you can work on abstract stuff, but also with tiny technical details like machine code. 

Being interdisciplinary (“I know everything and nothing”), I enjoy the interactions “inside” our team, as well as the interactions between principal engineers and “outside”. We are open to interaction with any soul in need – developer or tester wanting our guidance.”

Pablo Crossa, Principal UI Engineer: “You can interpret the term ‘Principal’ in different ways. I like to see us as ‘developers in the middle – between all different roles, helping teams to achieve their goals and also having the bigger picture. It is like a box of chocolates. You never know what you’re going to get.”

I think that the Pablo’s quote portrays it well. Our role is not monotonous. We work with different development teams on different initiatives. We give them direction. In our organization, we also cooperate with people in various positions and at various levels of seniority. We never know who will ask us for help.

Adam Kordianowski, Principal BE Engineer: “I moved to the Principal Engineering Team from Development Lead position, and I found it a positive chance . I always considered myself a technical person who enjoys working on and getting involved in interesting projects. Being a Principal Engineer gives me a chance to work with brilliant developers from different teams, share my expertise with them through code reviews or help to design parts of the application, as well as contributing to their projects by working on concrete tasks with them.

Working in the Principal Team also gives an opportunity to get to know different perspectives, as we are a truly cross-functional team.”

Summary

We have high expectations and lots of challenges that stand before my principal engineers – expert knowledge supported by many years of experience, high leadership skills and the ability to navigate throughout the whole department and to cooperate with various stakeholders.

If what I’ve written sounds challenging and you are interested in taking a new course in your professional life, I recommend that you consider the role of principal engineer.  If you would like to share your thoughts or ask a question, please leave a comment, or reach out via LinkedIn.

Autor: Katarzyna Osuch-Bukowska

Check out the latest jobs at Grand Parade