Xtreme Consulting Group is currently recruiting for a contract C++ Developers (for Windows and Android platforms). The development effort for this project will be based in Portland, Oregon (USA), but developers have the option of working remotely. This is an immediate start and an open-ended contract.
- Development will be focused on software components that run on Microsoft’s Windows platform and/or specific Android mobile platforms. Qualified applicants will have experience with development for one or both of these platforms.
- This effort requires very seasoned technical consultants with meticulous communication and documentation skills. One or more team “scribes” will be available to assist with documentation tasks.
- Members of the team must have experience in sensor fusion - integrating data from multiple sensors to determine spatial position and orientation (e.g., experience with robotics, drone flight control systems, or other technologies that rely on sensor data to precisely track motion and position).
Minimum skill sets sought:
- 3 + years developing low-level systems in C and C++.
- 3 + years of experience with 3D math, including quaternions, and Euler angles.
- Development for Windows or Android platforms.
- Experience in systems development.
- Optimization skills.
- Familiarity with applications that are used for sensor integration in the context of determining and/or tracking spatial positioning –or– experience with modeling motions of the human body.
- Bachelor’s degree or more in Computer Science, Mathematics, or related field
- 5 + years developing low-level systems in C and C++
- 5 + years of experience with 3D math, including quaternions, and Euler angles.
- Experience with graphics APIs (Direct3d/OpenGL/Vulcan).
- Windows or Android OS experience, including experience with hardware, drivers, or firmware.
- VR experience.
- A familiarity with techniques related to optimization of the rendering/display pipeline.
GENERAL PROJECT DESCRIPTION
Develop new software components that will integrate with existing software and hardware.
- High-level functional specs will be provided, as well as interface requirements for integration with existing components.
- In addition to the functional specifications, the end client will specify minimum performance criteria for some aspects of the code, and meeting these performance requirements will be part of the acceptance criteria.
- The development team will be entirely responsible for design choices, implementation, and tuning to meet performance requirements. (Note: The end client will require a design review and approval phase prior to coding.)
- Project code will be written from scratch, but use of Open Source and/or 3rd party libraries will be allowed, providing their use is pre-approved by the Client.
- Team members are required to maintain an ‘engineering notebook’ to help document the development effort. For example, the engineering notebook might include notes about the design choices considered, reference materials consulted, selection criteria used to arrive at a final design, implementation options and choices, related ideas and theories, or problems encountered during development.
- The software components developed in this project will be required to interoperate with existing hardware and software. The existing software is primarily written in C++. The new code to be developed will also be written in C++.
- You will be provided with software to aid in integration testing for interactions with existing software and hardware.
- External teams will be involved for design review, QA, performance testing, and final acceptance testing. It is expected that all feedback and communications from these teams will be provided to the development team in written form (typically as electronic documents).
- Consultants can work from home, using workstations that are provided by the Client and preconfigured for use on this project.
- There will be periodic team meetings as needed to facilitate communication between members of the development team relating to design, coding, testing, and integration tasks. It is likely that these meetings will be conducted using electronic videoconferencing technology, and recorded so that they can be played back by any members who are unable to attend the live sessions.
- All candidates for a role on the development team must sign a Non-Disclosure Agreement before they can be given access to details of the project.