As a member of the XKL Software team, you will be responsible for building cutting edge optical appliances. Your job will require collaboration with other teams such as Hardware, Manufacturing, QA and Test, and Marketing. You will be tasked to work on various aspects of our devices from low level drivers and the kernel, to networking and hardware controls, even some UI and unit tests. The Software team is also responsible for building and maintaining internal software and tools; Compiler, Assembler, build system, debugger, manufacturing tools, and more.
The successful candidate must be meticulous about documenting. Engineers are expected to create functional design and engineering design documents. In addition, you will be expected to document what you create: APIs, functions, interfaces, etc.
To excel in this position, you must be a good communicator with excellent written, oral and interpersonal skills. The ideal candidate will possess a solid working knowledge of Operating Systems, software design principles, modern rapid development methodologies, Test Driven Development, C and Assembly language, builds, and commonly used scripting languages.
Required Skills and Qualifications
- A bachelor’s degree in a computer related field or equivalent professional experience
- Five years of relevant software development experience
- C programming language expertise
- Demonstrable experience at writing software for embedded devices
- Demonstrable experience at writing clean code
- Demonstrable experience with Operating Systems internals
- Strong debugging skills
- Able to complete tasks on time
- Intermediate level Linux skills or better
- Ability to rapidly comprehend a large code base
- Solid written and verbal communication skills
Nice to Have Skills
- Ability to document existing and new software, including APIs and functionality
- Ability to understand hardware and architecture
- Well versed in at least one scripting language; Python, Ruby, Perl
- Knowledge of LUA
- Knowledge of Multi-Threading
- Current experience with Git and Gitlab
- Knowledge of other version control systems such as SVN, Mercurial, etc.
- Experience with Test Driven Development and unit test frameworks
- Familiar with high-speed digital electronics, or digital design
- Knowledge of network and/or routing protocols
- Able to distinguish between hardware, software, and inherent design issues
- Experience with all phases of the software development lifecycle
8am – 5pm