As an Embedded Software Engineer, you will be responsible for designing and implementing software for embedded devices and systems. You will play a key role in the entire software development lifecycle, from requirements gathering to production and commercial deployment. Your primary responsibilities will include: - Designing, developing, coding, testing, and debugging system software - Reviewing code and design for quality assurance - Analyzing and enhancing efficiency, stability, and scalability of system resources - Integrating and validating new product designs - Supporting software QA and optimizing I/O performance - Providing post-production support - Interfacing with hardware design and development teams - Assessing third-party and open-source software for integration To excel in this role, you should possess the following qualifications: - Proven working experience in software engineering - BS degree in Computer Science or Engineering - Hands-on development and troubleshooting experience on embedded targets - Solid programming skills in C or C++ - Experience in embedded systems design with preemptive, multitasking real-time operating systems - Familiarity with software configuration management tools, defect tracking tools, and peer review processes - Excellent knowledge of OS coding techniques, IP protocols, interfaces, and hardware subsystems - Adequate understanding of reading schematics and data sheets for components - Strong documentation and writing abilities This position offers an exciting opportunity to work on cutting-edge technologies such as AVR, 8051, ESP32, Raspberry Pi, ESP8266, and HTML. If you are passionate about embedded systems and software development, this role is ideal for you.,