BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Presentations Staff+ Engineering beyond Big Techs: How to Succeed in the Technical Path in Non-Tech Companies

Staff+ Engineering beyond Big Techs: How to Succeed in the Technical Path in Non-Tech Companies

Bookmarks
30:14

Summary

Loiane Groner discusses how non-tech companies need to invest in more experienced technical professionals to have competitive advantage and how they can be attractive to Staff+ Engineers.

Bio

Loiane Groner is a Development Manager at Citibank and has authored books for Packt Publishing. Google Developer Expert in Angular, Microsoft MVP in Developer Technologies, Oracle ACE, Java Champion, and speaker at tech conferences. In her spare time, she loves contributing to the community, and she publishes tech videos on Youtube and creates free programming courses at https://loiane.training.

About the conference

Software is changing the world. QCon empowers software development by facilitating the spread of knowledge and innovation in the developer community. A practitioner-driven conference, QCon is designed for technical team leads, architects, engineering directors, and project managers who influence innovation in their teams.

Transcript

Groner: I would like to share with you a little bit about a career as a staff engineer in non-technology companies. My name is Loiane Groner. I'm very passionate about working in technology. I've been on this road for over 15 years.

Whenever we talk about being a staff engineer, and we search online for job postings, we see a lot of articles and information about being staff engineers in big tech companies, especially the famous FAANG companies. However, this survey that was conducted by Oracle and Burning Glass Technologies from 2019 shows that approximately 90% of the jobs in the tech industry are in non-big tech companies, meaning they are not from the technology industry sector. If we take a look at this other chart, also published by Oracle and the Burning Glass Technologies from 2019, we see all these different industry sectors with a percentage of the job posts that we see they are tech related. This is just to emphasize that although we're working in technology, the company that we work for might not necessarily be a technology company, meaning the vast majority of the IT jobs are outside of the tech industry. However, we almost don't see a lot of material out there, talking about what comes after you're a senior in these companies that are not related to technology. However, when it comes to career in non-tech companies, I'm sure that you have seen some diagram or career path that looks like the one that we have on the screen right now. This traditional career ladder, it's what we call the manager's path. After you become a senior engineer, you're probably going to work as a tech lead for some time. If you want to take the next step into your career, the next step will be a manager level. If someone would like to continue working as a technical person beyond the senior level, especially the tech related companies, they created another path, which is what we call the staff engineering path. These individuals can continue climbing up the ladder, and progressing within their careers.

What Exactly is a Staff Engineer?

What exactly is a staff engineer that we talked about so much? We have the manager's path, that we have agreed that this is pretty traditional. After the senior/tech lead level, instead of becoming a manager and having people reporting directly to you, there is what we call the staff-plus engineering path. In this path, you have the staff engineer, you have the senior staff engineer, principal engineer. Then if you want to continue, there's also distinguished engineer, fellow engineer, as we have seen in some of the FAANG companies. This staff-plus track was designed to be able to retain talent, to be able to retain those people that want to continue working on a technical level. It doesn't mean that because now you are in a technical track, and because you're also not going to have any person reporting directly to you as you being their manager, it doesn't mean that you won't have to deal with people. This is still a leadership position, and you're still going to help other people to grow within their careers as well. You're just not going to be their manager. What exactly does it mean to be a staff engineer?

Three Pillars of Staff Engineer Roles

If you are on this path, or if you like to continue your career growing as a staff engineer in this staff-plus path, I highly recommend that you read these two books. They are amazing. The first one is the, "Staff Engineer." There's also a website that you can go into and read several articles, interviews, and guides. There's also this other book published by Tanya Reilly, that is an individual guide, and has a lot of great insights as well. Tanya mentions in the book that there are three pillars that are related to being a staff engineer. The first one is big-picture thinking. The second one is project execution. The third one is leveling up. All these three pillars are based on the knowledge that you have acquired throughout your career, and also the experience. They have a big impact within the organization as well.

1. Big-Picture Thinking

