Job Description : Software Engineer II – Embedded Systems & DevOps Location: Onsite (Makati) Employment Type: Full-time Experience Level: Mid-level (4–5 years) About the Role We are looking for a Software Engineer II with strong experience in embedded systems development and DevOps engineering. This hybrid role is ideal for an engineer who is passionate about building robust embedded platforms while also ensuring seamless, automated build, deployment, and integration pipelines. You will work closely with our Embedded, Connectivity Platform, and DevOps teams to design, implement, test, and deploy embedded software across connected devices. This role also contributes to maintaining and improving our CI/CD and OTA update pipelines for field-deployed hardware. Key Responsibilities Embedded Software Development ● Develop, debug, and optimize firmware for STM32 or similar microcontrollers. ● Implement device drivers, communication stacks (e.g., UART, SPI, I2C, CAN), and network protocols (e.g., Wi‑Fi, TCP/IP, MQTT). ● Collaborate on architecture design and embedded software roadmaps. ● Write clean, well-documented, testable C/C++ code following industry best practices. ● Support hardware bring-up, board testing, and integration with peripheral components. DevOps & CI/CD ● Contribute to maintaining and enhancing CI/CD pipelines for embedded systems (build, test, static analysis, deployment). ● Automate firmware packaging and OTA update workflows. ● Manage build systems and toolchains (e.g., CMake, Make, GCC/Clang, ARM toolchain). ● Monitor and improve system reliability, build performance, and development workflows. ● Collaborate with Cloud/Platform teams for device provisioning and secure deployments. Cross-functional Collaboration ● Work with US-based engineering teams in Agile/Scrum cycles (2‑week sprints). ● Engage with Product, QA, and Platform teams to understand requirements and deliver high-quality software. ● Participate in code reviews, architectural discussions, and technical planning. Qualifications Required ● 4–5 years of hands-on experience in embedded systems development. ● 2–3+ years of DevOps/CI/CD experience (embedded-focused is ideal). ● Proficiency in C/C++ for embedded development. ● Experience with STM32 or similar ARM Cortex‑M MCU families. ● Familiarity with embedded communication protocols and RTOS (e.g., FreeRTOS). ● Experience with Git, versioning workflows, and automated build/test pipelines. ● Strong understanding of Linux-based development environments. Preferred ● Experience with Yocto, Zephyr, or other embedded Linux frameworks. ● Knowledge of device connectivity: Wi‑Fi modules, cloud provisioning, IoT protocols, secure onboarding. ● Experience with OTA update systems. ● Experience with Docker, Jenkins, GitHub Actions, or Azure DevOps. ● Familiarity with hardware debugging tools (e.g., JTAG/SWD). ● Scripting skills (Python, Bash) for tooling automation. Soft Skills ● Strong problem-solving and debugging abilities. ● Excellent communication skills interacting across distributed teams. ● Ability to handle complex technical challenges in fast-paced environments. ● Proactive mindset with ownership of deliverables.