Software Engineer - C++
Job Description
Createc leads technological innovation by combining creative applications of emerging sensor technology, robotics, and algorithms with a focus on commercial success and an entrepreneurial spirit to solve real human challenges.
At its heart, Createc is a team of multi-skilled individuals who bridge the gap between academic and industrial approaches. We are defined by a technical capability, not a market; but everything we do is defined and guided by a commercial objective.
We are looking for an experienced software engineer who can work as part of a small agile team to create, develop and maintain C++ applications ranging from Windows and Linux user interfaces through mathematical data processing, to instrumentation data acquisition; creating efficient production code that will be used in new and existing products and services.
Responsibilities
These are expected to include:
- Helping to define the architecture and implementation for applications.
- Developing applications to control instrumentation.
- Developing applications to acquire, analyse and display data.
- User Experience.
- Code control and structured testing.
Profile
- Is passionate for new technologies, innovation and creating products that wow the customer.
- Loves solving exciting and challenging problems.
- Able to view problems from the customer’s perspective and understand what gives the customer value.
- Have exceptional software engineering skills and knowledge of the software development life cycle, from idea through build and deployment to retirement.
- Make things work and get things done. Has a can-do attitude, hitting deadlines, and with high levels of self-motivation.
- Demonstrates accountability and ownership, prioritises own workload.
- Has teamwork spirit and enjoys knowledge sharing with colleagues. Works well with others and actively contributes towards team objectives.
- Is an advocate of clean re-usable code, with a solid knowledge and application of O-O principles.
- Understands the advantages, costs and consequences of re-factorisation and re-design.
- Demonstrates technical excellence and rigour. Has broad and relevant skill set and is able to quickly learn new skills.
- Is flexible and adaptable, being positive and focused when working under pressure.
- Is capable and an enthusiast of self-learning and facing constant new challenges.
Essential Skills/Characteristics
- Excellence in developing software solutions using C++ in complex projects using OOD and OOP
- Excellence in User Experience - developing user interfaces that align to customers’ business workflow and allow the effective display and manipulation of senor data (e.g. video, pointcloud, image overlays).
- Good experience in structured automated testing, build and deployment techniques/technologies.
- Good experience in version control (e.g. Git) and branching strategies.
- Good track record of delivering solutions on time.
Desirable Skills/Characteristics
- Proficiency in Linux including system admin skills.
- Experience with embedded systems (e.g. Jetson).
- Experience working with control systems, data acquisition and sensors.
- Experience with agile working principles such as Scrum.
- Experience in Agile toolsets (e.g. JIRA) and knowledge management tools (e.g. Confluence, SharePoint).
- Experience of Test-Driven Development
- Experience of continuous integration.
- Experience of additional software languages (e.g. Python, C#, Matlab).
- Understanding of virtualisation and containerisation (e.g. Docker).
We celebrate and support diversity and are committed to ensuring equal opportunities for both employees and applicants.