C Embedded Linux Developer
infovision inc.- Posted 12 hours ago
- Be among the first 10 applicants
Job Description
Essential:
• Tertiary qualification in Computer Science, Software Development, or Engineering
• Proficient in C++
• 8+ years of development and/or testing experience – developing code using C++
• Experience with Version Control Systems (Git)
• Technical skills including high level understanding of software development, network systems, software test
• Problem investigation and resolution experience in a software environment Desirable:
• Payments and/or Retail Petroleum industry experience
• Embedded Linux x86 / ARM
• C, Java, Assembler, Python, Bash scripting
• Ability to promote a test-driven development approach
• Experience using embedded tools; compilers, debuggers, JTAG, protocol analysers, RTOS or OSes
Roles & Responsibilities
Responsibilities include:
Software development and documentation
• Contribute to requirement gathering, specification creation and design as required
• Contribute to project planning by providing input on estimates and detailing dependencies
• Complete the development of new functionality and modifications to existing functionality according to project requirements and plan
• Develop solutions with minimal defects
• Ensure timelines are met in implementations
• Ensure all functionality delivered with regression / unit tests
• Complete software documentation, ensuring it is in accordance with good coding practices
• Ensure product documentation is updated and submitted
• Ensure customer specific application solutions are in-line with the customer and company requirements
Software product maintenance
• Respond to product issues to ensure resolution in a timely manner
• Update regression / unit test suite
• Ensure relevant documentation is up to date
• Input and update all issues using our tracking system
Software design and architecture
• When required - contribute to the architecture for a specific product stream or technology area
• Utilise industry best practice design and implementation techniques
• When required - contribute to technical decision making for product architecture and implementation
• When required - propose design, documentation, and communication of system engineering specifications and product software architecture specifications, based on:
o market requirements provided by product management, including certification requirements
o company requirements around quality, maintainability, testability, and related measures
• Collaborate with fellow developers, architecture team and product management to ensure any product design proposals fit appropriately into the Invenco product range
• When required - work closely with Security Architect to ensure design proposals are compliant with relevant security standards, and documented appropriately to facilitate product certifications in a timely, risk free manner
• When required - contribute to ensuring system engineering specifications and product software architecture specifications are peer reviewed and accepted by architecture, engineering, and product management teams
• Peer review team output for quality and alignment to designs – provide corrective feedback and/or refine designs as necessary
• Regularly review defects and performance characteristics of technology area and ensure that these are resolved appropriately
• Contribute to supporting leadership around development process and technology selection – participate in development of company standards (eg standardised coding style, VCS structure & workflows, build systems etc)
Test plan development
• Create developer test plans for use in regression suite
• Test plan contains complete coverage of functionality and features delivered
• Ensure suitability for integration into regression suite
• Assist testers with understanding changes and new features to enable their development of test scripts
Development Process and Continuous Improvement
• Follow agile development methodology
• Actively use, advocate, and seek to continuously improve Invenco procedures and processes for software development, build, and generation of production quality artifacts
• Contribute to continuous improvement in systems and processes
• Escalate issues and delays in a timely manner
• Evaluate status quo and apply best practice
• Look for opportunities and work to continuously improve process
• Set up and maintain processes and procedures where required
• Reporting around planned activities, progress, and performance
• Use existing systems and processes – JIRA, Confluence, Time Logging, Project Planning etc to plan and execute work
More Info
Key Skills
JTAG protocol analysers
Time Logging
Embedded tools
Compilers