Let's dive into each one of them, and see also how these three pillars can be applied to non-technology companies. Let's start with the big-picture thinking. This pillar means that you're able to take a step back and see the whole picture, and to be able to make decisions that are going to be better for the organization. This means that you have to think beyond your current time. Whether that means if it's a project that's going to take years in order to be able to complete. If a system that you're working on can be easily decommissioned. What exactly does your company need in the medium term, say, two, three years? Let's see an example. This example is also from Tanya's book, and I think it's fantastic. When you are a senior engineer, or when you are a tech lead, and you work within a team, you have a problem to solve. You have different solutions, different approaches, or different tools that you might need to use, or implement to make your project successful. When you have all these options, usually when you're a senior or a tech lead, you're going to review all these options, and you're going to make the decision based on what's best for your team. This can be, for example, solution or approach A. This means that this is going to be easier for the team to implement, or it's going to be quicker for the team to implement, meaning this has a higher value to the team. However, when we take a step back, and we review all the options and take the entire organization into consideration, this might not be the best solution. If we take a look, again, at both approaches, or both solutions that we have to consider, solution A and solution B, solution A although it might be better for the team might not be what's best for the organization. For the organization, for example, in the long run, solution B might be better. For the organization, that's going to have a higher value. It might take even more time for the team to implement that solution. Meaning it's not what's best for the team, but it's what's best for the organization. This is one of the reasons why it's important to have staff engineers within your organization, so you can have people that are going to take a step back and analyze all the options available, and they're going to make the best decision that's possible.

Why is this important and how this correlates with the world that we're living in today? If we take a look at this article that was published by Tech Brew back in November 2022, it says that many technology companies are cutting costs, and are aiming to do more with less. The Wall Street Journal also published an interview with Microsoft's CEO. The CEO also mentioned that both their clients, Microsoft's clients, and also Microsoft itself will have to do more with less. What does it mean to do more with less? Being a staff engineer in a non-technology company means that besides the technical expertise that you're bringing to the table, you also learn about the business, the problems that the clients are facing. It's also part of your job to help your clients to scale their business, especially in times of economic uncertainty. The staff engineers can play a key role within every organization. For example, my personal goal as an engineer is to make sure that the applications that I'm working on today will still be up and running in 10 years, and also, the decisions that I'm making will also help to scale the business. How the business can do more with less, and how can I help them using technology as a tool? That is the perspective that we need to have in order to make that happen.

When we say doing more with less, automation definitely plays a part in it. When we automate certain tasks, especially if those tasks are manual, this means that we are freeing up personnel so these personnel can work in different projects, or even take on new clients. Again, this goes for both technology and also for the business. Automation is one of the ways that we can help the business to do more with less. As a staff engineer, one of your jobs is to help to make decisions of tools that are going to be adopted at an organization level. Again, going back to the vision of the single team, if you leave it up for each individual team to make decisions on the tools and processes they're going to adopt, each team might adopt a different tool or technology. Taking a step back, as a staff engineer, can we decide on a global tool that's going to be used by everyone and even save some cost with it? Being a staff engineer, you might have an input on your department, within your organization, or even a global level or even in the tech industry. One of the other roles that a staff engineer also plays is to be able to define processes and best practices that are going to be adopted throughout your organization. This is another reason why non-tech companies should have a staff engineer path as well. Why? Because title matters. Having a title, the seniority means that you have a seat at the table. This means a lot. It is important to have the ability of providing an input so it can be taken into consideration. It doesn't mean that whatever you say is what's going to be adopted. It's important to have the opportunity to have a say in it. This is one of the ways that non-tech companies can make sure that your voice is heard. This is really important.

When you work for companies that are not tech related, besides the technical knowledge that you bring to the table, you also have the knowledge about the business. You develop relationship with the clients, the business, the product owners, and other stakeholders as well. As we all know, it takes time to develop relationships. It's not like, "You want to be friends," and that's a done deal. It really takes time until you can develop that partnership. In case someone decides to leave, training a new person can take time. It's not like you're starting from scratch. After all, you're a senior. However, whenever you're starting at a new company, there are all the internal processes of the company that you don't know, and you have to learn. There are also all the relationships that you will have to develop. Having this knowledge about the business, knowing how companies work, this is also one of the reasons that for certain sectors in the industry, when you see a job description, you'll probably see at the end of the job description, something like previous experience in the industry is a plus. Meaning that although some training is going to be required, because you'll have to get used to the processes and the stakeholders, at least you're not starting from scratch.

One of the takeaways is if you're working for a non-technology company, and your company doesn't have a staff-plus track yet, you start a discussion so this can be considered in the near future. For companies that still don't have this path, depending on the size of the company, this is not something that you're going to be doing in a week or even in a month. You'll have to train managers on how to properly help staff engineers as well. It also requires some reorganizations within the company. If you have been through some reorgs within the company that you work for, you know that sometimes it might take a while until things go back to the normal track again. Having this path, it's very important because this can help your company to retain talent as well.

