IND (New) Senior Big Data Engineer

Hyderabad, Telangana, India Full-time

Role summary


As a Senior Engineer you will be responsible for developing readable, maintainable and efficient code to realise user stories that deliver the product road-map. You will be accountable for coordinating Engineers and other stakeholders in breaking down large epics into collections of smaller stories / tasks and in implementing the overall functionality.
Through active participation in Scrum ceremonies, you will contribute to the product road-map and collaborate with other Engineers and Analysts to assist in defining the technical direction for the product. You will also work with support teams to ensure the product's smooth operation.

Key responsibilities
• Produce Quality Code

o Code follows team standards, is structured to ensure readability and maintainability and goes through review smoothly, even for complex changes
o Designs respect best practices and are favourably reviewed by peers
o Critical paths through code are covered by appropriate tests
o High-level designs / architectures align to wider technical strategy, presenting reusable APIs where possible and minimizing system dependencies
o Data updates are monitored and complete within SLA
• Operate at a High Level of Productivity
o Estimates are consistently ‘challenging, but realistic’
o Most tasks are delivered within estimate
o Complex or larger tasks are delivered autonomously

• Squad Collaboration

o Sprint goals are consistently achieved
o Demonstrate commitment to continuous improvement of squad activities
o The product backlog is consistently well-groomed, with a responsible balance of new features and technical debt mitigation
o Other Engineers in the Squad feel supported in their development

Key activities

• Write polished code, aligned to team standards, including appropriate unit / integration tests
• Review code and test cases produced by others, to ensure changes satisfy the associated business requirement, follow best practices, and integrate with the existing code-base
• Provide constructive feedback to other team members on quality of code and test cases
• Collaborate with other Lead / Senior Engineers to produce high-level designs for larger pieces of work
• Validate technical designs and estimates produced by other team members
• Merge reviewed code into release branches, resolving any conflicts that arise, and periodically deploy updates to production and non-production environments
• Troubleshoot production problems and raise / prioritise bug tickets to resolve any issues
• Proactively monitor system health and act to report / resolve any issues
• Provide out of hours support for periodic ETL processes, ensuring SLAs are met
• Work with business stakeholders and other leads to define and estimate new epics
• Contribute to backlog refinement sessions, helping to break down each epic into a collection of smaller user stories that will deliver the overall feature
• Work closely with Product Owners to ensure the product backlog is prioritized to maximize business value and manage technical debt
• Contribute to work breakdown sessions to define the technical tasks required to implement each user story
• Contribute to sprint planning sessions, ensuring the team takes a 'realistic but challenging' amount of work into each sprint and each team member will be productively occupied
• Contribute to the team’s daily stand-up, highlighting any delays or impediments to progress and proposing mitigation for those issues
• Contribute to sprint review and sprint retro sessions, to maintain a culture of continuous improvement within the team
• Coach / mentor more junior Engineers to support their continuing development
• Conduct technical interviews as necessary to recruit new Engineers

Experience and education required

• 5+ years' experience developing at scale applications using Scala
• Proven experience manipulating large data-sets using Spark
• Solid foundation in functional programming and data structures
• Values delivering high-quality, peer-reviewed, well-tested code
• Awareness of DevOps functions and appetite to contribute to CI / CD pipelines
• Experience working with source control tools (GIT preferred) with good understanding of branching / merging strategies
• Bachelor’s degree in Computer Science, Information Technology or a related discipline
• Comfortable working in a fast moving, agile development environment
• Excellent problem solving / analytical skills
• Good written / verbal communication skills
• Commercially aware, with the ability to work with a diverse range of stakeholders
• Enthusiasm for coaching and mentoring more junior engineers

What does success look like?

• New features delivered within estimate, with minimal defects and no material errors
• Larger epics coordinated with business stakeholders and across technology streams
• Recognized as a 'go-to' person for input to high-level designs and estimation
• System availability and data updates complete within SLA
• All user queries and support incidents handled within the team
We recognize that it takes time to adapt to a new role and to build relationships with key contacts in the business. We expect a successful employee to be on the following trajectory:

• After 1 month you should be:

o embedded within your squad, engaging easily with other team members and raising constructive feedback on the team's work
o working autonomously on simple tasks / user stories

• After 3 months, you should be:

o self-sufficient on all but the most complex tasks / user stories, delivering good quality code in line with other team members' estimations
o sufficiently aware of the business domain and product road-map to be active in team meetings and contribute towards the product road-map
o recognised by business stakeholders as a technical authority and able to influence the technical direction of the product
o building a network of contacts across Engineering and your business vertical

• After 6 months, you should have:

o fully effective in your role within the team
o capable of mentoring / on-boarding new starters into more junior roles

Key business capabilities required

1. Development – Applying technical expertise to construct a solution to meet specific objectives or requirements
2. Fast-Fail / Agile Testing – Ability to try something, get fast feedback, and then rapidly inspect and adapt for great effectiveness
3. Implementation Phase Design – Ability to plan the execution of an application, idea, model, design, specification, standard, algorithm, or policy
4. High Level Design – Ability to define an overview of an entire system, identifying the main components that would be developed for the product/technology and their interfaces
5. Release Management – Ability to oversee the testing, deployment and support of software or product releases

Key People and Leadership capabilities required

1. Self-aware - you leverage diversity across people, tasks, client interactions and projects, taking responsibility for self and other
2. Agile and innovative - you possess strong lateral thinking skills and actively develop these in others
3. Achieve and perform - you have exceptional execution skills and are achievement focused
4. Brand advocate - you anticipate and consider brand and cultural impact in decision making
5. Purposeful and aligned - you are able to set clear, tangible objectives which deliver against our strategy
6. Achievement oriented - you effectively facilitate challenging performance related conversations in a timely and appropriate manner
7. Coach - you demonstrate the