Embedded Software EngineerThe Embedded Software Engineer is responsible for designing, developing, and maintaining software that operates directly on hardware systems. This role involves working closely with hardware engineers to ensure seamless integration and optimal performance of embedded systems.Job Specific RequirementsEmbedded C (mandatory)Bare-metal and RTOS-based firmwareARM Cortex-M microcontrollersInterrupt-driven architecturesDMA, timers, watchdogs, GPIO, UART, SPI, I2CBootloaders and firmware update systemsDebugging with J-Link/SWD/GDBLow-power firmware designSilicon Labs EFR32 family is ARM Cortex-M33 based, so Cortex-M experience matters directly.Wireless Protocol Expertise (Critical)Z-WaveProprietary sub-GHz protocolsMesh networkingLow-power wireless sensor networksRF coexistenceOTA firmware updates over wirelessEspecially valuable:Experience with Silicon Labs wireless SDKsExperience modifying MAC/PHY behaviorExperience implementing custom protocol layersSilicon Labs / Z-Wave Specific SkillsBecause this is not just generic embedded work.Strongly Preferred Experience with:Simplicity StudioSilicon Labs Gecko SDKSilicon Labs wireless stack APIsZ-Wave 700/800 seriesSmartStartS2 securityOTA DFU mechanismsZniffer packet analysisPTI packet tracingSecurity Skills (Increasingly Important) Modern wireless products require serious security awareness. Required or Preferred:Secure bootFirmware signingKey provisioningEncrypted OTA updatesSecure pairing/authenticationReplay protectionSecure storage of credentialsEspecially important if:HVACindustrialsmart homeaccess-controlinfrastructure marketsStrongly Preferred:Modular firmware architectureState-machine designEvent-driven systemsGit workflowsCI/CD for firmwareAutomated testingHardware abstraction layersDocumentation discipline