Job Summary: You will be a member of a small, dynamic team that has global impact every day with its state-of-the-art asset-tracking systems by designing, developing, and maintaining software for embedded systems using AssetLink’s unique codebase. You’ll work closely with our hardware engineers, product manager, and customers to design and implement unique solutions to difficult problems associated with the monitoring and control of remote, mobile systems. Our products need to work flawlessly in varying, extreme conditions – your attention to detail, high standards, and forward-thinking design philosophy will ensure high-quality, reliable, and efficient software solutions for our embedded hardware/firmware/software offerings.
Key Responsibilities:
- Software Development: Design, implement, and test embedded software for microcontrollers and microprocessors using AssetLink’s specialized codebase. Develop code in relevant languages, and ensure it meets system requirements and performance criteria.
- System Integration: Collaborate with hardware engineers to integrate software with hardware components. Debug and troubleshoot issues related to both software and hardware interactions.
- Requirements Analysis: Gather and analyze system requirements and specifications. Translate them into detailed software design documents and implementation plans.
- Performance Optimization: Optimize software for performance, memory usage, and power consumption. Conduct profiling and analysis to identify and resolve bottlenecks.
- Testing and Validation: Develop and execute test plans, including unit tests, integration tests, and system tests. Ensure software reliability and robustness through rigorous testing procedures.
- Documentation: Create and maintain comprehensive documentation, including design specifications, user manuals, and test reports. Ensure documentation is clear and accessible to team members and stakeholders.
- Collaboration: Work closely with cross-functional teams to ensure seamless integration of software into final products. Provide technical support and guidance to other team members as needed.
- Continuous Improvement: Stay up-to-date with industry trends, emerging technologies, and best practices. Continuously seek opportunities to improve development processes and software quality.
Qualifications:
- Education: Bachelor’s degree in Computer Science, Electrical Engineering, or a related field. A Master’s degree is a plus.
- Experience: Minimum of 3 years of experience in embedded software development. Proven experience with embedded systems, real-time operating systems (RTOS), and microcontroller/microprocessor architectures.
- Technical Skills:
- Proficiency in multiple computer languages including C.
- Experience with debugging tools and techniques (e.g., oscilloscopes, logic analyzers).
- Familiarity with communication protocols (e.g., UART, SPI, I2C, Modbus, CANbus/J1939).
- Understanding of software development lifecycle and version control systems (e.g., Git).
- Knowledge of hardware/software interfacing and low-level programming.
- Experience with POSIX/Linux operating systems, Raspberry Pi hardware, and scripting languages strongly desired.
Soft Skills:
- Strong problem-solving and analytical skills.
- Excellent communication and teamwork abilities.
- Attention to detail and a commitment to quality.
- Ability to work independently and manage multiple tasks effectively.
Job Type: Full-time
Pay: $80,000.00 - $110,000.00 per year
Benefits:
- 401(k) matching
- Dental insurance
- Flexible schedule
- Health insurance
- Paid time off
- Relocation assistance
- Vision insurance
Education:
Work Location: Hybrid remote in Jessup, PA 18434