About BPM Microsystems and the Job
Imagine developing and supporting a world-class technology product required by every factory producing electronics in the world! BPM Microsystems produces the most advanced electronic device programming systems on the market. Our products are robotic high-speed instruments that load data patterns into flash memory chips and microcontrollers. Our customers include the world’s top manufacturers of smartphones, tier 1 automotive suppliers, aerospace electronics, consumer electronics, industrial and medical device suppliers as well as component distributors and independent programming centers. You may not know our name, but literally, billions of people depend on us every time they use their phones, computers, cars, or a wide variety of other electronic devices.
As an exceptional member of our fast-paced Software Engineering Team, you will be creating, testing and maintaining complex applications and embedded systems used to program billions of electronic devices. This is a hands-on challenging position that offers you the opportunity to contribute to the development of new and existing products within highly visible product lines. You will be expected to rapidly learn and understand these complex systems. You will be developing Windows-based applications and embedded software in C++ as well as controlling BPM Microsystems’ semiconductor programming equipment and robotic pick-and-place systems incorporating lasers, vacuum systems, and various machine vision technologies. You are energized by getting hands-on and inventing original solutions to complex problems and seeing it through to customer delivery.
Please note that this Software Engineer position is available for on-site work only in our Houston, TX office. Remote or telecommuting options are not available for this role.
- Support the Software Development Life Cycle by designing and developing new and current projects, directing system testing and validation procedures, and fixing defects.
- Communicate effectively with customers or departments to capture requirements for new product development and technical issues via documentation, phone conversations, and face-to-face meetings.
- Investigate and discover the root causes of system defects and devise software permanent solutions when possible.
- Conduct and participate in engineering meetings and communicate effectively about the relevant issues.
- Promote continuous improvement within the code and within the department.
- Provide software tools to manufacturing and other internal engineering departments.
- Contribute with creative problem-solving skills that balance thorough design with quick time-to-market and agile responses to customer needs in a fast-paced environment.
- Occasional domestic and international travel may be required
- A BSEE or BSCS degree or equivalent is required
- Modern C++ Developer with experience in the Visual Studio environment
- Experience in software development and implementation using the Robot Operating System (ROS) libraries and tools
- Experience developing machine vision
- Experience designing and implementing software for motion control systems from start to finish
- Design and implement embedded systems for sensors and components
- Strong OOD skills with the ability to generate logic diagrams out of engineering discussions and requirements documents
- Advances and adheres to software engineering best practices
- Strong team player who knows both how to lead and follow
- Rapidly acquire skills and knowledge of complex systems and development environments
- Excellent oral and written communication skills with the desire to become the subject matter expert and provide persuasive arguments to influence the design decisions
- Proactive self-starter motivated to take actions known to benefit the company
- Experience writing unit and functional tests for automated software testing frameworks as well as continuous integration frameworks
- Experience with communication protocols CAN bus, TCP, UDP, and USB.
- Multi-threaded applications and GUI development
- Experience developing Python applications
- Experience developing transformer-based neural networks
- Mobile app design and development
- Cybersecurity in embedded systems, including defensive technologies such as encryption and authentication, vulnerability analysis, and secure software practices
- Embedded systems development and debugging, including low-level concepts such as bit widths, bitmasks, and Boolean/Bitwise algorithms
- Templates, STL, and Boost/TR1
- Team-based, source code revision controlled environment, etc
- Understanding of Laser Marking