Software Engineer I
Salary undisclosed
Apply on
Original
Simplified
What you’ll be doing
- Interacts with the Product Owner / Business Analyst to define, refine, develop, test and deliver against functional requirements
- Understands and translates functional into technical requirements
- Works with an architecture team to design the components of the product suite
- Provides input to the project delivery plan, including sizing and estimation if required, with regards to one’s areas of responsibility
- Coordinates the work within the boundaries of their teams and project
- Being accountable for the quality of one’s team and supporting through code review processes and testing strategies as a whole-team approach
- Implements correct, performant and reliable code on schedule and according to specification
- Determines code quality and test coverage, and designing and implementing tests to make sure software is built to the highest quality possible
- Develops and maintains test automation efficiency and effectiveness
- Responsible for defect closure and root cause analysis to avoid regressions
- Drives continual improvement in quality and efficiency, including defect prevention/ root cause analysis, suggesting and adopting improvements to technology and efficiency
- Collaborates and partners across different departments including support, consulting, product management, and engineering
- Writes technical documentation for internal or external consumption, for developers of varying skills level
- Influences system designs and plans from a testing perspective
- Reviews, analyses and improves test coverage and reduces defect count for their product area
- Collaborate with developers to bring new software releases and services into production
- Automate everything from deployment, monitoring, management and incident response - treat 'Everything as Code'
- Develop and improve operational practices and procedures
More about you
- Candidate ideally possess a Bachelor's Degree in Computer Science/Information Technology, Engineering (Computer/Telecommunication) or numerical discipline with strong computing background
- Strong programming, troubleshooting, analytical & problem-solving skills
- Relevant understanding of process and methodologies that drive scalable software development and software testing
- Good communication, organisational & interpersonal skills
- Desire to work in a dynamic, fast moving and challenging (and somewhat ambiguous) environment
- Have strong interest in DevOps, Build and Release Engineering. Internship or other previous experience in DevOps, Infrastructure operations or similar would be considered as an advantage
Beneficial Skills
- Understanding and familiarity with some good Java design and Software Engineering processes/methods such as:
- Architecture design
- Design Patterns
- Refactoring
- Agile methodologies (Lean, Scrum, Kanban, etc.)
- CI/CD, DevOps and Test Automation
- TDD – Test Driven Development, BDD – Behavioral Driven Development
- Automated unit testing (e.g. JUnit)
- Automated functional testing (e.g. TestNG, Cucumber, Selenium)
- Mocking Framework (e.g. JMockit, Mockito, WireMock)
- Exposure to any relevant Open Source tools & Frameworks, Ajax, Spring, JSF, Ant, Subversion, Maven, CruiseControl, Hibernate/JPA, Junit, JMS, SOAP, Axis, Bitbucket, Jenkins, Ansible and Cucumber
- Fair understanding in Kubernetes (EKS, OpenShift) and cloud technology – AWS, Azure
- Fair understanding in Continuous integration tools - Jenkins, Maven, Gradle
- Comfortable working in Linux environment: Ubuntu / Debian, Redhat / CentOS
Similar Jobs