2. Project Execution

If we go into the second pillar that Tanya describes in the book, we know that at a staff level, projects are going to be more complex. They're going to involve more people. They're going to involve more political capital. They're going to require more influence and sometimes even culture change as well. As a staff engineer, what exactly is your role when it comes to project execution? I believe we can agree that we do have a pretty solid job description for junior engineers, mid-level senior engineers, tech leads, managers, and so on. What exactly is in a job description for a staff-plus engineer? Sometimes I like to joke with my colleagues at work that I don't know what my title is anymore. One day, I'm helping with architecture, the other day, I'm helping define the strategy for long term. The next day, I'm helping the team to resolve a big production issue. The next day, I have a completely different task. Some days, I have no idea what my job title will be based on the tasks that I'm performing that day. I like to say that, today I'm going to be whatever you need me to be. Meaning that as a staff engineer, we do wear a lot of different hats, we play different roles depending on what the company needs. At the end of the day, your job as a staff engineer is to make sure that the organization is successful. You can be a technologist, but your job is to help the organization to achieve its goals. This means that this can be your team, your technology team, or it can be the business, the clients. As senior professionals, we do a lot of things that are not in our job description all the time. It might not be ideal, but if that's what it takes, consider doing it.

Your work as a staff engineer needs to be important for the company. It doesn't mean that your work should be playing with the latest and most modern technologies out there, meaning only doing fun stuff. Sometimes what's important, it's going to be the work that nobody sees. These important tasks might involve gathering data that doesn't exist, going through old documents, combing through code that was written 10 years ago that nobody has touched. This is what we call the projects that nobody wants. Within a company, there are a number of tasks that they just need to get done, and somebody has to do it. This is still meaningful work. Meaningful work comes in many forms, and sometimes includes working in projects that nobody wants to work. Sometimes it also includes working with old boring technologies. There is one side where you need to keep your skills sharp, because this is how you're going to be helping your organization to make strategic decisions. On the other hand, there is also all these other projects that they need to get done, and might involve old technologies. However, I've learned from experience that there is a lot to learn, even with old technologies. Sometimes I get surprised with the things that I didn't know that I didn't know. At the end of the day, it's all about balance. There are still those projects that need to get done, and on the other hand we still want to play with the fun stuff.

3. Leveling Up

The third and last pillar is leveling up. With the increase in seniority, this means that you also have more responsibility with your hard skills, but also with the people around you. These responsibilities can include teaching, mentoring, and also the accidental influence of being a role model. After all, you are in a senior leadership position, and people will look up to you. As a staff engineer, it means that you don't have direct reports. However, you're also responsible for leveling up other people that work with you, within your team or within your organization. I like to include the teaching and mentoring into the community category. This can be done within your company or outside of your job responsibilities. I'm personally very passionate about this topic. This is a great way of teaching, giving back, leveling yourself up, as well as others. In my humble opinion, teaching is the best way to learn. This can be achieved in different ways. You can mentor other people. You can also contribute, writing blog posts, or that documentation in the Confluence, or wiki page of the company that you work for. You can record videos, publish them internally, or as well on the internet. One of the things that you can do, for example, is write a summary of everything that you have learned throughout this conference, or even put together a presentation of all the things that you have enjoyed and learned. Writing blog posts, presenting at conferences, can be a great way of building influence within the industry. Personally, sharing what I have learned with the community has opened many doors.

Just to give an example of how this works, and how this can be beneficial for both you and the company that you work for. Back in 2010, I was working with Ext JS, which is a frontend framework. I was writing blog posts back then of things that I was learning so I can deliver my tasks. I decided to put together a presentation and present it internally for the company that I used to work for. I continue writing blog posts. Eventually, to my surprise, I got an invite to write a book. That was a dream come true for me. I continued writing, and I did write more books because I really liked the process. This opened so many doors for me within the community. I started to get invited to present at conferences. I had the huge honor of presenting at QCon in Sao Paulo as well in Brazil. One year later, the company that I worked for, was deciding on a framework that we could start creating screens using HTML5. Again, to my surprise, and also a dream come true, I was invited to spend two weeks in New York, just training my peers. For me, this is amazing. I have no words to describe how thankful I am. I personally thought that I was living a dream or it was a movie, because it was really awesome.

