B&A
Ambiq Micro, Inc.
Arquitecto de Software
Acerca de la empresa
Ambiq tiene la misión de habilitar la inteligencia en todas partes, impulsando la revolución de la IA en el borde con las soluciones de semiconductores de menor consumo del mundo.
Construidos sobre nuestra tecnología patentada sub- y cerca del umbral, nuestros chips ofrecen mejoras múltiples en la eficiencia energética sin un escalado de proceso costoso.
Desde 2010, hemos enviado más de 300 millones de unidades a clientes que construyen wearables más inteligentes, dispositivos médicos, productos IoT y aplicaciones de borde impulsadas por IA.
Nuestros equipos multifuncionales abarcan diseño, investigación, desarrollo, producción, marketing, ventas y operaciones en Austin, Hsinchu, Shanghái, Shenzhen y Singapur.
Nos movemos rápido, abordamos problemas difíciles y creamos espacio para que las personas crezcan a través de un trabajo complejo y significativo que da forma al futuro de la tecnología.
Buscamos solucionadores de problemas creativos y automotivados que estén ansiosos por superar los límites tecnológicos y tener un impacto real en la eficiencia energética.
En Ambiq, vivimos según cinco valores: Innovar. Colaborar. Enfocarse. Aprender. Lograr.
Si ese eres tú, únete a nosotros: la revolución de la inteligencia en todas partes comienza aquí.
Alcance
Como Arquitecto de Software en Ambiq, usted impulsará la arquitectura de software y los requisitos para nuestra última familia de MCUs de IA de bajo consumo para el borde. Como Arquitecto de Software, trabajará en estrecha colaboración con nuestros arquitectos de hardware SoC, marketing de producto y nuestros proveedores de IP para desarrollar asignaciones funcionales sólidas y requisitos para nuestros equipos de desarrollo de software y pruebas de sistemas. El rol cubrirá las áreas de comunicaciones multiprocesador, aceleración de movimiento de datos, gestión de memoria virtual, asignación dinámica de recursos, optimización de energía y herramientas de depuración. Estará integrado en los equipos de desarrollo de software de Ambiq como experto en la materia durante el desarrollo del producto.
Este puesto será presencial 5 días a la semana en NW Austin. Se debe tener derecho a trabajar en EE. UU. sin patrocinio de visa ahora o en el futuro.
Cualificaciones
El candidato seleccionado tendrá una amplia experiencia en el proceso de desarrollo de software en sus primeras etapas. El candidato debe tener una sólida experiencia en programación de software embebido en procesadores ARM Cortex-M utilizando RTOS. Deben estar familiarizados con los métodos de asignación funcional, trazabilidad de requisitos, contenido de la Especificación de Requisitos de Software y análisis de hacer vs. comprar para software comercial y de código abierto.
- Una Licenciatura en Ciencias o Maestría en Ingeniería Eléctrica, Ingeniería Informática o Informática.
- 12+ años de experiencia desarrollando software embebido para entornos en tiempo real (bare metal y RTOS).
- Experiencia en desarrollo de código en C/C++ y lenguaje ensamblador para objetivos embebidos utilizando procesadores ARM Cortex-M.
- Experiencia en la redacción de especificaciones de requisitos de software con un enfoque en casos de uso del cliente, requisitos de software derivados y capacidad de prueba en plataformas de emulación basadas en FPGA, así como en diseños de referencia de sistemas completos.
- Experiencia con sistemas multicore asimétricos e interacción de planos de control/datos, incluida la comunicación entre procesadores a través de frameworks de mensajería de procesadores remotos (por ejemplo, OpenAMP o RPMsg).
- Experiencia con motores de movimiento de datos de propósito general, unidades de gestión de memoria, protección de memoria, cachés L1/L2, memorias compartidas y memorias de doble puerto.
- Familiaridad con al menos un IDE de MCU en Windows de ARM/Keil, IAR, Eclipse o similares.
- El candidato debe ser capaz de gestionar de forma independiente las tareas asignadas, priorizar la carga de trabajo y cumplir los plazos con una supervisión mínima. Las habilidades proactivas de resolución de problemas y la capacidad de buscar aclaraciones cuando sea necesario son esenciales.
Responsabilidades
- Análisis de requisitos basado en información dispar y preliminar del equipo de arquitectura de hardware SoC, marketing de producto, otros arquitectos de software y equipos de desarrollo de software, lo que resulta en contribuciones a una especificación de requisitos de software para el dispositivo. Esto debe incluir cualquier prototipo de software necesario para refinar la comprensión arquitectónica y los requisitos.
- Trabajar en estrecha colaboración con nuestros equipos de campo, marketing de producto y pruebas de sistemas para comprender los casos de uso de nuestros clientes Alpha y su impacto en los requisitos y la capacidad de prueba.
- Participar durante las fases de implementación y prueba de software para revisar diseños, planes de prueba, código y resultados de casos de prueba como experto en la materia para ciertos aspectos de la arquitectura de software del SoC.
- Soporte para la optimización de rendimiento y energía de las áreas de las que usted es responsable.
- Definir y aplicar estándares, directrices y mejores prácticas arquitectónicas.
- Colaborar con equipos multifuncionales para alinear las decisiones arquitectónicas con los objetivos comerciales generales.
- Diagnosticar y resolver problemas técnicos complejos y recomendar compensaciones entre implementaciones de software y hardware.
- Colaborar eficazmente con equipos multifuncionales para lograr los objetivos del proyecto.
- Mentorizar y guiar a los miembros junior del equipo.
- La experiencia en optimización de energía para sistemas embebidos es deseable.
Familiaridad con el escalado de voltaje y frecuencia, el apagado de reloj, los ciclos de suspensión/despertar y los modos de bajo consumo de procesadores y periféricos.
- Se prefiere familiaridad con Trust Zone para microcontroladores de clase M y/o Trusted Firmware para microcontroladores.
- Se prefiere experiencia con gráficos, pantallas y procesamiento de audio/video en sistemas embebidos.
