Senior/Staff Software Architect (AIoT SoC Platform)
JOB DESCRIPTION:
Define software architecture, subsystem decomposition, and functional allocation for AIoT SoC platforms.
Develop and maintain Software Requirements Specifications (SRS), software architecture documents, interface specifications, and requirements traceability.
Analyse evolving requirements from hardware architects, product marketing, software teams, and customer use cases, and translate them into actionable software requirements
Perform architectural feasibility studies, software prototyping, and technology evaluations to validate design decisions and mitigate technical risks.
Collaborate closely with field teams, product marketing, and system validation teams to understand customer use cases and ensure architectural alignment.
Drive architectural reviews and provide technical leadership throughout software implementation, integration, verification, and validation phases.
Review software designs, test plans, source code, and verification results to ensure compliance with architectural requirements.
Partner with hardware architects to determine optimal hardware/software partitioning and recommend trade-offs between software and hardware implementations.
Define and enforce software architecture standards, development methodologies, coding guidelines, and best practices.
Lead performance, memory utilization, boot-time, and power optimization initiatives.
Support system-level debugging, root-cause analysis, and resolution of complex software and hardware interaction issues.
Collaborate effectively across global and cross-functional teams to achieve project objectives and product milestones.
Mentor engineers and provide technical leadership across multiple software development teams.
JOB REQUIREMENTS:
Bachelor's or Master's degree in Electrical Engineering, Computer Engineering, Computer Science, or a related field.
10+ years of experience developing embedded software for real-time environments, including bare-metal and RTOS-based systems.
Strong proficiency in C/C++ and low-level embedded software development. Experience with assembly language programming is a plus.
Experience developing software on ARM Cortex-M, Cortex-A, and/or RISC-V architectures.
Proven experience defining software architecture, requirements specifications, and system-level designs for embedded products.
Strong understanding of RTOS concepts, including scheduling, synchronization, interrupt handling, inter-task communication, and resource management.
Experience writing software requirements and architecture specifications with consideration for customer use cases, derived requirements, verification, and testability.
Experience with FPGA-based emulation platforms, silicon bring-up, and full-system reference designs.
Strong understanding of memory architectures and Memory protection and isolation mechanisms
Familiarity with embedded development tools, debuggers, compilers, and IDEs.
Strong analytical, communication, and problem-solving skills.
Ability to independently manage priorities, drive technical initiatives, and deliver results with minimal supervision.
Proven ability to thrive in a small, agile engineering team, taking initiative, prioritizing tasks and handle evolving technical challenges, with a strong sense of ownership and accountability from design through validation and delivery.
