Research, design, develop, and test operating systems-level software, compilers, and network distribution software for medical, industrial, military, communications, aerospace, business, scientific, and general computing applications. Set operational specifications and formulate and analyze software requirements. May design embedded systems software. Apply principles and techniques of computer science, engineering, and mathematical analysis.
Software Engineer Job Description Template
Our company is looking for a Software Engineer to join our team.
- Challenge the technology choices we make as a team to bring modern and current thinking to the table;
- Integrating software products – getting incompatible platforms to work together and creating code to link them;
- Develop new solutions to resolve ongoing issues with the platform;
- Operating in an Agile environment;
- Assist with the data analysis and data processing algorithms in the data integration pipeline;
- Innovating current product and scaling it;
- Realisation and delivery of technical designs to meet release deadlines;
- Making sure we build software that’s consistent with the frameworks in use across the wider engineering community when applied at their best;
- Issue encrypted reports to customers;
- Ensure all products are developed using the standards laid down;
- Deploying, maintaining and supporting applications in a professional hosting environment;
- Producing documentation for process control and quality management;
- Design and develop reusable libraries and application programming interfaces;
- Development of greenfield code for new products and development of existing code;
- Manage 3rd party relationships with engineers and technology providers.
- Learning, development, coaching and mentoring;
- Software Development Methodologies;
- Solid analytical and problem solving skills;
- Exposure to developing mobile applications;
- Proficient in using MS office;
- Proven experience in developing Java, preferably on a cloud platform;
- Software development processes and tools;
- Good understanding of relational databases and SQL;
- Depending on the level of role, Java and/or C++ development experience, supported by a knowledge of design principles;
- Excellent knowledge of the Linux operating system and its utilities, with experience in Linux kernel customisation and the buildroot system;
- Web development using Angular;
- Experience or knowledge of CANbus, specifically the ISO-11783 protocol would be advantageous;
- Experience in writing ‘C’ or C++ for embedded micro-controllers gained within an industrial environment.