Location: Houston, TX, USA
Company: BPM Microsystems, LP
About This Position:
About BPM Microsystems and the Job
Imagine selling a world-class technology product required by every factory producing electronics in the world! BPM Microsystems produces the most advanced electronic device programming systems in the world. 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, automotive electronics, consumer electronics, industrial and medical devices 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 use any electronics.
The Software Engineer is responsible for the software design, development, and test of BPM Microsystems products. Duties include all aspects of design, analysis, test, and test planning. This is a hands-on challenging position that offers the Software Engineer the opportunity to contribute to the development of new and existing products within highly visible product lines.
The Software Engineer is responsible for designing, developing, testing, and maintaining Windows-based and embedded software written in C++. The Software Engineer is responsible for controlling BPM Microsystems’ semiconductor programming equipment as well as robotic pick-and-place systems incorporating lasers, vacuum systems, and various machine vision technologies.
- Discovers the root cause of software problem reports and resolves field issues.
- Designs and implements software modules for new product development.
- Promotes continuous improvement within the code and within the department.
- Conducts and participates in engineering meetings and communicates effectively concerning the relevant issues.
- Interfaces with other departments to capture requirements for new product development and defect resolution.
- Provides software tools to manufacturing and other internal engineering departments.
- Exhibits creative problem-solving skills that balance through design with quick time-to-market and agile responses to customer needs in a fast-paced environment.
- Effectively communicates with customers and corporate partners via phone and face-to-face meetings.
- Occasional domestic and international travel.
- A BSEE or BSCS degree or equivalent is required.
- Modern C++ Developer
- Ability to adhere to Software Engineering best practices.
- Must be able to demonstrate a solid knowledge of and experience with Templates, STL, and Boost/TR1.
- Experience with web application development
- Experience with programming multi-threaded applications and GUI development.
- Experience implementing cybersecurity in embedded systems, including defensive technologies such as encryption and authentication, vulnerability analysis, and secure software practices.
- Strong OOD skills with the ability to generate logic diagrams out of engineering discussions and requirements documents.
- Ability to quickly acquire skills and knowledge of proprietary systems.
- Excellent oral and written communication skills.
- Experience with a team-based, source code revision controlled environment (Mercurial, RCS, MKS, PVCS, CVS, SourceSafe, Subversion, etc).
- Experience programming embedded systems, including hardware interfacing, ISRs, and debugging complex problems without conventional application debugger tools. Well-versed in low-level concepts such as bit widths, bitmasks, and Boolean/Bitwise algorithms.
- Capable of reading and authoring X86 and RISC assembly language code.
- Compiler / Machine Code Generator experience (LEX & YACC is a plus).
- Experience with mobile app design and development.
- Experience with cybersecurity development
- Experience with auto testing tools development.
- Exposure to vision libraries like OpenCV.
- Experience writing unit and functional tests for automated software testing frameworks.
- Experience with debugging software and hardware using logic analyzers and digital oscilloscopes.
About BPM Microsystems:
Founded in 1985, BPM Microsystems is an industry leader that makes industrial robotic systems bringing bring billions of electronic devices to life around the world. Each time you use your computer, phone, or car, you are likely relying on our work product. Every modern electronic circuit has programmable chips that need to be programmed. Our systems load data patterns into the programmable flash memories and microcontrollers that power today’s electronic world.