Sr. Software Engineer/Software Engineer

Job description

You will be working within an agile environment as part of a cross-functional collaborative team. This role will develop new software features according to given business requirements, solutions design, and project timeline.


You will work with architects, QAs, your team and BAs to perform task breakdown, time estimation, and task prioritisation. You will ensure that you are meeting our development standards, following agile software development best practices, and delivering high-quality software features on time.


You will also participate day-to-day operation of software features, components, services, or modules owned by you and your team (“you build it, you run it”) and meet uptime SLAs as well as escalation response time SLAs.


This role supports managers and employees in line within organisational policies, procedures and legal requirements.


Solution Implementation

  • Review the current and proposed solution designs and provide inputs to Architects in order to refactor and optimise solution designs.
  • Ensure that low-level technical decisions are documented and communicated to architects to avoid any architectural divergence and assumption entropy.
  • Develop high-quality DevOps friendly software features, components, and modules with support for HA, scalability, fault tolerance and security.
  • Implementation must support following components of twelve-factor methodology: Dependencies, Config, Backing Services, Processes, Concurrency, Disposability, Dev/prod parity, Logs, and Admin Processes
  • Review the current and proposed solution designs and provide inputs to Architects in order to refactor and optimise solution designs.
  • Ensure that low-level technical decisions are documented and communicated to architects to avoid any architectural divergence and assumption entropy.
  • Develop high-quality DevOps friendly software features, components, and modules with support for HA, scalability, fault tolerance and security.
  • Implementation must support following components of twelve-factor methodology: Dependencies, Config, Backing Services, Processes, Concurrency, Disposability, Dev/prod parity, Logs, and Admin Processes

Agile Software Development

  • Ensure you are following Isentia Development Manifesto in all areas of solution implementation and agile software development including but not limited to: Version Control, Branching Model, Test-Driven Development, API-Driven Development, Continuous Integration, and Code Compliance.
  • Help architects and development manager to develop overall implementation plan for the agreed solution design including low level project estimates; participate in the architectural and technical spikes with development team.
  • Work with architects, development manger, BAs and software engineers to breakdown the agile epic and stories in smaller tasks and sub-tasks; help development team to understand the complexity of tasks, priorities tasks and ensure task estimates are as accurate as possible.
  • Develop a good understanding and appreciation for agile development process and regularly participate in various agile ceremonies.
  • Ensure the higher code coverage, strict code review, good quality technical documentation, lower code complexity and less technical debts.
  • Document all technical debts; track and measure the technical debts; priorities technical debts with inputs from team.
  • Perform hands-on software development, peer code reviews, pair-programming, coaching software engineers on agile software development best practices.

You Build It, You Run It

  • Oversee day-to-day operation of software features, components, services, or modules owned by you and your team according to “you build it, you run it” philosophy.
  • Lead the team activity to triage the bugs, defects or issues in production with help from IT Operations and IT Infrastructure teams in order to meet various SLAs.

Continuous Delivery and Improvements

  • Implement continuous delivery, dataops and devops best practices in application life-cycle management.
  • Adopt new tools, frameworks, algorithm and technologies to improve the quality of solution design and delivery.
  • Ensure low-risk small incremental release process and avoid the high-risk big bang releases.
  • Ensure team is following high-quality smart commits to generate automated release notes to support change management process

Requirements

Education Bachelors (or higher) degree in computer science/engineering or related field

Technical Skills: Software Engineering

Industry experience: Minimum of 3 years’ experience in software development of major applications

Technology skills: Key Skills in Python, Java, AWS, Elasticsearch

Minimum 3+ years of experience on Python. Previous experience on social media will be added advantage