Let me take you back to the late grunge band period… some time in the mid ‘90s. It was around this time that I was introduced to Linux. I built a PC from a kit, installed Windows 9x, tied up the phone all night for a couple weeks, and downloaded Slackware from Walnut Creek CDROM. Shortly after that, I wiped Windows, installed Linux… and realized how much of a mistake I’d made. These were the early days of Linux and just getting the modem working and finding my way to EFNet felt like an accomplishment.
Today, I’m the Site Reliability Engineer (SRE) Manager at Redpanda. I went from being a San Jose kid fumbling his way through learning Linux, to working at multiple tech startups and even Google with nothing more than a high-school diploma. In this blog, I’m discussing a small piece of my background and story, as well as my responsibilities at Redpanda, for any beginning or seasoned engineers interested in getting into this line of work or—even better—working for us
I was already on a technology path in high school. Those nights on my computer were spent war dialing, reading Phrack and 2600, learning about systems, and generally just exploring the world of the early internet. I was lucky that my school offered CCNA, C++, and web development courses. I took all three.
After I graduated, I ended up in my first startup… folding cardboard boxes. It wasn’t technical but it got me in and I started talking to the engineers who were developing our DSL router firmware. They set me up to do some hardware performance testing for them and with a few small tweaks, I managed to DOS the devices. They gave me a full time job doing engineering support and QA, and that’s how I got started breaking and fixing things and what ultimately led me down the path to SRE.
Fast forward a few years to the early days of containers and Docker, and I was working at a Hadoop-as-a-Service startup. This was before the tech world had made a decision on Kubernetes vs Mesos. We were working on container orchestration as part of our multi-tenant system and needed a way to auto-scale containers within a cluster, based on resource pressure and system health. We started looking into event-driven infrastructure. We ultimately settled on a simple pub/sub mechanism that we built in-house, but eventually we started looking at Kafka, and that was how I was introduced to what would eventually become the kind of modern event streaming we work with at Redpanda.
Today at Redpanda, I coordinate and prioritize our engineering efforts in support of our programmers and software engineers. While I no longer spend my days working directly with software systems, I take part in our cross-team architectural discussions for these systems, the changes we’re considering, etc., which will improve our cloud service for our customers. And, as we continue to grow, I spend a lot of time looking for the best candidates possible to join our team and help us build an incredible platform.
To recruit the best, our interview process is very thorough but it’s not necessarily any more difficult than other interview processes. We don’t focus on industry trivia or those kinds of “trick” questions that I think most of us have experienced in one job interview or another. We don’t make our applicants fill out a Myers-Briggs-style personality assessment or anything like that, but we do look for cultural fit with the rest of our team.
We want to hire people that the rest of us want to work with—people who are not only qualified in terms of their skills, but also in terms of how well they work with others. I know of people that I could hire to this team instantly, but if they don’t have the kind of positive attitude and the empathy that we want in our corporate culture, they aren’t going to be good candidates for us. Yes, applicants to our engineering team need to have the skills necessary to work in this industry—they need to understand Kubernetes and event streaming and building high-performance systems. But, if you really want to be successful in applying for a job here, we’re looking for you to show up with humility and empathy.
We hire people from all walks of life with diverse experiences and diverse mindsets. If you’re the best engineer in the world but you’re awful to work with, we won’t hire you, and I think that’s probably one of the most critical pieces of our interview process. So, yes, be talented, but also be a humble person.
This is something that I’ve been talking about for probably a decade or more at this point, and it’s what I’m excited about and where I see this industry heading: a shift toward highly dynamic, flexible, scalable, and reactive ecosystems.
In essence, event streaming today is a kind of cause-and-effect model. Event-driven architectures tell us a thing happened, and we react or don’t react to it. We have to decide what to do with that information. And, while that’s an incredibly reasonable way to do things, I want an infrastructure that can deal with itself. I want signals to come in from our monitoring services and for the system to be able to recognize when something needs attention, submit an event, and kick off three or four options that can automatically decide what to do then.
Rather than me having to decide how to respond to an event, the system will eventually be able to decide to react or not to react to an event, based on what the situation calls for. This kind of reactive ecosystem is, I think, one of the places where streaming is headed.
The lazy sysadmin is a well known trope that holds true for all the right reasons. At the beginning of my career, I was a traditional sysadmin. I worked with a lot of engineering teams handling the post-development tasks required to deliver code. My desire to not do those things any more set me on the path to automation and ultimately, learning to code. This is partially a joke, but to an extent it’s true.
The way you get to be successful and lazy is to figure out how to write your job into an automated task. So, if you don’t want to do something over and over again, you figure out how to automate it. I thought automating was fun, and this motivated me to gradually expand my knowledge of coding. Suddenly (or, at least, it felt that way), I found myself writing complicated code from scratch to solve interesting problems.
Today, I think it is, in a way, both harder and simpler to get started in this industry. For example, when I was a kid we played with computers and systems and phones in ways they weren’t intended, and we learned from that. We were able to do that because, in those days, there wasn’t a whole lot of security built into those technologies. It was really easy to break stuff, and breaking stuff really gives you a window into how things work and you’re able to learn more about what you’re breaking.
For someone today, in 2022, who wants to get into programming or engineering, it’s much harder to break things. There’s so much information available to us that you would think it should be easier to learn about a technology, but the systems we’ve designed now are so much more complicated. I want to tell beginning developers and programmers to just go in and start breaking things and learning from that, but it is much harder to do that these days.
Alternatively, if you want to learn programming I think it’s important to really see if you have the interest and the aptitude to learn to code. A good way to do that is to start learning programming on one of the many different websites that teach it. You can go to something like Codecademy or Khan Academy or one of the other instructional platforms out there and try the introductory lessons. That’s probably where I would start today, not necessarily because they’re going to teach you to become a great technologist, but because that will help you figure out if you have an aptitude for this industry. From there, you can do something as simple as enrolling in community college or reading a book. I’m personally a big fan of the ‘Hard Way’ books by Zed. A Shaw. They’re difficult but I find them effective.
Remote work is different now than it was when I started working remotely back in 2015. Today, especially since the pandemic, people are getting used to the idea of remote work, but you still have companies that want employees in the office. However, there are those companies like us that are remote-first. Here are a few tips that I think make succeeding in a remote working environment easier:
And I think when you have a company that decides it’s going to be fully remote from the outset, you give your employees the freedom to operate in an asynchronous fashion. It doesn’t matter who is working on which project at what time; it becomes about being a results-driven company, and I think that’s something that’s very beneficial about remote work. Once you get over caring about where people are physically located and you start thinking about accomplishing your goals, it becomes easier to reach them.
You also gain a kind of freedom to be a part of your life in a way that you just can’t be if you’re working at an office. I get to not just see my daughter and wife every single day but I get to spend quality time with them when the sun is shining because I work from home.
Because I’m also managing a team, I do have to think about timing a bit more than some other remote workers might. For example, if I need to extend myself into early hours in the morning or late in the night, it’s easier to do that working from home than it would be with a more traditional office setup.
Of course, having a dedicated working space is important for being productive. I have a big office that we built in our backyard. And, as an engineer, having that space and being able to get some good tunnel-vision time in for my work is fantastic. And then I come into the house and have lunch with my family and break up my day, and it’s a great way to do productive work while having that homelife balance.
Today I live and work in Driftwood, Texas, just west of Austin. My wife, daughter, and I have 25 pets: three dogs, two cats, 18 chickens and two pigs. I’ve been with Redpanda for just under two months at the time of writing this.
If you want to join our engineering team you can view all of the open positions we’re hiring for here. Or, if you want to learn more about our streaming data platform, you can download the binary here, or join our community Slack channel.