General Information

Job Title
Engineer, TSG Software Engineering
Job ID
83310
Areas of Work
Technology & Engineering
Employment Type
Permanent Full-Time
Location(s)
New Delhi

Description & Requirements

Company Overview

Bain & Company is a global consultancy that helps the world’s most ambitious change-makers define the future. Across 65 cities in 40 countries, we work alongside our clients as one team with a shared ambition to achieve extraordinary results, outperform the competition, and redefine industries. We complement our tailored, integrated expertise with a vibrant ecosystem of digital innovators to deliver better, faster, and more enduring outcomes. Our 10-year commitment to invest more than $1 billion in pro bono services brings our talent, expertise, and insight to organizations tackling today’s urgent challenges in education, racial equity, social justice, economic development, and the environment. Since our founding in 1973, we have measured our success by the success of our clients, and we proudly maintain the highest level of client advocacy in the industry.

Position Summary

A Software Engineer is someone with a proven track record of delivering application modules with minimal to no supervision from senior engineering team members. Additionally, the individual is also responsible of providing guidance to associate/ entry level engineers in the team. This position works as a member of an Agile/scrum software development team focused exclusively on building and supporting Bain’s most strategic internal software systems. Team members work collaboratively to design, build and implement new features and functionality in their systems aimed at delivering the most value to Bain’s global users and supporting key business initiatives. Systems developed are primarily enterprise-scale browser based or mobile applications developed with current Microsoft development languages and technologies, with a global user base and integration points with one or more other internal Bain systems.

Essential Functions

Technical Delivery (80%)

• Work with teams developing and updating enterprise applications.

• Work as a member of an agile software development team with full participation in all Agile team events and activities.

• Demonstrate ability to identify all technical steps required to complete a story. Work with the senior team members to evaluate product backlog items and functional specifications and determine the appropriate approach to developing the required functionality in the software application.

• Demonstrate high-level business and domain knowledge and ability to understand and achieve business outcomes.

• Work in collaboration with other team members on an agile team to analyze user stories and perform task breakdown and complete committed tasks as per sprint schedule.

• Demonstrate good understanding of using the underlying infrastructure to develop his/her features.

• Follow the standard application design and architecture to develop his/her features and work with senior team members to ensure non-functional metrics (e.g. scalability, performance) are met.

• Prepare work estimates for committed tasks and components with support from senior team members.

• Write unit test plans for committed components. Execute and confirm successful completion of unit tests as part of the criteria for completion.

• Participate in the testing and implementation of applications releases.

• Provide ongoing support for applications already in use. This includes problem diagnosis and resolution, ad hoc reporting support and database administration.

• Demonstrate ability to acquire new skills e.g. creating automation tests using selenium, creating UX designs, DevOps, performing functional/ load testing etc. through internal/ external trainings to be a T-Shaped team member helping the team in achieving sprint goals.

• Provide input during sprint retrospective to improve team experience.

• Follow Bain development project process and standards in completing committed tasks and modules and contribute to the continual evolution of processes and standards.

• With guidance, write technical documentation as required.

Research(10%)

• Contribute to evaluating and employing new and/or supplemental technologies necessary to deliver functionality for a given software application.

• Contribute to the research and evaluation of new tools and technologies beyond current product requirements that are likely to be used in future initiatives. Help in the presentation of findings and recommendations to the full Software Development team.

• Participate in internal skill development by sharing concepts and technologies with the full Software Development team.

Communication (10%)

• Ability to present the technical findings and recommendations to the Software Development team.

• Clearly communicates impediments to completing a story and ensures clear understanding of definition of ‘done’.

• Provide input during sprint retrospective to improve team experience.

Knowledge, Skills, and Abilities

  • Frameworks: .NET & .NET Core
  • Languages: C#, T-SQL
  • Web frameworks/ Lib: Angular, JavaScript, HTML, CSS, Bootstrap, etc.
  • RDBMS: Microsoft SQL Server
  • Cloud: Microsoft Azure Services
  • Unit testing: XUnit, Jasmine, etc.
  • DevOps: GitActions
  • Web frameworks/ Lib: React
  • Search engine: Elasticsearch, Coveo, etc.
  • NoSQL databases: MongoDB, Cosmos, etc.
  • Caching: Redis, MemCache

Qualifications

  • Bachelor’s or equivalent degree
  • 3-5 years of experience
  • Experience developing enterprise scale applications
  • Demonstrated knowledge of agile software development methodologies and processes.
  • Demonstrated record of strong performance in prior software development positions.
  • Strong communication and customer service skills
  • Strong analytic and problem-solving skills
  • Demonstrated record of T shape behavior to expedite delivery by managing conflicts/ contingencies