Software Engineer, Distributed Systems

Figma Figma · Enterprise · Canada +1 · Engineering

Software Engineer on the Infrastructure team at Figma, responsible for designing, building, and operating scalable and reliable distributed systems that power Figma's collaborative design platform. The role involves architecting storage, streaming, and compute orchestration systems, improving developer experience, and ensuring system resilience and performance. While AI is mentioned as a feature of the platform, this role is focused on the underlying infrastructure, not AI model development or deployment.

What you'd actually do

  1. Design, build, and maintain scalable and reliable infrastructure systems that support product innovation and user collaboration at scale.
  2. Architect and evolve distributed systems including storage platforms, streaming infrastructure, and compute orchestration.
  3. Improve developer experience by building internal platforms, CI/CD systems, build tools, and APIs.
  4. Collaborate across product and infrastructure teams to design secure, maintainable, and performant systems.
  5. Participate in shaping platform strategy, roadmaps, and engineering best practices across the organization.

Skills

Required

  • Distributed systems concepts (sharding, replication, consistency, eventual convergence)
  • Cloud-native environments (AWS, GCP, or Azure)
  • Infrastructure-as-code
  • Container orchestration
  • Go
  • TypeScript
  • Python
  • Rust
  • Ruby
  • System design
  • Backend engineering
  • Infrastructure engineering
  • Communication skills
  • Mentoring

Nice to have

  • Scaling storage platforms (Postgres, Redis, S3, DynamoDB)
  • Operating streaming systems (Kafka)
  • Traffic management
  • DDoS mitigation
  • Service mesh technologies (Envoy, Istio)
  • Realtime distributed systems at scale
  • Developer productivity tools
  • Development environments
  • CI/CD pipelines
  • Build systems
  • Large-scale, shared developer platforms
  • Problem-solving
  • Bias for action

What the JD emphasized

  • 5+ years of Software Engineering experience, specifically in backend or infrastructure engineering.
  • Deep understanding of distributed systems concepts such as sharding, replication, consistency, and eventual convergence.
  • Experience with cloud-native environments (AWS, GCP, or Azure), infrastructure-as-code, and container orchestration.
  • Proficiency in languages such as Go, TypeScript, Python, Rust, or Ruby.
  • Strong system design skills and a track record of architecting resilient production systems.