Jobs
T

Senior Full-Stack Engineer (Java|React|GCP) (f/m/d)

ThinkprojectMH, IN23h ago
Full-timevia indeed

Required Skills

apici/cdgcpgraphqljavakafkamicroservicesnext.jspythonreactrestspringtypescript

Job Description

Pune (IND)

Software Development

Fulltime

  • *Published:** 2026\-07\-15

What do we do?

Thinkproject is the leading platform for construction and infrastructure information management — used by engineering, construction and operations teams across Europe, the Middle East, and APAC to manage complex built assets across their entire lifecycle.

Our platform connects 9 products into a unified data ecosystem: document control, BIM coordination, field execution, asset management, and AI\-powered project intelligence. Our customers include major infrastructure owners, contractors and engineering firms managing some of the most technically demanding projects in the world.

The analytics applications you will build are how our customers and internal teams understand, interact with, and act on the data our platform collects. They are the user\-facing layer of the data ecosystem.

What your day will look like

About the Role

We are hiring a Senior Full Stack Engineer (f/m/d) to build and evolve the analytics and data applications that serve our customers and internal teams — and to lead the modernisation of the legacy Java/Spring Batch ingestion layer that currently underpins them.

This is a highly hands\-on role with breadth across backend (Java/Spring, Python), frontend

(TypeScript/React), cloud (GCP, Cloud Run, GKE), and data. You will own features end\-to\-end: from design through implementation, deployment, and production operation.

The Spring Batch modernisation is the most technically substantive challenge in this role. You will be inheriting legacy ingestion services that need to be redesigned, migrated to cloud\-native GCP architecture, and retired cleanly — without disrupting the analytics applications that depend on them.

That's the real work

  • *Time allocation (approximate):**

\~40% analytics application development (frontend \+ backend) \| \~30% Spring Batch modernisation and cloud\-native migration \| \~15% platform reliability and operations \| \~15% architecture, documentation, and mentoring

Key Responsibilities

Analytics \& Data Applications

Design, build, and operate enterprise analytics portals that integrate with modern visualization and reporting platforms

Build self\-service data access applications for internal and external customers

Develop administration portals for data onboarding, configuration management, and platform administration

Implement secure, scalable, and maintainable application components for a global customer base

Build and maintain APIs consumed by analytics applications, administration tools, and third\-party integrations

Platform Modernisation

Maintain, enhance, and progressively retire legacy Spring Batch and Java\-based ingestion solutions

Design and implement modern cloud\-native replacements using GCP services (Cloud Run, Pub/Sub, GKE) where appropriate

Reduce technical debt systematically — not just keep it at bay

Improve platform reliability, scalability, and operational efficiency as part of modernisation work

Contribute to architecture decisions on the migration target state

Full Stack Engineering

Develop modern web applications using TypeScript and React — from component design to production deployment

Build backend services, REST APIs, and integrations in Java (Spring Boot/Spring Batch) and Python

Implement event\-driven integrations where the architecture requires it

Build reusable libraries, components, and tooling that improve productivity across the team

Software Engineering Excellence

Apply test\-driven development, code reviews, CI/CD, and automated testing as default practice

Produce high\-quality, maintainable, and well\-documented software

Participate in architecture discussions and contribute to component\-level design decisions

Continuously improve engineering standards and code quality across the team

AI\-Assisted Engineering

Use AI\-assisted development tools (OpenCode, Claude Code, or equivalent agentic coding platforms) to accelerate implementation, testing, refactoring, and documentation

Maintain full engineering accountability for delivered software — AI tooling accelerates your work; it doesn't replace your judgment

What you need to fulfill the role

Required Skills \& Qualifications

You are a strong full stack engineer with Java/Spring depth on the backend and TypeScript/React on the frontend — and you have worked in cloud\-native environments on GCP. Specifically:

8\+ years of professional software engineering experience

Strong Java proficiency — Spring Boot and Spring Batch in production; you can read, debug, and extend Spring Batch jobs under real production pressure

Strong Python proficiency — backend services, data pipelines, scripting

Strong TypeScript and React proficiency — building production\-grade web applications, not component libraries in isolation

Strong REST API design and implementation experience

Strong GCP experience — Cloud Run and GKE in particular; you have deployed and operated services on these platforms

Strong understanding of distributed systems concepts, microservices architecture, and API design principles

Experience with CI/CD pipelines and modern software delivery practices TDD, automated unit and integration tests, and code review as standard practice

Experience troubleshooting production systems and leading root cause analysis

Nice\-to\-Have (Bonus Skills)

Event\-driven architecture experience (Pub/Sub, Kafka, Cloud Storage triggers)

Redux or modern state management framework experience

GraphQL experience

Next.js experience

Data warehousing concepts and data modelling (BigQuery, Snowflake)

Experience building internal enterprise platforms or administration portals

Experience leading technical initiatives or mentoring junior engineers

Experience working in globally distributed engineering organisations

Soft Skills

Ownership mindset — you drive work to completion without being managed

Comfortable with technical ambiguity — the Spring Batch modernisation does not have a finished design; you will help define it

Strong communicator across technical and non\-technical stakeholders

Mentors naturally — you invest in the growth of engineers around you

Balances delivery speed with software quality — you know when to move fast and when to slow down

What success looks like

In 30 days

Fully onboarded on the analytics application stack, Spring Batch ingestion layer, and GCP infrastructure

First frontend or backend contribution shipped to production

Spring Batch modernisation scope and target architecture understood

In 90 days

Own at least one analytics portal feature end\-to\-end — from design through production

