Pune (IND)
Software Development
Fulltime
Published: 2026-06-25
What do we do?
Introducing Thinkproject Platform
Pioneering a new era and offering a cohesive alternative to the fragmented landscape of construction software, Thinkproject seamlessly integrates the most extensive portfolio of mature solutions with an innovative platform, providing unparalleled features, integrations, user experiences, and synergies.
By combining information management expertise and in-depth knowledge of the building, infrastructure, and energy industries, Thinkproject empowers customers to efficiently deliver, operate, regenerate, and dispose of their built assets across their entire lifecycle through a Connected Data Ecosystem.
What your day will look like
About the Role
We are looking for a Senior React Software Developer (f/m/d) to own core product features within our cloud based SaaS platform. You will design, build, and maintain frontend services that are used by major infrastructure organisations across Europe — collaborating daily with product managers, architects, and backend engineers across our international team.
This is a hands-on engineering role. You will write production code every day, contribute to architecture decisions, and be responsible for the quality of what you ship from requirements through to post-release support.
Tech you will work with daily:
React 18+ | TypeScript strict | RTK Query | React Hook Form + Zod | MUI / design tokens | REST APIs | Docker | Kubernetes | Azure
Key Responsibilities
Frontend Engineering
Design, develop, and maintain React frontend services on our SaaS platform
Write clean, testable, well-documented TypeScript following strict-mode standards
Build and consume RESTful APIs in close collaboration with backend engineers
Architecture & Code Quality
Apply object-oriented design principles and patterns (SOLID, DDD, CQRS) where they solve real problems — not as a checklist
Participate in code reviews and hold the bar for engineering standards across the team
Identify and resolve performance bottlenecks before they reach production
Delivery & Continuous Improvement
Contribute to the full software development lifecycle — from requirements and architecture through to deployment and production support
Engage in technical discussions and help improve our development processes, tooling, and delivery practices
Domain Integration
Work with BIM data formats and standards (IFC, BCF, COBie) as part of integration features —understanding the construction domain is part of what makes this role different from a generic
frontend position
What you need to fulfill the role
Required Skills & Qualifications
You have 6+ years of professional React experience and have shipped production-grade TypeScript at scale. Specifically:
6+ years of professional experience in React development
Production experience with React 18+, TypeScript (strict mode), RTK Query, React Hook Form+ Zod, and MUI / design tokens
Solid understanding of object-oriented design principles and software architecture patterns: SOLID, DDD, CQRS
Experience building and consuming RESTful APIs
Familiarity with Azure and containerisation (Docker / Kubernetes)
Unit testing and test-driven development — in practice, not just in principle
Comfortable in Agile/Scrum delivery environments with high individual ownership
English fluency (written and spoken)
Nice-to-Have (Bonus Skills)
Backend development experience (PHP or C#)
Microservices or event-driven architecture (Azure Service Bus, MassTransit)
Prior experience in construction, engineering, or real estate software domains
Soft Skills
Engineering rigour — you care about the correctness and maintainability of what you ship, not just whether it runs
Ownership mindset — you build it, you run it, you improve it
Clear written and verbal communication: able to explain technical decisions to non-engineering stakeholders
Collaborative: you build working relationships across product, backend, and design without friction
Comfortable with ambiguity — you can move from incomplete requirements without waiting for perfect conditions
What success looks like
Month 3: Independently delivering features across the React codebase; code reviews are valued by the team; no regressions introduced
Month 6: Owning a non-trivial product area end-to-end; contributing to architecture discussions with evidence-backed proposals
Month 12: Recognised as a technical reference point for React standards on the team; at least one significant performance or quality improvement delivered to production
You're probably NOT a fit if
You prefer to work within a fully defined spec with minimal technical ownership
You are not comfortable with TypeScript strict mode in production
You are not interested in the construction and infrastructure domain
You need a large team around you to make technical decisions
What we offer
Compensation (Pune, Senior)
Competitive fixed salary — shared on request
Variable performance bonus: 5% of fixed
Continuous learning & certification budget
Learning programmes | Career growth | International exposure
At Thinkproject, we run feedback cycles that are honest and frequent. We believe the best engineering cultures are built on trust, transparency, and shared ownership — not hierarchy. Our Pune team is a core part of a global organisation, collaborating across time zones with colleagues in Germany, France, the UK, UAE, Spain, New Zealand, and Australia
Lunch 'n' Learn Sessions I Women's Network I LGBTQIA+ Network I Coffee Chat Roulette I Free English Lessons I Thinkproject Academy I Social Events I Volunteering Activities I Open Forum with Leadership Team (Tp Café) I Hybrid working I Unlimited learning
Your contact:
Viviana Baltag
How to apply
Submit your application at careers.thinkproject.com, including:
Salary expectations
Potential start date
A short write-up (max 300 words) on the most complex frontend architecture decision you have made in production — what the problem was, what you chose, and what you would do differently now
Working at thinkproject.com - think career. think ahead.
#LI-VB1
#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; }