Sr. Software Engineer - Transactions Platform at Twilio
San Francisco, CA, US
About the job:

Twilio's customers send millions of communications every day. These communications become a firehose of micro-transactions, processed at a fraction of a penny at a time. As a pay-as-you-go service, it's critical to external and internal customers that we bill transactions in a timely and accurate manner. As a shared platform within Twilio, we have a responsibility to ensure that our systems can quickly and easily scale to support new products and use-cases.

We're seeking engineers with experience in real-time data processing, micro-transactions, financial data, and have a passion for API design & REST. We build our services in Scala and Python, and use Spark to process our large-volume data. Redis also plays a key role as a tool to coordinate processing in our distributed environment.

Responsibilities:

As a member of the Real-Time Billing team, you'll have an opportunity to take on some of the most challenging problems in distributed computing, HTTP, data persistence, and more. We're looking for someone who writes quality, maintainable code in Scala or Python with thorough test coverage.

You'll have end-to-end ownership of the micro-transaction system that processes customer usage. You'll work directly with product management to define, architect, build, and test new internal and external facing services. As an owner-operator of our services, you'll also develop evaluation, monitoring, and roll-out plans to minimize operational risk and ensure that systems run smoothly from day one.

Requirements:

A Bachelors or Masters degree in Computer Science or Computer Engineering, or equivalent experience.
6+ years in industry as a developer working with critical systems.
Strong background in HTTP, distributed systems, and event-based data processing.
Deductive reasoning and problem solving skills.
Hands on. Passionate. Persistent. Creative.
Bonus points:

You have experience evaluating new technologies based on measured performance to solve real-world problems.
You have opinions about rounding below the penny.
You know what a sub-ledger is.
You know the right and wrong ways to partition data.
You have extended the existing Redis command set with Lua scripting.