Backend Elixir Engineer (Chicago, IL or Remote)

Introductory paragraph

Backend Elixir Engineer position in payments space.

About us

My name: Gabriel Taylor Russ
My position: Engineering Manager
Company name: CityBase
Job Post:
Country: USA
Company info and history:

At CityBase, we’re building a suite of products for governments and utilities that facilitate richer, more consistent and more accessible interactions with their customers and constituents. Very often these interactions involve processing payments. We’re using Elixir to build microservices that enable us to fulfill this mission. Our services either form part of our public GraphQL API or subscribe to messages on our event bus, responding to requests from other internal services.

We’re partnered with some of the largest cities in the US and growing rapidly.

About the job

Job title: Backend Engineer

Job description


  • Design, build, test, deploy and maintain applications for the delivery of digital services and payments
  • Contribute to the evolution of the platform through architectural design
  • Develop standards, tools, processes, libraries, and frameworks that facilitate the development of reliable, secure, performant and consistent services
  • Embrace opportunities to contribute across projects and languages outside your comfort zone
  • Identify and resolve issues related to scalability and performance
  • Coach and mentor other developers

Salary range: 60k - 130k depending on experience

Position on remote work:

We :heart: remote and are growing our remote capacity! We typically hire remote candidates in North and South America, Western Europe or Africa (UTC -10 to UTC +2) as these areas facilitate the easiest collaboration with our home office in Chicago, IL, USA.

Qualifications or experience required:


  • 3+ years of professional software development experience with an object-oriented or functional programming language
  • An appreciation of functional programming and a strong desire to become an expert in Elixir
  • Experience working with relational databases at scale

Nice to have

  • Understanding of the challenges inherent in concurrent and distributed systems and strategies for managing them
  • Deep knowledge of microservice architecture patterns and anti-patterns
  • Experience with GraphQL
  • Experience with stream processing
  • Familiarity with Linux, Git, Docker, and AWS
  • Demonstrated professional experience with Elixir and/or Ruby

What the successful job applicant will be working on:

The successful applicant will join a team of experienced developers to work on delivering a scalable payments service that processes many millions of dollars per day. The work is a mixture of greenfield projects and maintaining and extending existing services.

About the interview process

Once we’ve received your resume, we’ll assess whether your skills and experience align well with the challenges we’re working on at CityBase. If it looks like a good fit, we’ll arrange a call with someone for the recruitment team to talk about how your goals and experience align with CityBase and with one of our senior Elixir developers. Through your discussion with our dev team you with an opportunity to ask us questions about the company, work environment, projects, teams and anything else about CityBase that piques your curiosity. We’ll also cover some basic technical questions to verify your experience.

We next offer two paths forward.

If you have made open source code contributions that you feel are a good representation of your skills and experience then we’ll ask you to send us some repos, PRs or specific commits that we can review. This path, our preferred method of assessing your skills, recognizes that your time is finite and valuable, that open source is an integral part of our stack at CityBase and the value of open source software to society.

If you have not yet had the opportunity to contribute to open source, we’ll be happy to send you a programming task that will take a couple of hours to complete and give you an opportunity to demonstrate your knowledge in the programming language in which you are most confident. It need not be Elixir as we understand that not everyone excited about Elixir has had an opportunity to work professionally in the language.

In either case we’ll take 2 to 3 days to assess your code and get back to you about next steps.

The third stage is a series of back to back video or in-person interviews, primarily with engineers and product managers, designed to give you the best sense of the culture and to challenge your skills in designing complex systems, comprehending and refactoring code, communication and collaboration.

Our assessments are NOT algorithmic whiteboard exercises. We’re interested in seeing how you solve problems and communicate your thinking in a more realistic environment as we feel that gives us the most accurate picture of your skills.


Typically we respond to applicants within 8 business hours of receiving their application to organize an initial discussion at a time convenient to them within 5 business days.
We try to organize the remaining stages quickly after that.

After each stage we endeavor to respond to the applicant within 8 business hours about next steps. The code review portion of the process can take slightly longer, but we’re committed to getting back to you within 3 days for that portion.

Further Info

View the full job description and apply on our website