Description
Adobe is looking for a Computer Scientist-II with deep C++ expertise who enjoys solving complex technical problems and taking ownership of significant areas of the product. You will develop architecture, build high-performance software, make critical technical decisions, and influence solutions that span modules and groups.
Responsibilities
- Take responsibility for and develop significant technical areas end-to-end , from understanding ambiguous problems and defining the right solution through architecture, implementation, production validation, and long-term evolution.
- Design and build high-performance C++ systems, making thoughtful decisions around architecture, concurrency, memory management, resource utilization, and scalability.
- Drive technical direction for complex problems , evaluate alternatives, make pragmatic tradeoffs, and influence architecture decisions across components and teams.
- Solve problems at the root , identify systemic causes rather than treating symptoms, and drive durable solutions that reduce recurring issues and technical debt.
- Own outcomes, not just tasks , proactively identify gaps, risks, and opportunities and drive them to closure with little supervision.
- Solve complex problems across boundaries, collaborating with engineers, architects, product managers, and other teams to deliver cohesive solutions.
- Raise the engineering bar through architecture and code reviews, performance optimization, testing, and engineering guidelines.
- Build for operational excellence with strong focus on performance, reliability, security, observability, maintainability, and efficient resource utilization.
- Be a force multiplier , mentor engineers, share technical expertise, and establish patterns and practices that improve the broader engineering organization.
- Leverage AI-assisted engineering to speed up development and problem solving, improve engineering workflows, and increase team efficiency.
Requirements
- B.Tech/M.Tech in Computer Science or a related field, or equivalent practical experience.
- 7+ years of hands-on software engineering experience, with a strong track record of owning and delivering complex technical solutions.
- Deep expertise in C++, including modern C++, memory management, concurrency, multithreading, STL, and performance optimization.
- Strong foundation in data structures, algorithms, object-oriented design, operating systems, and computer science fundamentals.
- Strong understanding of systems design, distributed systems, concurrency, scalability, and performance engineering.
- Experience designing and building large-scale, high-performance software systems.
- Experience building or operating Distributed systems at scale, with an understanding of multi-tenancy, scaling, reliability, backward compatibility, security, observability, and managing system resources.
- Strong experience with performance analysis and optimization, including profiling CPU, memory, I/O, latency, and resource utilization.
- Experience with cloud platforms, distributed infrastructure, and modern software development practices.
- Strong proficiency in AI-assisted engineering, bringing to bear tools such as Claude, Codex, or Copilot to accelerate development, improve problem solving, and enhance engineering efficiency.
- Strong technical judgment and problem-solving ability, with the ability to navigate ambiguity and influence technical decisions across teams.
What Success Looks Like
- Own and evolve major technical domains with minimal direction and strong technical judgment.
- Turn ambiguous, complex problems into clear technical direction and executable solutions.
- Make architecture decisions that balance efficiency, expandability, dependability, maintainability, and long-term evolution.
- Solve systemic problems at their root and eliminate recurring sources of complexity, performance issues, and operational risk.
- Influence technical direction across teams and organizational boundaries through technical depth and credibility.
- Deliver solutions that materially improve performance, scalability, reliability, quality, or developer productivity.
- Raise the technical bar through mentorship, design leadership, and engineering practices that benefit the broader organization.