The Engineering team supports Favor’s mission to bring fast, fresh delivery to Texans far and wide. The Favor technology platform is the engine behind the business that enables our Runners (that’s what we call our delivery drivers) to deliver millions of Favors. Our technology efficiently manages the real-time assignment of Favors, facilitates communication between customers, Runners, and Support team, keeps mobile applications in sync, and more.
At Favor, we are committed to building a world class team that shares a passion for products that make a difference with modern, clean code. Do you get a thrill when you make an impact on hundreds of thousands of users? Do you want to work for a purpose- and values-driven company in a high-growth environment? Our team creates the tools and applications necessary to connect our customers, Runners, merchants, and Support team.
As a Staff Software Engineer at Favor you will be responsible for all phases of development, testing, and deployment of our web applications, back-end services, databases, and data warehouse.
What You'll Do:
- Define functional, non-functional, and security requirements for critical backend systems
- Code critical core services, such as authentication, API gateways, ordering service, fraud detection, and third-party integrations
- Lead and participate in troubleshooting application incidents, resolving deployment issues and integration failures, mining logs, coordinating cross functional triage, and providing long-term implementation guidance
- Eliminate barriers to scale through technology and process and by providing building blocks of applications and distributed services
- Create solution architectures that include evaluation, selection, and integration of technical components
- Collaborate with engineers across all disciplines to design unified cross-squad solutions, define technical strategy, and manage the technical debt roadmap
- Understand and solve complex business problems by presenting various solutions and technical concepts in a comprehensible manner, then breaking them down into manageable iterations for a smooth product flow
- Understand company and Engineering team goals and develop the technical solutions, vision, and strategy to advance those priorities
- Challenge the status quo and bring your unique perspective to identify new technologies, strategies, and processes that can help the Engineering team better provide business value
- Define and contribute to standards that improve developer workflows, recommend best practices, and mentor junior engineers on the team to grow their technical expertise
- Advocate for DevOps solutions, automation, and the maintenance of continuous integration and continuous deployment pipelines
Skills You Have:
- 8+ years of software engineering experience
- Experience or familiarity with one or more of the following technologies: Kotlin, Java, PHP MySQL, Postgres, Kafka, Docker, Kubernetes, Terraform, AWS, Elasticsearch, JUnit, and Jenkins
- Ability to lead larger initiatives with Product, Design, and Engineering teams
- Advanced understanding of software design patterns to write clean, well-structured, idiomatic code, leveraging the full power of a language
- Ability to create solutions to problems under various constraints using novel algorithms and data structures
- Ability to write atomic tests with minimal side effects
- Strong understanding of test automation techniques
- Ability to gather and define software requirements, considering multiple patterns and strategies in order to build efficient solutions
- Ability to use debugging tools to trace and diagnose issues
- Expert knowledge of REST & JSON, API versioning strategies, and security best practices
- Ability to communicate difficult technical concepts in precise, concise, and unambiguous terms
- Understanding of database concepts, such as joins and indexes, and the ability to alter data structures
- Knowledge of how different parts of a system architecture will work together and ability to diagnose issues within the system
- Experience in a high-growth startup is a plus
Who You Are:
- You appreciate simple design
- You love to write clean, well-tested code (test-first or test-driven development approaches are a plus)
- You enjoy working with other engineers in a collaborative and iterative environment
- You communicate well with technical and non-technical stakeholders