Job Title: Software Engineer – USB based software development (Windows & Mac)

We are seeking a highly skilled and detail-oriented Software Engineer with expertise in USB communication and real-time data processing. The ideal candidate will have in-depth knowledge of USB protocols, descriptors, enumeration, and device management, along with experience in developing robust solutions for high-speed USB bulk data transfer and HID communication. You will be responsible for designing, implementing, and troubleshooting USB data pipelines, and providing APIs for UI applications to interact seamlessly with USB devices. Experience with other serial communication protocols (I2C, SPI) is a plus.

Position Overview:
As a Software Developer specializing in GUI development for both Mac and Windows platforms, you will play a pivotal role in designing and implementing user interfaces that enhance the usability and functionality of our software products. Your primary responsibility will be to create intuitive and visually appealing GUIs, with a strong emphasis on USB integration to facilitate user interaction with USB-connected devices.

Key Responsibilities:

      • Design, develop, and maintain software for USB communication on Windows and Mac platforms.

      • Implement high-speed USB bulk data capture and efficient command transmission through the HID interface.

      • Develop and maintain APIs for UI applications to access USB data and manage USB command flows.

      • Troubleshoot and resolve complex USB-related issues, including real-time data processing and communication failures.

      • Analyze USB descriptors, manage device enumeration, and ensure proper USB device handling.

      • Collaborate with cross-functional teams to integrate USB solutions into broader software ecosystems.

      • Optimize USB communication protocols for reliability, efficiency, and performance.

      • Document system designs, interfaces, and troubleshooting guidelines.

      • Provide technical expertise in other serial communication protocols (I2C, SPI) as needed.

    Qualifications:

      • Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, or a related field.

      • 5+ years of experience in software development with a focus on USB communication on Windows and MacOS.

      • Strong proficiency in C/C++ or other low-level programming languages.

      • Deep understanding of USB protocols (USB 2.0/3.0/3.1), descriptors, enumeration, and device management.

      • Experience with USB bulk transfer and HID interface implementations.

      • Proven ability to troubleshoot and root-cause USB-related issues, including real-time data capture and analysis.

      • Experience developing APIs for USB data access and command control.

      • Familiarity with I2C, SPI, and other serial protocols is a plus.

      • Strong problem-solving skills and attention to detail.

      • Excellent communication and collaboration abilities.

    Preferred Skills:

      • Experience with USB device driver development.

      • Knowledge of cross-platform development frameworks.

      • Familiarity with kernel-level debugging and performance profiling.

      • Experience with agile development methodologies.

    Why Join Us:

      • Be a foundational member of a startup with immense growth potential.

      • Work on cutting-edge projects in serial communication and FPGA development.

      • Gain exposure to all aspects of product development, from design to deployment.

      • Flexible work environment with opportunities for continuous learning and growth.

      • Competitive, project-based compensation based on your contributions.

    If you meet the skills, experience and education requirements, we want to hear from you!

    To apply,
    – Include Job #: FE-341567
    – please submit your resume detailing relevant experience to
                                                                                                            contact@icedatech.com