Job purpose:
As an Intermediate Software Engineer you can work fairly independently and are tasked with the development of software inside a team and sub sections of a system. You will have the ability to design solutions and modules to existing systems. You have a good command of the fundamentals of software development, coding principles, stakeholder engagement and good trouble shooting capabilities because you understand how systems work together and when and who to ask for help. At this point in your career, you should also be able to architect basic components of a system.
Key accountabilities:
- Successful develop, delivery maintain high quality software (requirements, design, code, documentation, etc.)
- Contribute to quality activities, incl. peer reviews of estimates, designs and code
- Resolve defects/bugs during QA testing, pre-production, production, and post-release patches
- Be an active and enthusiastic team player. Partner effectively with all team members to deliver against commitments.
- Commitment to team success and positive team dynamics
- Proven experience with Agile Development, SCRUM, and/or Extreme Programming methodologies
- Participate in all phases of the project lifecycle.
- Maintain relevant documentation to describe logic, coding/configuration, testing and changes where applicable.
- Continuously strive to make improvements to the existing products and/or systems and services.
- Ensure all tasks are completed to the required quality standards.
- Update job knowledge by studying state-of-the-art development tools & techniques
Key performance indicators:
- Complete assigned development tasks to agreed level of quality and by the required deadline.
- Design, develop, deliver and maintain application/service solutions.
- Ensure adherence to best practice and processes. Focus on sound development concepts and patterns such as object/service orientated architecture, refactoring and separation of concerns.
- Provide accurate, detailed and timely estimates and track own activities against plan
- Comply with project plans and industry standards
- Code Coverage provided on the code developed
Skills, know-how and experience:
- Knows and applies the fundamental concepts, practices and procedures of software development.
- Passion for being hands on techie
- Innovative and creative thinking
- Customer Focus
- Ability to interpret and document user requirements and translate these into technical specifications and/or code
- High numerical reasoning and logic ability with good problem-solving skills
- Knowledge of one or more relevant programming languages, frameworks and databases
- Be willing to adapt to significant changes in either technology or environment
- Broad operational knowledge in 21st Century IT (Cloud, Social, Mobility, IoT, Big Data…)
- Knowledge on Architecture Best Practices and Patterns (Microservices, CQRS, Event Sourcing, Domain-Driven Design, …)
- Proven experience in using a TDD approach
Essential:
- 3-5 years professional or other practical experience
Experience in the following technologies:
- C#, Java, HTML and Javascript
- .NET 5 or later
- Web services (RESTful or WCF)
- Entity Framework, NHibernate or other ORM
- Unit testing
- RDBMS (e.g. SQL Server, MySQL or Oracle)
- Visual Studio 2019 or later
- Single Page Application (Angular, React)
Beneficial
- Cloud Experience (Azure or AWS)
- NoSQL databases (CosmosDB, MongoDB)
- Experience in working with Agile Teams and successfully delivering Agile based software projects (including attending daily scrums, Kanban boards)
- Experience working with Git, Azure DevOps, JIRA, Jenkins, Automated Build Servers,
- Microsoft certification
Technical / professional qualifications:
- Microsoft Certification
- Tertiary Qualification
Values and Competencies
- Get stuff done: completing tasks, and contributing to the deliverables of the team to ensure we deliver high quality products
- Be the best you can be: investing time in learning and sharpening your skills. Teaching and sharing your unique skills with the rest of the team
- Do the right thing: we build a culture of mutual respect and collaboration, admit to mistakes and learn from them
- Servicing the customer: at the forefront of providing service excellence and customer satisfaction
- Solve together: we conduct ourselves in such a way that we work harder, cooperate and be supportive of one another and contribute to the team spirit
- Build a bridge: progress with what you have and solve a challenge
- Add value: to tasks, interactions with colleagues and customer interactions
- Have fun! we enjoy the work we do and the people that we are doing it
Direct reports:
Influence, collaborate and co-ordinate with:
- Product Owner
- Developers
- Managers