Senior Software Engineer

Ibotta is looking for a Senior Software Engineer to build software that helps our shoppers save time and money. As part of the engineering team, you will work on the platform that powers our app that is used by millions of consumers. We're looking for a self-motivated engineer who has a real passion for building and scaling infrastructure using technologies such as Ruby on Rails, Java, Kotlin, Spark with Scala, AWS Lambda with JavaScript, Redis, DynamoDB, and machine learning. Every engineer has input into our product process and will have a real impact as part of a small, nimble team.

Here is what you’ll be doing:

  • Work with a cross-functional team to design and develop new features that will be used by millions of users
  • Use the latest cloud technologies from AWS to design and build flexible, scalable, reliable and high-performing applications
  • Build new microservices using the right language/tool for the job. Our current microservices are written in a variety of languages including Java, Node, Ruby, Scala, Clojure, etc.
  • Identify and fix performance bottlenecks
  • Work with big data sets (hundreds of millions of rows)
  • Write tests and perform code reviews to ensure that we're shipping reliable, readable, and reusable code
  • Deploy code multiple times per day
  • Implement serverless architectures

Here is what we’re looking for:

  • Bachelor’s degree in Computer Science, Engineering or a related field and 5+ years of experience in software development
  • Experience across relevant technologies such as Ruby, Java, Kotlin, JavaScript, Scala, PHP, Python, etc.
  • Extensive knowledge of SQL and NoSQL type databases like MySQL, Aurora, DynamoDB, and Redis is valuable, but knowing when to use each is far more important
  • Working knowledge of Unix/Linux
  • Working knowledge of source control systems including Git
  • Knowledge of object-oriented software design, development, and architectural principles

Nice to have:

  • Ruby on Rails
  • Building APIs for internal or external applications
  • Experience with AWS technologies such as DynamoDB, Kinesis, Elastic MapReduce, or Lambda
  • Automated testing using tools such as RSpec or JUnit
  • Scrum/Agile development

Here are 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 are not afraid to voice your opinions, but you are okay with not always being right

Back to top