For over 10 years, I'm still sharing a little bit of what I'm learning throughout my career. Because of this passion and commitment to the community, I was honored by some of these big tech companies that I'm a big fan of with some awards. I'm very thankful for it. Because of that, that continued to open more doors for me and I was able to present, for example, about Angular at QCon again. Later, the company that I worked for, was migrating from Ext JS to a different frontend framework, and I was able to provide my input on why we should adopt Angular and why it was good for us to do that. This is just an example of how contributions that you do outside your working hours can be beneficial for you, and also for the company that you work for. It's a win-win situation. You might ask yourself that, especially in times like this, should we be sharing everything that we know, or should I just keep to myself so I can keep my job? My personal take on this is to just keep sharing. Great things can happen when you share what you know. You're leveling up yourself and you're also leveling up the people around you. This can be an opportunity to get more important projects, or even get a different role. Sharing will help you to keep growing within your career. Eder has presented an amazing talk about this subject as well, on how community contributions can help within your career. I highly recommend that you watch it.

One of the takeaways when you go back to work, just put together a summary of things that you have learned throughout this conference, or things that you have enjoyed, and present it back to your peers. This can be a great way to help you build your influence. Speaking about influence. Influence is one of the soft skills that you need to succeed in this career, however, it's not the only one that you need. Every increase in seniority demands more soft skills. You're going to be dealing with more people. When we make the shift from a senior or tech lead into the manager's path, we're going to shift our learning and we're going to focus on learning more soft skills, because we're going to be dealing a lot more with people. When you go into the staff path, besides your hard skills because you need to keep that technical knowledge growing, you also need to develop the soft skills. After all, you're still a senior and you're still in a leadership position as well. Meaning that soft skills are equally important as hard skills. Besides influence, communication is a must. The message that you're trying to convey needs to be clear and precise. One of the challenges that some of us face, I know that I face this challenge every day, is how to do that in a second language. Do you know how smart I am in Portuguese? There you go. Influence is another one that is very important as well, not only to be able to provide your input, but also in case you need to get a sponsorship for a project, or a process that you're trying to implement within your organization. Even though you are an individual contributor, your job is to do what's best for the organization. This means that you'll have to work with different teams. Teamwork is also essential.

Time management and delegating are also two important skills. Everybody's time is valuable. As a staff engineer, you won't have time to do every single thing that you would like to. You'll have to choose what tasks are more important. How do you spend your time? Priorities might change, and you might not code as much as you'd like to. That's very important to be able to know how to delegate and also how to manage your time. Again, even if you're not a direct manager, but you can also help your peers with mentoring and coaching as well. Besides problem solving, critical thinking, that are also pretty basic soft skills. There is another soft skill that I think that is imperative, and that is learning how to disagree. Even though you are a staff engineer, it doesn't mean that you can just simply pull rank. Sometimes your input, or the approach that you have suggested, are the ones that are going to be implemented. It's very important to learn how to disagree, and disagree respectfully. Of course, technology is full of up and downs. It's very important as well, to develop your emotional intelligence, so you are able to handle pressure and difficult situations that might come your way. Keep calm and carry on.

I also would like to leave this link for you because Charity presented an amazing talk as well at QCon, where she describes the importance of the manager and the staff engineer path pendulum. Right now, you might be a staff engineer, maybe your next role, you can be a manager, and vice versa. There are many things that you can learn by making the switch. The manager path is important because you want to continue developing the soft skills and learning how to deal with people. At the same time, you don't want to be too long away from a technical path, so you can continue developing your hard skills as well. Again, at the end of the day, it's all about balance. There are a lot of benefits of doing exactly this with your career. Of course, you also have the option to step back and not want to be a staff engineer anymore. You want to go back and be a tech lead, or being a senior engineer. That's completely fine as well. Just remember that it's your career, and you have to do what's best for you as well.

Conclusion

Although we are very unique human beings, it's almost impossible not to compare yourself with other people. However, don't do that. It's very bad for you. Instead, if you want to make sure that you're making progress towards your career, compare yourself with you from yesterday. This way, you're going to be able to see if you are indeed in the right path, or if there is anything that you have to change. Last but not least, although we are technologists, we're attending a tech conference, we're learning about new languages, architectures, and tools. Although we work with technology, it's all about people. It's about your clients, your team, your peers. It's about being respectful and cultivating good relationships.

 

See more presentations with transcripts

 

Recorded at:

Mar 13, 2024

BT