The Engineering Enablement League is looking for an experienced Senior Engineer who is passionate about working with distributed services and the challenges associated with them. This engineer will be actively contributing to our Python/Django and Go Backend stack, while also enabling other SpotHero engineers to develop and test within this ecosystem.
This role will be part of the Engineering Enablement League and will join the Platform Engineering Squad.
The focus of this league is to support and raise the quality of the work of all engineers in our Leagues and Squads and fellow SpotHero employees across all departments. Whether it be scalability, tooling, automation or security, the Engineering Enablement League (EEL) is focused on making it easier for other engineers to add functionally to their platforms. EEL also owns our Search functionality and provides our SpotHero API to our partners.
Sound like you? We can't wait to meet you!
What will you do:
- Engineering/Writing Code
- Be a hands-on contributor to the design and implementation of new products and features supporting the engineering organization's technical strategy.
- Identify, design, develop, test, and release high quality functionality as efficiently as possible.
- Build and maintain internal and external tools and services related to product/engineering squad’s goals.
- Work collaboratively with the rest of the team, including product management, to deliver quality products with a focus on speed, security, and analytics.
- Collaborate with all senior and staff level engineers to explore options and help define architecture and design across the engineering organization.
- Provide code review and empathetic, thoughtful feedback to peers, Engineer I, Engineer II and Engineer III level team members, assisting these team members in producing code that meets set standards and supports their development as Engineers.
- Write documentation on what the squad plans to do, is doing and has completed. Documentation should be easily accessible and should lead to productive discussions within the squad and/or other teams.
- Identify areas for improvement and innovation within the squad ecosystem by investigating and proposing new technologies and/or best practices, and leading the charge on implementing them.
- Ownership of codebase, maintaining it and ensuring it runs consistently.
- Secure and safeguard data to preserve its integrity, reliability, and availability and ensure appropriate access levels are maintained.
- Participate in an on-call support rotation.
The following experience is relevant to us:
- 5+ years experience as engineer across multiple environments and codebases.
- 3+ years experience working with Python and Django
- Knowledgeable of object-oriented and/or functional programming patterns and paradigms.
- Ability to work in all areas of the tech stack, including infrastructure through the application layer to client libraries.
- Strong experience working with relational databases like Postgres and mySQL.
- Knowledge of various API paradigms such as REST and RPC and can implement them within the services you are developing on.
- Proven ability to develop, load test, and monitor performant web services.
- Deep understanding of how to work on a team, direct their own work, and ask for help when needed.
- Skilled in developing functionality and logic using distributed systems.
The following experience is nice to have:
- GoLang experience
- Kotlin & JVM experience
- Deep experience in developing testing patterns
- Experience instrumenting authentication and authorization patterns
- Experience developing Kafka services
Don't check all of the boxes? Please still apply! We love getting to know others and how we can help you grow at SpotHero.
Technology we use:
Our Android Stack is: Kotlin and XML (standard for Android apps) using MVI architecture (still working on refactoring old views), our database layer is built in Realm. Bitrise for CI/CD. We also make heavy use of Dagger, RxJava, Espresso (testing). Network stack uses Retrofit.
Our iOS Stack is: Swift using MVC architecture, CoreData for Local Storage, XCUI for UI Testing, XCTest for Unit testing, SPM for Package Management, Fastlane for app automation and build scripts, Bitrise for CI/CD, and Sentry for crash reporting.
Our Back End Stack is: Monolith using Java/Django/Python/PostgreSQL. We are moving our Monolith to a Modular Monolith, using Domain Driven Design. When relevant we extract specific domains to Services currently using Java, Kotlin and GoLang. We also use Docker, deploy our apps via Kubernetes. We use Kafka for asynchronous-, and gRPC for synchronous service-to-service communication.
Our Front End Stack is: Our Front End stack is React/Redux, Sass, Jest/React Testing Library/Cypress, and Webpack. We maintain a private npm repository with shareable UI components, utility functions, Babel/ESLint/Prettier configurations, and custom tasks
Our Data Stack is: Our Monolith Database is Postgres and Redis for caching. We also use Redshift as our data warehouse and S3 as our data lake. The data lake is queried using Presto. We use Airflow and Spark for ETL, as well as do some stream processing (Kafka Streams and Spark at the moment). Our Model pipeline uses scikit-learn, pandas. Our analysts utilize Looker as our Business Intelligence tool. And we use Quicksight for Dashboard on our external Data Products
Our Dev Tools Stack is: AWS+Kubernetes for hosting. Terraform + Helm Charts for IaaS/Deployment. ConcourseCI for CI/CD. Prometheus/Alertmanager/VictorOps for team alerting. We’re starting to work on multi-region available services.
What we are offering:
- Career game changer – A truly unique experience to work for a fast-growing startup in a role with unlimited potential for growth.
- Excellent benefits –
- Flexible PTO policy and great work/life balance – We value and support each individual team member.
- Annual parking stipend – we help people park!
- The opportunity to collaborate with fun, innovative, and passionate people in a casual, yet highly productive atmosphere.
- A workplace recognized as the Best Consumer Web Company by Built in Chicago, Top Company Culture by Entrepreneur, a Top Workplace by Chicago Tribune, and one of Chicago’s Best Places to Work for Women Under 35 by Crain’s Chicago Business.
Steps to apply: Please include any GitHub account, LinkedIn profile, and any project that you’re particularly proud of. We love seeing work that others loved working on.
At SpotHero, we Respect Fellow Drivers by providing an inclusive interview experience for everyone, including people with disabilities. We are happy to provide reasonable accommodations to candidates in need of individualized support during the hiring process. Please let our team know of your need when you apply or as you begin interviewing with our team.
Additionally, because we want to Remember to Signal, if you choose to provide us personal information in connection with a job application, please review our Applicant Privacy Notice which provides details about what information we collect and process about you in order to consider your candidacy.
SpotHero is an equal opportunity employer. We know that a diverse workforce is the strongest workforce, and are committed to building and supporting an inclusive environment for all.