Staff Platform Engineer
Ibotta is looking for a Staff Platform Engineer to join our innovative team and contribute to our mission to Make Every Purchase Rewarding by building something great with us. As part of the engineering team, you will work on the platform that powers our products that are used by millions of consumers. We're looking for a self-motivated engineer who has a real passion for building and running large-scale, fault-tolerant applications. Every engineer has input into our engineering culture, our products and development processes, and will have a real impact as part of a small, nimble team.
This position is located in Denver, Colorado as a hybrid position requiring 3 days in office, (Tuesday, Wednesday, and Thursday). Candidates must live in the United States.
What you will be doing:
Build products and tools, using the right language/tool for the job, that drive valuable impact to Ibotta, our customers, or fellow engineers
Work collaboratively with a highly talented cross-functional team to design, develop and deliver new products and features that will be used by millions of users
Use Amazon’s AWS infrastructure and advanced services daily, including serverless architectures
Stay abreast of the ever-changing technology landscape to identify the best tools and technologies to design and build flexible, scalable, reliable and high-performing applications
Demonstrate strong leadership by offering comprehensive guidance to team members, cultivating their technical aptitude, and championing best practices within the development process.
Leverage and contribute to our CI/CD pipeline to deploy code many times daily
Write tests and participate in code reviews to ensure that we're shipping high-quality, maintainable code
Own your technical solutions end-to-end from contributing your ideas, to first code commit, to operating in production
Embrace and uphold Ibotta’s Core Values: Integrity, Boldness, Ownership, Teamwork, Transparency, & A good idea can come from anywhere
What we are looking for:
5+ years of experience in software development
Bachelor’s degree in Computer Science, Engineering, or a related field required
Expert knowledge of object-oriented software design, development and architectural principles
Deep understanding of development best practices including security, compliance, performance, optimization, reliability, cost efficiency, etc.
Profound understanding of building highly scalable, observable, and fault tolerant platforms using architectural patterns such as retries, circuit breakers, rate limiters, etc on top of horizontally scalable systems
Proven experience with relevant technologies such as Typescript, Ruby on Rails, Java, Kotlin, Nodejs, etc, and data stores such as MySQL, DynamoDB, Redis, etc, and knowing when to use each
Demonstrated experience implementing observability, monitoring and alerting for services and establishing SLOs for services.
High level of comfort with debugging and testing approaches, and frameworks from unit testing to automated testing
Experience with cloud platforms such as AWS, GCloud, or similar
Deep knowledge of DevOps best practices and Infrastructure as Code tools (e.g. Terraform, CloudFormation, etc)
Experience implementing architectural concepts such as microservices, serverless, event-driven, platforms, etc.
Some of the traits that we seek in great engineers:
You...
love to teach and learn from your co-workers
look for ways to continually challenge yourself and develop as an engineer
understand that communication is a huge part of your software engineering responsibility and practice it daily
understand that testing your code is one of the most important aspects of software engineering
respect diverse perspectives and like collaborating with other engineers to solve hard problems
understand that delivering products incrementally helps provide more value to the business
trust your teammates, and embrace healthy conflict and debate. You believe getting it right is more important than being right.