JAVA, Scala, PHP, Clojure
Software Developer – Consumer Facing Application
Location: San Francisco, CA 94105
Our Core Services team builds, scales and maintains the software services which define the core components: identity, authentication, financial health, and related platform services. Our work directly impacts the lives of our users and the success of our business. As an engineer on our team, you will face some of the most difficult challenges in modern software engineering. The scale at which your systems must operate will require not only producing and using highly-performant algorithms and data structures, but also solving complex problems involving distributed systems and emergent behavior of service-oriented architecture. You will have the opportunity to work on and build highly-scaled distributed systems. Our infrastructure receives millions of requests per day, all with an uptime in excess of 99.9%. You and your fellow engineers will power the core of a system relied on every day by millions of people.
Build and maintain high-performance, fault-tolerant, scalable distributed software systems in the context of our service-oriented architecture.
Write code that is performant, maintainable, clear, and concise.
Improve the reliability and efficiency of our core systems.
Diagnose and troubleshoot complex distributed problems and develop solutions that have a significant impact at our massive scale.
Work cross-functionally with various engineering teams.
8+ years in the industry as a technical contributor.
Strong algorithms and data structures background.
Expertise in Scala, Java, Clojure, and/or any functional language. We code primarily in Scala and PHP, so you’ll be excited to either ramp up on those languages or continue building awesome things with them.
Experience with software engineering patterns and best practices (e.g. SOLID, hexagonal architecture, domain driven design, test driven development, design documentation, code reviews).
BS, MS, or PhD in Computer Science, or equivalent work experience
Experience with web infrastructure, distributed systems, performance analysis, and/or large-scale data processing.
Development experience on the JVM, including asynchronous I/O, concurrency, and the Java memory model.
A history of open-source contribution and a passion for development of elegant, well-designed frameworks.