Tell us a little about your current role: where do you work, your title and generally the sort of work do you and your team do.
I’m a Staff Software Engineer at ActiveCampaign. ActiveCampaign is a category-defining Customer Experience Automation Platform that helps over 100,000 businesses in 161+ countries meaningfully connect and engage with their customers. It creates optimized customer experiences by automating many behind-the-scenes marketing, sales, and support processes. Businesses of all sizes have access to hundreds of pre-built automations that combine email marketing, marketing automation, CRM, and machine learning for powerful cross-channel orchestration, segmentation and personalization.We are based in Chicago.
I currently work on the streaming team (3 people) where we are integrating Apache Kafka and related software tooling into our stack to begin decoupling our monolith. At its core, my job is to work across many teams to ensure the future of our platform is both scalable and maintainable. I get to work closely with our teams to not only learn from their experiences, but also to guide decisions and ensure we are all developing fault tolerant, resilient systems/services. Through collaboration, empowering others and staying focused on customer value, we deliver systems/services that support both the growth of ActiveCampaign and our customers!
What does a “normal” Staff-plus engineer do at your company? Does your role look that way or does it differ?
There are days where we are writing code with developers to help drive projects forward as an individual contributor. There are days where we are writing terraform configuration for deployments and helping to develop/write SLA/SLO/SLIs. We jump in with our SRE teams in the trenches when there are significant issues that cause outages. We frequently meet with our directors, VP, and our CTO to give presentations to advocate for the creation of new engineering teams, strategies, and frequently make recommendations on how we move forward with the platform. We manage and run projects. We mentor and train developers in our organization. We advocate for our developers to have the tools we need. Every day is different. We are given a lot of latitude to choose what problems to tackle within reason.
How do you spend your time day-to-day?
Because of COVID-19, our entire company is remote, like most of the world. At 8am I log into slack, say hello to my friends and coworkers. I check JIRA to track the progress of my projects I’m responsible for. I’ll check in with the engineers working on those projects. Depending on the day, I’ll have “coffee/beer” over Zoom / Google Hangouts with engineers I’m mentoring. Or, I’ll meet with my manager, director, VP, or CTO so they can mentor me and get updates on the org related projects. We have a great working relationship where I can be vulnerable and honest. I’ll meet with our engineering managers and plan projects or give status updates. If I’m assigned coding proof of concepts that need to be completed, then I’ll work on them.
I’m a part of an employee resource group for black employees. When I have time, I’ll check in with my teammates in that slack-channel. I’m passionate about diversity, equity, and inclusion (DEI), so I’m always sharing and learning in our DEI slack-channel.
My manager manages other teams, so we have stand-up at the end of the day.
Where do you feel most impactful as a Staff-plus Engineer?
I feel most impactful when I see projects getting completed and engineers growing in their crafts. I love seeing other engineers grow. It’s a really cool feeling when I see engineers learn new technologies and become “rock stars” in the organization and industry. My aim is to be a skills multiplier. I’m extremely goal-oriented so anything that gets us closer to helping our customers meet their specific business needs is always a reward for me.
Can you think of anything you’ve done as a Staff-plus engineer that you weren’t able to or wouldn’t have done before reaching that title?
I have had the opportunity to work with multiple teams and a greater impact on the team’s success. Being a leader counts for everything—something that I’ve learned from my director. I am able to have a seat at the table and influence decisions on technology. I have a close working relationship with leadership that allows me to have greater influence on outcomes.
Do you spend time advocating for technology, practice, process or architectural change? What’s something you’ve advocated for?
Yes, often! For example, last year we advocated for the usage of Apache Kafka within our stack to begin decoupling our monolith. We made several presentations on how our current stack decoupled from a specific cloud provider could make us nimble and ease deployment management, allowing us to eventually move to a multi-region cloud strategy. We wrote fit-gap analysis documents detailing how to separate the stack. We found vendors, and we did all the cost analysis. We pushed to where we are now, in the middle of multiple Kafka implementations.
How do you keep in touch with how things really work as you spend less time on hands-on development?
Our organization is small, so I’m always coding (polyglot environment). We aren’t big enough where Staff Engineers aren’t coding. I suspect a day will come where we are large enough this won’t be the case. A lot of friends and colleagues at small/mid sized startups in Chicago with the same title are still coding. That said, I am always reading books, blogs, attending conferences, and watching presentations on the web to learn new things, so I’m always coding. I attend meetups in the city, too. Chicago has become a huge talent hub for technology over the last couple of years, so there’s always a meetup some night of the week to attend.
How do you maintain empathy and awareness of the realities of developing at your company when you do less development yourself?
I meet frequently with my VP and another engineering manager. Both of them excel in empathy, so I’m learning from them. I also meet with developers on our teams. Communication is vital to success beyond technology. Coffee / Beer with others is always a cool way to get to know others and grow. Technology is the vehicle to get you to your destination, but good communication and relationships are why the journey is there in the first place.
How have you sponsored other engineers? Is sponsoring other engineers an important aspect of your role?
Yes, I speak to members of our team as well as developers within the organization. The team of staff engineers all frequently interact with our developers to get the “word on the street”. We mentor and build relationships with them; it’s critical to our success.
You first got the title Staff Engineer at your current company. What was the process of getting promoted to Staff?\
I was hired as a Senior Engineer because at the time we didn’t hire into the Staff title. I was told that the title was being created but wasn’t approved. During the year they created the title, and I was promoted six months later.
I helped a new product go live on our platform. Then, I led and architected components for a team of two to a team of five implementing a new data segmentation framework to replace existing data segmentation. I worked with multiple teams and projects. Being able to maximize my skills as a skill multiplier to other developers helped my promotion.
Early on in my career I was taught that it’s helpful that you should be doing the job that you want to be promoted to. I have found that to be true in every single promotion in my career.
What two or three factors were most important in you reaching Staff? How have the companies you joined, your location, or your education impacted your path?
I have a bachelor’s and master’s degrees and 20 years of experience. My education and experience in computer science gave me a foundation to get interviewed; however, my hard work, consistency, and caring about the mission and our team played a huge factor in reaching the title of Staff Engineer.
Being African-American in the tech industry is really hard. Sometimes you are the only one that looks like you. You have to be relentless about your goals, never giving up. Some organizations may not be a good fit, others might try to hold you back. Find the right organization that fits you and fight to be seen, heard, and contribute. You will work hard to break down stereotypes. You will work harder than your other colleagues for the same achievements and receive less recognition. But the victory comes when someone who looks like you doesn’t have to fight as hard to be a developer at your company. Fight for the man or woman coming after you.
Do you think some companies are particularly good at growing Staff engineers?
Some companies don’t provide career paths for developers who don’t want to tackle people management. I’m very blessed where I told my director and VP I wasn’t ready for people managing yet, and had the opportunity to move into this role. So far it’s been a good fit.
More companies should create a path for leadership roles that doesn’t include people management of developers. Mentoring and coaching are often missing for folks that are just technical.
Advice for navigating uncertainty and ambiguity that comes with more senior roles?
To be honest, I struggle with this at times. But as time goes by, you will learn that leadership is just as much as a skillset like coding. You’ll quickly find ways to provide value to an organization by the relationships you keep and advocating for your team(s). Focus on being a good leader and caring for those around you. Embracing empathy and radical candor helps.
Uncertainty is a part of the role, and it can vary minute by minute depending on what’s going on. Ambiguity will either drive your curiosity to learn something new or drive you mad. You can’t worry. You have to carry out your mission and care for your team as you go. The higher you go in any organization, the more uncertain and ambiguous life gets.
What are some resources (books, blogs, people, etc) you’ve learned from? Who are your role models in the field?
Anything Martin Fowler–I love his books and talks. Robert “Uncle Bob” Martin is pretty huge in the Chicago tech scene–I love his technical content. Rob Pike is a hero mine. His work with golang has been an inspiration to me around minimalism.
I follow Brian Liles, Erica Baker, Angie Jones, and Kelsey Hightower on social media. They are my heroes that are African-American in the tech industry. Baker and Jones have challenged my perceived perceptions of what it’s like to be women of color in tech. There aren’t that many women of color in tech so I appreciate their insights. Hightower is an inspiration to me because the platform he has–career goals! He gives great talks. Liles is a good leader.
My friends: Zach Bright, Benjamin Doherty, Alex King, John Walsh, Robert Boxall, Joel Vasallo, Nick Petrovits, Matt Jones, Pepi Manieson, Olivia Wong, Drew Wilson, Nathan Keyes, Mark Nuzzo, and Anthony Andras are my role models. I admire each of these people. They are giants in my world and in the Chicago tech scene. Each of these people are awesome leaders and developers. They’ve had a huge impact on my career.