Software Development Engineer

Adobe Adobe · Enterprise · San Jose, CA

Software Development Engineer role focused on building scalable, performant, and resilient distributed systems for Adobe's Experience Platform (AEP). The role involves driving architectural direction, owning feature development, and evaluating technologies, with a mention of using AI for efficiency.

What you'd actually do

  1. Design and develop distributed services that are resilient, highly available, and scalable.
  2. Collaborate with business partners, architects, technical leads, product management and analysts to develop high-quality customer centric solutions.
  3. Guide multi-functional technical initiatives across related teams, establishing architectural direction for capabilities that cross service boundaries.
  4. Own feature development from inception to production rollout and postmortem & contribute to the development of engineering processes.
  5. Evaluate innovative technologies and incorporate them, heavily use AI for improved efficiency, productivity, quality and iterate faster.

Skills

Required

  • B.S. in Computer Science or related field, or equivalent experience
  • 8+ years of software engineering experience
  • highly maintainable, scalable systems development
  • Scala/Java or comparable, strongly typed language
  • Deep proficiency in Java or Scala
  • JVM memory management
  • GC tuning
  • thread scheduling
  • tail latency at high event rates
  • reason about system performance at scale
  • profile production systems
  • drive optimizations
  • architectural thinking
  • complex, multi-service systems
  • communicate tradeoffs

Nice to have

  • M.S. or equivalent practical depth
  • backend distributed applications on Java/JVM
  • Spring (or similar framework)
  • structured, focused approaches to solving technical, data, and logical problems

What the JD emphasized

  • extensive expertise in high-throughput, low-latency distributed systems
  • Deep proficiency in Java or Scala — including the runtime: JVM memory management, GC tuning, thread scheduling, and how allocation patterns affect tail latency at high event rates.
  • Proven ability to reason about system performance at scale — predict where a build breaks under load, profile production systems, and drive optimizations that improve real metrics.
  • Strong architectural thinking: understand complex, multi-service systems, identify where assumptions fail under scale, and communicate tradeoffs to technical and non-technical collaborators.