Software Engineer -Platform & Middleware
Applied Materials View all jobs
- Toronto, ON
- Permanent
- Full-time
- Design and develop large scale, complex software solutions platform and runtime level architecture
- Own the architecture and technical direction for enabling Android NDK based native components to operate in Linux environments outside of Android, including defining supported runtime behaviors, APIs, and explicit architectural boundaries.
- Design constrained compatibility layers and middleware, such as JNI-like shims and host side service abstractions, to selectively reimplement required runtime functionality while avoiding full platform or runtime reimplementation.
- Develop well scoped, forward looking API surfaces, including the development of new middleware and APIs to support novel platform features.
- Troubleshoot and resolve issues spanning application, runtime, ABI, and Linux system layers; develop appropriate diagnostics and validation strategies.
- Communicate technical scope, roadmap, risks, and trade-offs to internal stakeholders and external customers, ensuring alignment on platform capabilities and limitations.
- Identify resourcing gaps and leverage external contractors or vendors when appropriate, providing technical leadership to ensure quality, alignment, and successful integration.
- Bachelor’s degree in Computer Science, Software Engineering, Systems Engineering, or a related field
- Typically 10–15 years of relevant software engineering experience
- Demonstrated technical leadership and ownership of complex, cross functional software initiatives‑functional software initiatives
- Deep understanding of Android execution architecture, including Android NDK and ABI concepts, ART runtime responsibilities (threading, memory management), and JNI semantics and lifecycle constraints.
- Strong experience with Linux systems programming in C/C++, including threading and synchronization, dynamic linking and shared libraries, ELF binaries, and ABI compatibility.
- Proven experience designing platform middleware and constrained compatibility layers, including selectively reimplementing runtime behaviors to enable native code portability.
- Demonstrated ability to design and evolve well defined, stable API surfaces, including development of new middleware and platform capabilities beyond those provided by existing platforms such as Android.
- Ability to define, document, and communicate architectural boundaries, supported behaviors, and intentional limitations, balancing delivery needs with maintainability.
- Experience determining appropriate resourcing strategies, including establishing internal capability or leveraging external contractors or vendors, and providing technical leadership to ensure engineering quality and alignment.
- Experience with Android internals, AOSP, or system-level Android components.
- Familiarity with IPC mechanisms (e.g., Binder concepts or Linux alternatives).
- Experience porting or architecting software across heterogeneous runtime environments, including defining new abstractions where direct platform equivalents do not exist.
- Background in developer tooling, diagnostics, or debuggability for complex native or runtime level systems.
- Experience prototyping Android applications and familiarity with Android UI frameworks