Software Development Engineer at Adobe
On-site · Bengaluru East, Karnataka, India · full time
Practice the Software Development Engineer interview at Adobe with an AI interviewer: voice, live coding and a scorecard.
Skills the interview covers
- C++
- Node.js
- data structures
- algorithms
- REST APIs
- asynchronous programming
- object-oriented development
- performance optimization
- N-API
- infrastructure-as-code
About the role
Prototype, build, develop and unit-test scalable features to the highest quality across the stack — from performance-critical C++ core components to Node.js-based backend services and REST APIs. Build and refine high-throughput, low-latency C++ modules, drawing on deep knowledge of data structures, algorithms, memory management and concurrency. Write backend endpoints, define schemas, and compose data-flow pipelines; build cloud-based services and server-side frameworks that integrate seamlessly with native clients and web front ends. Build reusable code and libraries, and write high-quality, maintainable, and robust code across native and server-side layers. Plan, develop, monitor and evolve the needed infrastructure in collaboration with Ops partners, ensuring stability, security, and scalability in production. Perform code reviews, provide constructive feedback on coding techniques, and respond effectively to feedback from reviewers. Identify and fix performance, reliability, and scalability issues; respond to and support production systems as part of an engineering on-call rotation. Perform your own pre-deployment QA and implement comprehensive unit tests confirming the functionality and performance of new code. Collaborate in multi-functional teams across multiple geographies to ensure a superb end-to-end experience for customers. B.Tech / M.Tech in Computer Science or a related field from a premier institute, or equivalent extensive software development experience. 4+ years of hands-on experience in building and development, preferably in product companies, building and operating highly available services. Strong proficiency in C++, with a solid command of data structures, algorithms, object-oriented development, and performance optimization. Hands-on experience building and deploying server-side services with Node.js, including crafting REST APIs, defining schemas, and building data pipelines. Strong Node.js backend engineering — async, Promise-based service architecture, REST/WebSocket API development, and process lifecycle management for long-running daemons (crash recovery, IPC, auto-shutdown). C/C++ and Node.js native addon experience (N-API / node-gyp) — building native bindings that bridge JavaScript and performance-critical C++. Deep understanding of software fundamentals — develop principles, analysis of algorithms, data structure composition, documentation, and development guided by detailed testing — and the acumen to apply them. Technical depth in operating systems, computer architecture, and OS internals; strong grasp of architecture, development, and efficiency. Experience with operations, infrastructure-as-code, scalability, high availability, and security is a big plus. Understanding of and experience with LLMs and AI/ML application development. Working knowledge of agentic engineering tools and practices is required. These include AI-assisted development tools like Claude Code, GitHub Copilot, and Cursor. Candidates should use agentic frameworks to build reliable, performant, and scalable solutions with high efficiency and fast delivery. Ability to work proactively and independently with minimal supervision, strong ownership, and creative problem-solving skills. Excellent communication skills, willingness to work in a fast-paced environment, and a hunger to learn and succeed.