Staff Software Engineer - Back End

Sprout Social
Summary
Join Sprout Social's Engineering team as a Staff Software Engineer and contribute to building tools that help customers automate tasks and accelerate response times. You will collaborate with stakeholders, define product vision, lead the team through complex roadmaps, and improve processes and tools. This role requires extensive software development experience, leadership skills, and a deep understanding of distributed systems. The ideal candidate is a highly motivated, creative, and collaborative leader passionate about solving complex problems and delivering high-quality software. Sprout offers a comprehensive benefits package including insurance, paid time off, parental leave, wellness initiatives, and professional development opportunities. The role is remote, with candidates needing to be based in British Columbia or Ontario.
Requirements
- 7+ years experience developing and supporting software in a production environment
- 5+ years experience programming in an object oriented language such as Java, Python, C# or C++
- 2+ years of experience leading engineering projects and initiatives, including the design, development, and implementation of distributed systems, ensuring delivery of reliable services, prioritizing technical improvements with cross-functional teams, and/or driving technical vision
Responsibilities
- Collaborate with the stakeholders to define the vision and help lead the team through complex product and technical roadmaps, guiding them to successful outcomes
- Work to improve the processes, systems, and tools we use to deliver quality products, champion ideas that matter, and hold the team accountable
- Complete Sprout’s New Hire training program alongside other new Sprout team members
- Get acclimated to the team's current Mission, Goals, and Objectives along with future product roadmaps
- Deploy and make changes to our production systems
- Interact with SQL and NoSQL data stores and NSQ messaging queues
- Collaborate regularly with product managers, QA engineers, and other product teams to deliver value to our users
- Get regular team feedback on your work through code reviews and pairing
- Proactively monitor the health of our services in production to ensure our customers always have a world-class experience
- Decompose work into small, similarly sized units so that estimation is trivial
- Work with your stakeholders and squad to create and prioritize quarterly team goals
- Contribute to our Agile culture of continuous improvement through retrospective meetings and experimentation-oriented thinking
- Build connections with members from other teams through guild meetings and chapter outings
- Participate in technical design meetings with your teammates to walk through new feature ideas
- Work with product managers, UX developers, back-end and front-end engineers and your leadership team to come up with the MVPs of new features
- Be the first line of defense against product outages and defects while on support duty
- Maintain, scale, and build systems that execute at internet scale
- Write Engineering briefs, design documents, coordinate dependencies, and act as the domain owner for your product zone and also the adjacencies
- Learn to use monitoring and alerting tools to know about problems before our users
- Plan, create and manage large concurrent, distributed systems in a cost effective manner
- Build and demonstrate your engineering skills by attending as well as delivering in-house presentations, workshops, and training sessions
- Lead technical design meetings to walk through new feature ideas
- Identify technical debt and performance bottlenecks within our systems, come up with a plan to improve them, and release them to production
- Work and communicate effectively with other groups across the organization to ensure big-picture alignment and encourage cross-team collaboration
- Create a career growth plan with your manager, and work towards it
- Partner with the Infrastructure team to improve your team’s ability to deliver scalable, reliable and highly available services
- Be the go-to expert of your teams’ systems at the company
- Own cross-organizational projects, demonstrating project management skills, consensus building, and strong leadership
- Actively mitigate risk of failed delivery and missed deadlines through courageous, transparent communication with colleagues and stakeholders throughout a project life cycle
- Lead technical architecture meetings
- Identify technical debt and performance bottlenecks within our systems, come up with a plan to improve the code, and get it pushed to production
- Mentor junior engineers, helping them level up technically
- Build connections with members from other teams through active networking and community building
- Have opportunities to contribute to in-house technical presentations and workshops that share your expertise with large groups of Sprout engineers
- Surprise us! Use your unique ideas and abilities to change your team in beneficial ways that we haven’t even considered yet
Preferred Qualifications
- 5+ years experience developing and supporting high throughput, scalable, distributed backend services
- 4+ years of working with large databases or data stores
- Experience working with and tuning Elasticsearch, or OpenSearch in a large distributed setup
- Experience working with cloud computing technologies such as AWS or GCP
Benefits
- Insurance and benefit options that are built for both individuals and families
- Progressive policies to support work/life balance, like our flexible paid time off and parental leave program
- High-quality and well-maintained equipment—your computer will never prevent you from doing your best
- Wellness initiatives to ensure both health and mental well-being of our team
- Ongoing education and development opportunities via our Grow@Sprout program, employee-led diversity, equity and inclusion initiatives and mentorship programs for aspiring leaders
- Growing corporate social responsibility program that is driven by the involvement and passion of our team members