Job DescriptionPosition FunctionAs a Software Engineer, you will work closely with cross-functional teams to design, develop, and maintain high-quality software solutions. You will be responsible for solving complex problems, writing clean and efficient code, and ensuring the delivery of software that meets business requirements and user needs. This position is not eligible for employer-sponsored work authorization.
ResponsibilitiesKey Responsibilities- Collaborate with product managers, designers, and other engineers to gather requirements and design technical solutions.
- Write clean, efficient, and well-documented code following best practices and coding standards.
- Develop, test, and maintain software applications, ensuring high performance and responsiveness.
- Participate in code reviews, identifying areas for improvement and providing constructive feedback.
- Troubleshoot, debug, and optimize existing software applications.
- Contribute to software architecture discussions and technical decision-making.
- Ensure the scalability, security, and reliability of software solutions.
- Stay up to date with the latest industry trends, tools, and technologies.
- Continuously improve processes and workflows to increase the efficiency of the development team.
- Assist in the deployment, monitoring, and maintenance of applications in production environments.
QualificationsQualifications- Bachelor's degree in computer science, Engineering, or a related field (or equivalent work experience).
- Proven experience as a Software Engineer or similar role, with a strong portfolio of developed applications.
- Expertise in embedded programming, including proficiency in C++ and knowledge of assembly for microcontroller programming.
- Ability to read and interpret electrical schematics.
- Strong knowledge of microcontrollers and embedded systems.
- Understanding of hardware interfaces and communication protocols (e.g., UART, SPI, I2C, CAN, RS485).
- Strong understanding of algorithms, data structures, and software design patterns.
- Familiarity with version control systems (e.g., Git) and collaboration tools (e.g., GitHub, Bitbucket) for managing embedded software projects.
- Familiarity with web development frameworks, cloud platforms, and databases.
- Experience with testing frameworks and writing unit tests.
- Ability to work in an Agile development environment.
- Strong problem-solving skills and attention to detail.
- Proficiency in embedded software debugging and performance optimization using tools like oscilloscopes, JTAG, and logic analyzers.
- Excellent communication skills and ability to work well in a collaborative team setting.
- Knowledge of software development best practices and methodologies.
Skills- Experience with Microchip microcontrollers (e.g., PIC, dsPIC, or SAM series) and embedded system development.
- Knowledge of embedded security practices and securing communication between embedded devices.
- Familiarity with continuous integration/continuous deployment (CI/CD) pipelines.
- Experience in designing and optimizing APIs.
- Knowledge of cloud services (e.g., AWS, Azure, Google Cloud).
Additional Beneficial skills- Business development and product management background, with experience developing product plans and strategy work
- Gather the Voice of the Customer input and develop Customer Fitness for Use Criteria
- Collect and analyze feedback from customers, stakeholders, and other teams to shape requirements, features, and end products
- Develop product requirements and multi-year roadmaps
- Determine specifications, production timetables, pricing, and time-integrated plans for product introduction, through launch and commercialization
- Ensure products and releases are launched correctly and on schedule
Travel Required: No