deployment

  • *First Spring Batch modernisation milestone delivered:** one legacy service migrated or retired

Contributing to architecture decisions on the migration target

In 6 months

Major analytics portal capability delivered and in production

Meaningful reduction in Spring Batch legacy footprint

Observability and reliability improvements shipped across at least one component

In 12 months

Multiple analytics portal capabilities delivered with full engineering ownership

Spring Batch modernisation significantly advanced — legacy footprint materially reduced

Junior engineers mentored and growing; engineering practices stronger across the team

The 3 Must\-Haves

1\. Java \+ Spring Boot/Spring Batch production depth — you can maintain, extend, and migrate real Spring Batch jobs; this is not negotiable and cannot be learned on the job here

2\. TypeScript \+ React in production — not side projects; shipped, maintained applications that real users depend on

3\. GCP cloud\-native deployment experience — Cloud Run and/or GKE in production; you

understand how cloud\-native services behave under load and failure

You might be a fit if

You have maintained a legacy Java codebase and understand the difference between refactoring it carefully and breaking it

You enjoy owning both the frontend and the API layer — you don't wait for a backend engineer to build what you need

You find the Spring Batch cloud\-native migration problem interesting rather than daunting

You have strong opinions about API design and can explain them clearly

You're probably NOT a fit if

Your Java experience is primarily greenfield microservices — Spring Batch specifically requires different experience

Your frontend work has been UI components and design systems, not complete web applications with API integration

You prefer deep specialisation in one layer over breadth across the stack

You need a stable, well\-defined architecture to work within — the modernisation path is still being shaped

What we offer

GCP certification sponsorship \| Hybrid working \| Work from abroad \| Flexible working hours \| Udemy Access \| Thinkproject Academy \| Free English lessons \| Unlimited learning \| Headspace community access \| Women's Network \| Corporate volunteering \| Social events \| Open forum with the Leadership Team (TP Café)

If you join us in Pune, you will own meaningful work across the full stack — not be a specialist locked into one layer. The Spring Batch modernisation is real technical debt that needs a real engineer, not a workaround.

  • *Your contact:**

Preethika Ramdass

Please submit your application, including salary expectations and potential date of entry

  • *Submit your CV and a short written answer (max 250 words) to:**

"You are inheriting a Spring Batch job that runs nightly, processes 500k records, and has no tests. The team wants to migrate it to a cloud\-native GCP solution. Walk me through your first two weeks."

Working at thinkproject.com \- think career. think ahead.

\#LI\-PR1

\#LI\-Hybrid

  • *\#content\_zone { max\-width:** 834px; } \#scheme\_detail\_data { width: 100%; display: table; margin\-bottom: 10px; } .scheme\-border { border: 1px solid rgba(220,223,226,0\.8\); } .scheme\-margin { margin\-top: 10px; } .scheme\-display .scheme\-content { font\-size: 16px; padding: 14px 24px; background\-color: \#ffffff; line\-height: 1\.6; } .scheme\-display .scheme\-title { word\-break: break\-word; } .scheme\-display .scheme\-title h2 { margin: 0px; font\-size: 28px; line\-height: 2; padding: 0px; } .scheme\-display .scheme\-title ul { margin\-bottom: 16px; } .scheme\-display .video { width: 100%; height: 400px; } .scheme\-display h2\.scheme\-headline { margin: 0px 0px 18px 0px; padding: 0px; } .scheme\-display .content\-images { position: relative; overflow: hidden; display: block; box\-sizing: border\-box; padding: 0px; } .scheme\-display .content\-images: not(: has(.content\-images\-frame)) { height: 335px; } \#header\_image { display: none; } \#jobTplContainer ul.scheme\-additional\-data { margin\-bottom: 0px; min\-width: 40%; } .scheme\-additional\-data { float: left; margin: 0; padding: 0; list\-style: none; } .scheme\-additional\-data li { list\-style: none; margin: 4px 15px 0px \-3px !important; } .scheme\-additional\-data li.left { float: left; } .scheme\-display .slide\-images: nth\-child(2\), .scheme\-display .slide\-images: nth\-child(3\) { display: none; } .scheme\-display .slide\-images { width: 100%; position: absolute; top: 50%; left: 50%; \-webkit\-transform: translate(\-50%,\-50%); \-ms\-transform: translate(\-50%,\-50%); } .scheme\-display .content\-images\-frame { position: relative; width: 100%; height: 335px; overflow: hidden; } .scheme\-display .content\-images\-description { display: block; text\-align: left; font\-size: 1rem; line\-height: 1\.4; color: \#000; padding: 8px 24px; border\-bottom: 1px solid rgba(220,223,226,0\.8\); } .scheme\-content .user\-image { width: 100px; height: 100px; border\-radius: 50%; float: left; line\-height: 100px; background: no\-repeat center center; background\-size: cover; } .scheme\-content .user\-data { height: 100px; margin\-left: 80px; } .scheme\-content .user\-data li { list\-style: none; } i.fa\-fw { margin\-right: 5px; margin\-left: 5px; } @media (max\-width: 768px) { .scheme\-additional\-data li { display: block; float: none; } .scheme\-display .content\-images { height: 250px; } } @media (max\-width: 650px) { .scheme\-display .content\-images { height: 250px; } } @media (max\-width: 450px) { .scheme\-display .content\-images { height: 133px; } } \#frame\_zone { background\-color: \#ffffff; }

Similar Jobs

Browse all jobs

Job Overview

Job type
Full-time
Work mode
On-site
Location
Mumbai
Posted
23h ago
Source
Indeed