We are looking for a professional Embedded Software Engineer to design, develop, test, and maintain software for embedded systems and devices, ensuring efficient and reliable operation, often involving hardware-software integration and optimization for specific machine functionalities.
Responsibilities
Software Design and Development:
- The job is to create the Software for the Scientific Instruments, for control and report programs.
- Analyzing system requirements and translating them into software specifications.
- Designing, coding, testing, and debugging software for embedded systems.
- Developing algorithms and data structures to optimize performance and efficiency.
- Ensuring software meets performance, reliability, and security standards
Hardware-Software Integration:
- Collaborating with hardware engineers to integrate software with specific machine hardware.
- Understanding the interaction between software and hardware to optimize performance.
- Testing the integration of software and hardware to ensure functionality.
Testing and Debugging:
- Developing and executing test plans to ensure software quality and reliability.
- Identifying and resolving software bugs and issues.
- Performing performance testing and optimization to ensure efficient operation.
Documentation:
- Creating and maintaining clear and concise documentation for software and systems.
- Documenting software architecture, design, and implementation details.
Problem-Solving and Innovation:
- Identifying and solving complex technical problems related to embedded systems and software.
- Staying up to date with the latest technologies and trends in embedded systems and software development.
- Contributing to the improvement and innovation of machine software and systems.
AI Functionality:
- Analyze sensor data in real-time to identify patterns.
- Predict potential anomalies (e.g., leaks, clogs, irregular pressure drops).
- Recommend optimal pressure settings based on historical data and live readings.
AI Workflow Optimization:
- Streamline experimental processes by automatically adjusting pressure in response to trends.
- Reduce the need for manual intervention, enhancing efficiency.
- Continuous Improvement.
Utilize ongoing data logging to improve predictive accuracy using AI
- Adapt AI capabilities to specific materials or experiment types over time.
- Enhance system reliability and user-friendliness.
- Reduce researcher workload and provide valuable insights that may be overlooked in manual monitoring.
Requirements and skills
- Proven working experience in software engineering
- BS degree in Computer Science or Engineering
- Experience in hands-on development and troubleshooting on embedded targets
- Solid programming experience in Java, C and C++, along with familiarity with platforms like, Arduino IDE, Keil, MPLAB, Visual Studio.
- Proven experience in embedded systems design with preemptive, multitasking real-time operating systems
- Familiarity with software configuration management tools, defect tracking tools, and peer review
- Excellent knowledge of OS coding techniques, IP protocols, interfaces and hardware subsystems
- Adequate knowledge of reading schematics and data sheets for components
- Strong documentation and writing skills