Epicareer Might not Working Properly
Learn More

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