Software Engineer, PaaS
(Staff) Software Engineer, PaaS
Group: Platform Engineering
Location: New York, San Francisco, Chicago
The Platform Engineering team is one of the most mission-critical engineering teams and is in charge of driving technology innovation across the organization. We design much of the computational and data-oriented platforms in use across different groups and tackle the tough scalability issues. In this role, you’ll be at the center of the team that empowers our business to examine the world and its markets in a way only possible thanks to your work.
Purpose of the role:
The Application Architecture team is responsible for the overall developer experience at Citadel. Our PaaS, integrated development and deployment framework, and associated core services making up the nervous system of our distributed systems is engineered and maintained by this critical team. As a member of this team, you will have a hand in the design and development of several core services offered through a PaaS-like experience – large-scale compute and container runtimes, observability platforms, caching, data-stores, service discovery, secrets, and an integrated development and deployment pipeline. You will help develop and shape the future of Citadel's next-generation applications and next-generation application development environment.
As a Software Engineer in the Application Architecture team, you will be an agile architect in the design, development, and support of our application platform responsible for providing a fully integrated developer experience for our various PaaS-like scalable platforms. The ideal candidate will be passionate about building intelligent services and platforms that drive towards invisibility of infrastructure, involving deep knowledge of our platforms as well as our various use-cases. You are both a generalist, capable of picking up and working with multiple, disparate systems, and an expert, having an ability to dive deep into specific topics and quickly master them.
- Serve as a primary point responsible for the overall architecture, features, and capabilities of our business-facing platforms
- Gain deep knowledge of our complex platforms, business applications, and use-cases
- Assist in the roll-out and deployment of new platforms or features to facilitate our rapid iteration and continuous improvements
- Work closely with SRE teams to ensure that platforms are designed with “operability” and “usability” in mind
- Function well in a fast-paced, rapidly changing environment
- B.S. (M.S. preferred, and Ph.D a plus) in Computer Science, Engineering, Physics, or Mathematics
- Developer background with strong experience in two or more of C++, Java, Python, or Node.js
- 5+ years in a Linux-based large-scale systems role
- Experience with distributed event-driven systems, message-based architectures, and gRPC-based services, highly observable (metrics) services, etc.
- Experience building self-service APIs and tuning, sharding, and partitioning systems to auto-manage platforms at scale
- Knowledge of most of these: data structures, relational and non-relational data-stores, distributed systems, large codebase and build management (e.g. Bazel), and related topics
- Experience in containerizing applications and services a plus
- Experience using AWS or GCP at scale a plus
- Commits to Apache projects (Kafka especially) would be a huge plus
- Strong interpersonal communication skills and ability to work well in a diverse, team-focused environment with other SREs, SWEs, product managers, etc.