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, 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 value-driven company in a high-growth environment? As a Senior Software Engineer at Favor, you will be responsible for all phases of development, testing, and deployment of our backend services, databases, and data warehouse. You will work closely with our product and operations teams to understand customer needs, build simple solutions to complex problems, and deliver delightful experiences to all our users.
What you'll do:
- Independently build, diagnose, and fix very complex technical issues
- Assist in research and fact finding to develop or modify applications
- Fix bugs and perform updates to the code base while working closely with senior engineers
- Participate in the planning and execution of development projects
- Partner with multi-disciplinary technology teams to integrate solutions
Skills you have:
- 4–8 years of software engineering experience
- Experience or familiarity with one or more of the following technologies: Java, Kotlin, MySQL, Postgres, Kafka, Docker, Kubernetes, Terraform, AWS, Elasticsearch, JUnit, Jenkins
- Ability to design and build technical solutions without direct oversight
- Knowledge of coding patterns and their applicable uses to write performant, testable code
- Ability to utilize data structures and algorithms to solve problems
- Ability to write tests that cover the most common use cases and code paths
- Ability to use design patterns to design efficient, maintainable, and scalable features
- Experience developing solutions within a system architecture such as SOA, Event-driven, or n-tier
- Ability to read through code and identify areas that may lead to bugs
- Ability to make updates to existing APIs by adding endpoints, changing responses, and handling errors
- Ability to identify and communicate potential issues early and significantly contribute to team discussions
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