InHand Electronics is an original equipment manufacturer (OEM) of rugged tablets and single-board computers. InHand is seeking software developers who have experience in embedded software, operating systems, and device drivers, to customize and troubleshoot operating systems such as Linux, Android, and Windows Embedded for its computer systems. InHand Electronics is an original equipment manufacturer (OEM) of rugged tablets and single-board computers. InHand is seeking experienced software developers who have a strong background in operating systems and device drivers, to customize and troubleshoot operating systems such as Linux, Android, and Windows Embedded for its computer systems.
Technical Responsibilities and Expectations:
As part of a small company, a position at InHand is dynamic and usually involves participating on multiple projects simultaneously. The software engineer will participate in all phases of product development, starting from customer requirements, through prototyping, design, implementation, and testing.
Working knowledge in the following areas is desired:
• Kernel-level experience in Linux, Android (framework and HAL), Windows, and/or Windows CE & Embedded.
• Write, configure, integrate, and troubleshoot standard drivers (such as USB, Bluetooth, WiFi, Ethernet, Displays, SDIO, PCIe, LVDS, GPS).
• Write software to interface to hardware devices at the lowest level, including via register mappings, GPIOs, RS232, I2C, or SPI.
• Knowledge of ARM or x86 architecture and their assembly language.
• Define, design, and implement Application Programmer Interfaces (APIs) to allow user access to custom devices.
• Program at the operating system level in C or C++. Strong knowledge of C is highly desired.
• Develop applications in C++, C# (.NET) or Java to produce control panels, test modules, or sample code for customers
• Review hardware schematics to ensure hardware/software interfaces meet the needs of standard device drivers.
• Work closely with hardware engineers to troubleshoot hardware design and manufacturing problems.
• Use of debugging tools such as multimeters, logic analyzers, and oscilloscopes to troubleshoot issues that could be either hardware or software.
• Familiar with multiple processor families, including x86 (e.g. Pentium, Atom), ARM (e.g. iMX, OMAP, PXA), microcontrollers (e.g. MicroChip PIC, MSP430, Renessas H8), and DSPs (e.g. TMS320, OMAP).
• Follow established software engineering processes for version control, configuration management, and design documentation.
Candidates ranging from Entry-Level to Senior Software will be considered. Salary is commensurate with experience. Minimum requirements for employment are the following
- Must have US Citizenship or Permanent Residency
- Minimum of Bachelor’s Degree in Computer Engineering or Computer Science is required.
- Must be able to communicate clearly with customers and colleagues, and be fluent in both written and spoken English.
- Must be capable of succeeding in both independent and team environments.
- Must be able to work against the pressures of deadlines and ensure systems are delivered on schedule.