Full Stack Software Engineer (TypeScript/Python)
Description & Requirements
WHAT MAKES US A GREAT PLACE TO WORK
We are proud to be consistently recognized as one of the world’s best places to work. We are currently the top ranked consulting firm on Glassdoor’s Best Places to Work list and have earned the #1 overall spot a record seven times.
Extraordinary teams are at the heart of our business strategy, but these don’t happen by chance. They require intentional focus on bringing together a broad set of backgrounds, cultures, experiences, perspectives, and skills in a supportive and inclusive work environment. We hire people with exceptional talent and create an environment in which every individual can thrive professionally and personally.
WHO YOU’LL WORK WITH
As the premier consulting partner for the private equity industry, Bain's PEG boasts a global practice that is over three times larger than any competitor. Our network of over 1,000 professionals supports private equity and institutional investor clients through every stage of the investment life cycle, from deal generation and due diligence to portfolio value creation and exit planning.
Bain & Company is developing a suite of cutting-edge data and software solutions designed to revolutionize how the private equity industry uses data for investment insights and decision-making.
The PEG Innovation team's mission is to create analytical solutions for Bain clients, teams, and the broader institutional investor space using proprietary software and data products. This includes the development, commercialization, and daily management of Bain's proprietary datasets, data, and software businesses.
WHERE YOU’LL FIT WITHIN THE TEAM
Full Stack Software Engineers build, ship, and operate the end-to-end products and shared platform services that power Bain's PE due diligence platform within PEG Engineering. You work across the entire stack: responsive React and Svelte frontends styled with Tailwind, Node.js (TypeScript, Express) and Python (FastAPI) backend services, RESTful and type-safe APIs, PostgreSQL data models, and the scheduled and event-driven jobs that keep data flowing. Our environment is deliberately polyglot and fast-moving, and we expect this engineer to be comfortable moving across languages, frameworks, and layers rather than staying in one lane.
A significant portion of this work is AI-enabled: integrating LLMs and agentic patterns into real analyst workflows through retrieval pipelines, structured outputs, streaming interfaces, and human-in-the-loop review. We weight strong engineering fundamentals as the foundation and treat AI as a reviewed co-pilot, not an autopilot. This is an engineering role in the full sense, we expect you to understand the problem, weigh approaches, and own the design and the outcome, not only produce code. AI accelerates the implementation, the engineering judgement behind it stays with you. Every AI-assisted change is expected to be understood, validated, and owned by the engineer who commits it.
You are expected to deliver production-quality code, write tests for the workflows you build, own features end-to-end, and partner with Product and Design to turn requirements into reliable user experiences. Engineers operate with increasing independence and breadth across the grade: earlier in the grade with guidance from senior engineers on the most complex or ambiguous work, and toward the upper end owning delivery independently, leading implementation of features, and providing technical guidance to peers and more junior engineers. Most of our systems run on Microsoft Azure, with some workloads on AWS. You collaborate with Platform Engineering for shared services such as Auth/RBAC, Audit, Notifications, and File handling, and with the AI teams to integrate intelligent features safely and correctly.
WHAT YOU'LL DO
Product and Platform Delivery Across the Full Stack (80%)
- Build and maintain product UI features in React and Svelte with TypeScript and Tailwind, following established component patterns and the shared design system.
- Build and maintain backend services in Python (FastAPI, Pydantic v2) and Node.js (TypeScript, Express), following established code conventions and PR standards.
- Design and implement RESTful and type-safe API contracts (Zod, Pydantic, OpenAPI codegen, or similar); own the contract boundary between frontend and backend services and manage consumer impact when it changes.
- Model and evolve PostgreSQL schemas via SQLAlchemy and equivalent patterns; write safe, backwards-compatible migrations using the expand/contract approach.
- Build and operate scheduled and event-driven jobs (cron-based and queue-driven systems) for ingestion, enrichment, and background processing; make them idempotent, observable, and safe to re-run.
- Integrate AI-enabled features into product workflows: LLM calls, retrieval-augmented generation, vector search, structured and streaming outputs, and human-in-the-loop review, following established safety and evaluation patterns.
- Integrate correctly with shared platform services (Auth/RBAC, Audit, Notifications, File handling); raise contract issues early and coordinate changes through the teams.
- Write unit and integration tests for delivered features (Vitest and React Testing Library on the frontend, pytest and Jest on the backend) and contribute to end-to-end tests (Playwright) for owned workflows.
- Add observability for owned changes: follow established logging patterns, emit standard metrics, and update dashboards and runbooks for impacted workflows.
- Contribute to containerized delivery (Docker) and support Kubernetes configuration through Helm values and manifests; deploy primarily to Azure, with some workloads on AWS.
- Support releases for owned work: validate changes in staging, participate in incident triage, and follow runbooks and escalation paths.
Technical Contribution, Collaboration, and Growth (35%)
- Participate fully in team ceremonies (refinement, planning, standup, review, retro); ask clarifying questions early and communicate blockers clearly.
- Participate in code reviews as both author and reviewer; incorporate feedback and raise code quality over time.
- Provide technical guidance to peers and mentor more junior engineers through review and pairing (expected toward the upper end of the grade).
- Contribute to engineering standards, reusable patterns, and shared product infrastructure (design system, API client libraries, OpenAPI and type generation).
- Contribute to technical discovery, proofs-of-concept, and evaluation of new tools and techniques, including emerging AI engineering practices.
- Use AI coding assistants to accelerate scaffolding, refactors, and first-pass tests; read, understand, and validate all generated code before committing.
- Contribute documentation for delivered features (release notes, runbook updates, and lightweight technical notes) as part of the Definition of Done.
ABOUT YOU
- Bachelor's degree in Computer Science, Engineering, Information Systems, or a related field (or equivalent combination of education, training, and experience).
- 2 to 5 years of professional experience building and shipping web applications and backend services in a production environment, with greater independence, breadth, and ownership expected toward the upper end of the grade.
- Demonstrated experience implementing features in modern TypeScript frameworks (React and/or Svelt) and writing tests for shipped work.
- Experience building backend APIs and services in Python (FastAPI) and/or Node.js (TypeScript, Express), and working with relational databases including schema evolution and migrations.
- Comfortable working productively across a polyglot codebase (Python and TypeScript) rather than a single language or layer.
- Production exposure to a major cloud provider (Microsoft Azure and/or AWS).
- Exposure to building or integrating AI-enabled features (LLM integration, retrieval, structured outputs), grounded in solid software engineering fundamentals.
- Comfortable collaborating with Product and Design to translate requirements into working software and iterating on feedback.
Full-Stack Product Engineering
- Frontend fundamentals in TypeScript with React and/or Svelte: component composition, state management, and performance-aware UI development; comfortable styling with Tailwind and a shared design system.
- Frontend testing: Vitest and React Testing Library (or equivalent); able to write reliable unit and integration tests and debug failures.
- Backend fundamentals in Python (FastAPI, Pydantic v2, async patterns) and/or Node.js (TypeScript, Express); able to build and maintain well-structured services under established conventions.
- API design and validation: RESTful services with validated and type-safe contracts (Zod, Pydantic, OpenAPI codegen, or similar); understands versioning and backwards compatibility.
- Relational data fundamentals: comfortable writing and reading raw SQL, designing normalized schemas, and reasoning about tables, views, indexes, and foreign-key relationships rather than relying solely on ORM-generated patterns.
- Working PostgreSQL knowledge: query plan analysis when debugging slow queries, JSONB usage patterns, and the ability to reason about triggers and stored procedures where the team uses them.
- Migration discipline: writes safe, backwards-compatible migrations following the expand/contract approach; understands why breaking changes are dangerous in a multi-service environment.
- Scheduled and event-driven systems: comfortable building and operating cron-based and queue-driven jobs, with attention to idempotency, retries, and observability.
- Docker basics: comfortable building and running containers locally and following non-root image conventions where required.
- Kubernetes familiarity: understands health checks and resource limits at a basic level and can update Helm values with guidance.
- CI/CD familiarity: comfortable reading GitHub Actions workflow output and fixing common test and lint failures in PRs.
Cloud
- Practical experience with Microsoft Azure and/or AWS: deploying and operating product workloads, triaging logs and metrics, and reasoning about cost and scaling implications of service choices.
- Familiarity with infrastructure-as-code (Terraform or equivalent): able to read existing modules, make scoped changes, and review changes with a security and cost lens. Valued, not required.
Generative AI and Agentic Systems
- Hands-on experience integrating AI-enabled features into applications: LLM calls, prompt and structured-output design, and streaming or human-in-the-loop patterns.
- Working knowledge of retrieval-augmented generation and vector search (for example pgvector), including chunking, embeddings, and retrieval quality at a practical level.
- Familiarity with agent orchestration frameworks (LangChain, LangGraph, or equivalent) and with evaluation and regression-gate concepts for AI features.
- Treats AI coding assistants (Cursor, GitHub Copilot, or equivalent) as a co-pilot, not an autopilot: uses them to scaffold, refactor, and draft tests, but reads, understands, and revises every line before committing, and does not ship generated code they cannot fully explain.
General
- Operates as an engineer, not only a coder: frames the problem, weighs approaches, and designs for building; uses AI to accelerate execution, not to substitute for the thinking behind it.
- Builds for users: optimizes for analyst workflows and clarity, not just technical elegance.
- Delivers production-quality work: tests, observability, and documentation are part of the Definition of Done.
- Raises concerns early when requirements, contracts, or data models are unclear; seeks help rather than getting stuck.
- Communicates clearly, collaborates well across Product, Design, and Engineering, and grows toward providing technical guidance to others within the grade.
- This role follows a hybrid model, requiring in-office presence at least 1 day per week
U.S. COMPENSATION INFORMATION
Compensation for this role includes base salary, annual discretionary performance bonus, 401(k) plan with an annual employer contribution based on years of service and Bain’s best in class benefits package (details listed below).
Some local governments in the United States require a good-faith, reasonable salary range be included in job postings for open roles. The estimated annualized compensation for this role is as follows:
In Atlanta, the good-faith, reasonable annualized full-time salary range for this role is between $84,250 - $101,250
In Texas, the good-faith, reasonable annualized full-time salary range for this role is between $88,500 - $106,250
In Chicago, the good-faith, reasonable annualized full-time salary range for this role is between $93,000 - $111,500
Placement within these ranges will vary based on factors such as experience, education, training, and skill level.
Compensation also includes a discretionary annual performance bonus, 401(k) plan with employer contribution, and Bain’s best-in-class benefits—including full premium coverage for medical, dental, and vision, generous paid time off, and more.
Annual discretionary performance bonus
This role may also be eligible for other elements of discretionary compensation
4.5% 401(k) company contribution, which increases after 3 years of service and is 100% vested upon start date
Bain & Company's comprehensive benefits and wellness program is designed to help employees achieve personal independence, protection and stability in the areas most important to you and your family.
Bain pays 100% individual employee premiums for medical, dental and vision programs, offering one of the most comprehensive medical plans for employees without impacting your paycheck
Generous paid time off, including parental leave, sick leave and paid holidays
Fully vested 401(k) company contribution
Paid Life and Long-Term Disability insurance