This past Monday, 07/20/2020, I’ve started my new role as a Staff Engineer on the Foundations team at Venmo.
Here’s an excerpt of the job description:
As a Foundations Staff Software Engineer at Venmo, you will be responsible for designing, implementing and operating complex solutions related to API design and implementation, standardizing tool sets used by every engineer, and being the bastion of our languages, build tooling, and developer infrastructure. Our team strives to help developers to build, test and release their software faster; we own delivery and release pipelines, CICD, internal deployment tooling, both for development, staging and production systems. As part of the team you will also be expected to be a role model on coding standards, API design, platforms and other developer infrastructure best practices for the Venmo Engineering teams.
What You’ll Do
- Leading the design and improvements to our developer CI/CD infrastructure
- Standardizing tool sets to streamline development and deployment of backend systems
- Scaling our distributed services architecture to support growth while maintaining performance and reliability
- Taking ownership of the tools we develop and operate, being part of on-call and interrupts rotations.
- Collaborating with other engineers in software design and development
- Helping triage issues, track software defects, and ensure timely resolution
- Strong advocacy for technical standards and quality across PayPal, Inc.
What We’re Looking For
- 5+ years experience in software development of a related field
- Experience working on backend systems at scale, using technologies like gRPC, REST, Python, Golang, AWS, Kubernetes, Helm, docker-compose, etc.
- Experience in operating, maintaining, and troubleshooting software running in the cloud.
- Experience building and deploying complex but well-architected, maintainable, and testable presentation infrastructure for our backend systems
- Strong object-oriented programming skills
- Strong communication skills with the ability to understand and explain technical issues to a non-technical audience
We know the confidence gap and imposter syndrome can get in the way of meeting spectacular candidates. Please don’t hesitate to apply.
My latest job at Venmo will be the first time in a staff engineering role. I should also note that I’m a self-taught engineer. I’m hoping this post will help others looking to jump from senior engineer to staff engineer. I’ll hopefully have an update in a year to reflect on my expectations and reality.
I got hired as a staff engineer, so that’s one way to get the role. The other way is to get promoted from within your organization.
What is a staff engineer and what do they do?
The staff engineer role varies between companies. It ladders into the principal engineer role at some companies. At other companies it’s the equivalent of a principal engineer.
Some companies tend to treat staff engineers as a like a senior engineer++. I think the role is slightly different. Senior engineers typically spend most of the time heads down coding. Staff engineers have time to do heads-down coding, but a lot of their time should be spent thinking about business initiatives and taking a macro view of the work.
Staff engineers tend to be responsible for leading initiatives cross-cutting between functions, such as the product team or data teams.
One excellent resource I found helpful for figuring out what precisely a staff engineer’s responsibilities are is staffeng.com/stories.
Since I was hired at the staff level and not promoted from within, I want to talk a bit about the interview process I went through.
It was a pretty standard interview loop for a tech company. I had a phone screen with the recruiter. I skipped the technical phone screen because I was a referral and due to the current circumstances of COVID-19. My onsite was virtual, consisting of 2 coding interviews, an architecture interview, a past architecture interview, and a behavioral interview.
I wasn’t interviewing for the Foundations team initially since I’m a referral to a different team. After finishing the virtual onsite, they determined that I’d be a better fit for the Foundations team, so I had an additional two interviews that I thought were unique and liked. One was a debugging interview wherein I was given an AWS instance with a broken application. I had to debug it as if I were debugging an actual system, meaning I had access to Google. The next interview was another behavioral with the hiring manager of the Foundations team (my current manager).
What I’m most excited for
I’m excited that I get to work in an area where I have a lot of expertise and can add a ton of value.
I’m looking forward to leading and growing other engineers.