Wednesday, October 07, 2020

How to succeed at Red Hat

I met someone recently who just graduated college and was on the job search.  I linked him to my favorite podcast episode on this topic. After listening to the episode, this person then asked me:

"What kind of person would succeed as a company such as Red Hat?"

I love this question. I asked around, and one colleague gave the following answer:

"I'd say someone that is passionate about enterprise technology and loves to learn in a fast moving environment."

I love this answer, and I'm going to break it into pieces to explain why this applies.


This means that you understand more than just code. It means you understand the business (who our customers are, and how do we make customers happy, and why would people pay us money). It also means that you care about your work: you understand who your users are, and you think about how to improve the experience of those users consuming the work that you produce.

"Enterprise technology"

What's Enterprise technology? It's technology that is stable, secure, and used in a wide variety of places. You will be a good fit if:

  • You care about making things work "out of the box" so users can get going quickly without stumbling blocks or a lot of other busy work.
  • You like writing clear documentation to help people who are not complete experts or Linux ninjas
  • You care about making things stable and well-tested (understanding things like "backwards compatibility" and the different types of testing).
  • You care about security (understanding why things like authentication, encryption and signing are important)

"Learning in a fast-paced environment"

In Enterprise software, there is a natural pull to move slowly and stagnate. However, open-source is gigantic and moves incredibly fast. (In fact, the core of Red Hat's value proposition is that Red Hat drives innovation in "upstream" projects and then distills that down into stable products that customers can trust.)

I've been at Red Hat for six years, and the product and technology landscape has changed a lot. During that time, Red Hat acquired Ansible and we've integrated so many things with that now. Ceph used to just integrate with OpenStack, and now we've integrated Ceph with NFS, iSCSI and OpenShift as well. Every year I work on different things and find new ways to integrate new and different projects together.

When I joined Red Hat in 2014, I did not know Python or C++. One of the best things about accepting the job was that I knew I would be surrounding myself with people who knew these languages incredibly well. I picked up so much by osmosis, working alongside some senior developers on the team who could patiently explain things to me.

Technology aside, a few years ago I found the Manager Tools podcast and learned so much about how to communicate effectively (really important at Red Hat were so much work is remote work). I also found a coach and learned how to get really clear on what I want, how to set boundaries effectively, how to finish projects on time, and how to handle personal challenges at work.

"Being a passionate learner" does not mean the often-ridiculed caricature of the programmer who spends every spare night and weekend away from family slaving away on open-source for free. It means someone who spends their time effectively, someone who knows how to balance the critical fire-fighting of the moment with the time to make long-term investments (whether that's technical research or organizational relationship-building). In fact, one of the things I'm passionate about is quitting work on time (or even early) and encouraging folks on my teams to do the same. Quitting on time is how we keep coming back tomorrow.