Senior Software Engineer (Back End), Server Platform
The Server Platform team at Outreach owns some of the core services components that drive the Outreach product itself. Our main clients are the rest of the engineering organization as well as Outreach external customers. We have spent the last year investing heavily on stabilizing the application, now we are looking for a seasoned senior engineer to help us work on evolving our existing architecture in order to scale as we continue to rapidly grow.
We’re looking for someone who has an interest in system architecture, but a passion for getting things done. You’re smart enough to work at top companies, but you’re picky about finding the right role (this is more than just a job, right?). You’re experienced, but you also like to learn new things. You want to work with smart people and have fun building something great. You have an analytical mind and are able to prioritize well and communicate clearly. You have a consistent track record of delivery and excellent software engineering skills. You must be able to work across multiple facets of the project and have the ability to create innovative solutions.
About the Team
The Server platform team is composed of senior engineers with diverse skills and backgrounds. Our unifying attribute is our desire to work together to find creative, scalable solutions to the problems we run into.
Our vision is to be enablers for the application and engineering organization to reliably and dynamically scale the business.
Our mission is to support the engineering function and the core application of Outreach by developing core services that are application assets, by quickly and efficiently develop solutions to address the most pressing needs, by adding instrumentation plumbing to be able to closely track and measure our operations, by progressively enabling the organization to migrate to a service-oriented architecture: getting rid of single points of failure, scoping and clearly defining interfaces inside the application for the services that we own, creating guidelines, best practices and tooling for new application services and around core architectural strategies such as but not limited to instrumentation, logging, throttling, micro-services, connection handling.
As an example, we have a service that performs more than 100 million inbound and outbound sync operations per day under an SLA that demands less than two minutes latency.
Your Daily Adventures Will Include
- Own features all the way through
- Lead, develop and influence best patterns and practices
- Design and build scalable systems that handle huge amounts of data
- Identify the critical details and prioritize them for incremental delivery
- Design and create services and system architecture for your projects, and contribute and provide feedback to other team members
- Help improve our code quality through writing unit tests, automation and performing code reviews
- Participate in brainstorming sessions and contribute ideas to our technology, algorithms and products
- Work with the product and design teams to understand end-user requirements, formulate user stories, and then translate that into a pragmatic and effective technical solution.
- 5+ years of recent hands-on coding and software design.
- Recent experience building robust and scalable software.
- A track record of projects completed on time – you are a flawless executor, not a procrastinator. You find satisfaction in a job well done and want to solve head-scratching challenges
- Solid OOP and software design knowledge – you should know how to create software that’s extensible, reusable and meets desired architectural objectives
- Familiar with continuous integration environments
- Previous exposure to data-intensive environments, including data modeling and integration conceptsA can-do attitude and good team player.
- Ability to prioritize your tasks properly for incremental delivery
- Experience with our technical stack: Ruby on Rails, Node.js, Elixir (or comparable functional language such as Golang), ElasticSearch, MySQL, AWS, Docker and Kubernetes.
- Willingness to learn new technologies (experience with other languages is okay too, but our code is Ruby on Rails, Elixir and Node.js, so you should be able to get up-to-speed on at least one of them - quickly).
- You embody our core values: We are hungry craftspeople, we have grit, we are honest, we take ownership, we have each other's back no matter what, we're one with our customers, and we find strength in diversity and inclusion.
- Proficiency in working with services written in Golang is highly desirable
Why You’ll Love It Here
• 100% medical, dental, and vision coverage for full-time employees
• Flexible time off
• 401k to help you save for the future
• Company-organized and personal paid volunteer days to support the community that supports us
• Fun company and team outings because we play just as hard as we work
• Diversity and inclusion programs that promote employee resource groups like OWN (Outreach Women's Network)
• A parental leave program that includes not just extended time off but options for a paid night nurse, food delivery, gradual return to work, and the Gottman Institute's Bringing Home Baby course for new parents
• Employee referral bonuses to encourage the addition of great new people to the team
• Plus, unlimited snacks and beverages in our kitchen
Read Full Job Description