Backend Software Engineer

Job Description

Do you want to have a direct impact on a company’s bottom line and work for a highly profitable, stable, private company? Are you a problem solver that likes to learn new technologies and apply those to real-world problems? Do you want to share your knowledge and learn within a strong team looking to always get better?

AffiniPay has numerous openings for team members interested in growing their depth and breadth of knowledge in a Scala ecosystem running in the AWS cloud. This platform utilizes tools such as Apache Kafka, AWS RDS, Kubernetes, and many others in order to process billions of dollars of transactions for our professional services customers.

You will be welcomed onto a team of hardworking engineers willing to invest themselves in helping you become the best software engineer you can be. And, our Senior Engineers have the opportunity to mentor and develop more junior engineers, too. We take our jobs seriously, and we also want to have fun and be a part of the fantastic AffiniPay culture - making AffiniPay one of Built In Austin’s Best Places to Work!

Why you should work as an Engineer at AffiniPay:

We’re working on complex problems in an industry that requires high quality and availability. We have an open, collaborative environment where we work together to make our customers successful. While there’s a lot of domain-specific knowledge to pick up and some work may fall outside your expertise, we thrive on helping one another deliver a great product.

We are transforming the world of payments by solving unique challenges:

  • Focus on Quality: Because we process billions of dollars in transactions for clients every year, we set an extraordinarily high bar for quality and availability.
  • Accept Payments Globally: We are building solutions that must keep up with global payment capabilities, financial flows, and payment types.
  • Make Payments Effortless: We make getting paid effortless for solo practitioners as well as some of the largest law firms in the world, whether they’re using our software or a partner’s.
  • Build Scalable Systems: We’re building event-sourced, reactive systems that must stay scalable and manageable.
  • End-to-End Security: Keeping data secure is critical to our business and to maintaining the trust of our customers.
  • Build a Partner Ecosystem: We’re making integrations quicker and easier to grow our list of 70+ integrated partners.

What You'll Do

  • Continuously deliver quality, secure, and high-availability APIs for both internal customers and partners in a timely manner
  • Plan solutions for business needs and technical problems through unambiguous, comprehensive, and forward-thinking software designs
  • Develop message-based APIs for asynchronous command and domain event processing and REST APIs.
  • Research and propose new technologies, industry trends, and best practices to propel our team and product forward
  • Coordinate with DevOps and Quality Engineers to facilitate containerized software deployments; including debugging and troubleshooting
  • Work in a close-knit team environment to achieve engineering goals and make a difference
  • Mentor and proactively lead in areas of expertise within team and engineering organization
  • Learn and develop expertise in Scala functional programming and related frameworks

About You

  • Bachelor’s degree in Computer Science or Engineering
  • Experience with professional software development through server-side programming languages (e.g. Scala, Java, Python)
  • Demonstrates strong software design and problem solving skills and is open to learning new programming languages, design patterns, and technologies
  • Experience monitoring and debugging large-scale solutions in cloud-based environments such as AWS, GCP, Microsoft Azure, etc.
  • Experience developing scalable and performant database structures in SQL and RDBMS environments
  • Experience with event sourcing systems utilizing streams and messages
  • History of assisting with deployment activities; experience with containerized applications, such as Kubernetes, is preferred
  • Desire to contribute and participate in our culture of continuous improvement
  • Sees the importance of strong teamwork and effective communication

Nice to Have:

  • Knowledgeable in Scala frameworks, tools, and utilities such as Akka/Pekko, Slick, and Cats
  • Practical experience with Apache Kafka is preferred while experience using AWS Kinesis, GCP Pub/Sub, AMQP, or other relevant systems is acceptable
  • Practical experience with AWS RDS (MySQL or Postgres engines) is preferred while experience using other RDBMS is acceptable
  • Knowledgeable in datastores utilizing json data structures
  • Practical experience deploying environments using Linux, Docker, EC2, and/or Kubernetes (experience with Helm is a plus)
  • Familiarity with distributed programming techniques
  • Familiarity with security-related development practices and cross-domain API access
  • Experience with Java’s Spring framework
  • Experience writing JSON:API payloads is a plus
  • Experience using Prometheus library for the tracking of metrics