Sr. Software Engineer/Software Engineer/Data 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

- Excellence in visual communication using modelling languages such as UML Diagrams, Data flow diagrams, etc. and Flowcharts using tools like Microsoft Visio and Gliffy.

- A very strong background in software development with ability to code at some level and knowledge of APIs, REST/SOAP, design patterns, and client-side SDKs.

- A strong background in test-driven development and/or behavior-driven development; plus he or she should be a strong advocate of test-first approach.

- Minimum 2 years of experience with at least 2 of the following JavaScript frameworks: Node.js, Angular, Express, Knockout, Backbone, D3, Kendo UI

- Minimum 5 years of experience with object-oriented JavaScript, HTML5, and CSS3, including a solid understanding of JavaScript MVC frameworks and design patterns

- Minimum 2 years of experience with JavaScript build, dependency and test frameworks such as Gulp, Grunt, Webpack, RequireJS, Jasmine, Mocha

- Previous project experience with MEAN stack and building REST APIs using Express are highly desirable

- Ability to create pixel-perfect and highly-aesthetic UI components from scratch and or a PSD design

- Any experience with integrating modern JavaScript application with .Net stack is considered as desirable.

- Previous experience with AWS particularly Amazon EC2, AWS Beanstalk and Amazon S3 is desirable