Description
The Opportunity
Our client β an established, fast-growing name in the renewable energy sector β is mid-way through replacing a legacy CRM with a suite of modern, hand-built React applications that the entire business runs on: order management, installation scheduling, product configuration, inventory and financial reporting.
You would be joining at a genuinely pivotal moment.
The legacy system is still live, still relied upon, and being retired screen by screen rather than in one risky cutover β which means the applications you build won't sit at the periphery of the business, they'll become the business's operating system.
With no component library and a deliberately lean stack, you'll have real authority over how these interfaces are built, not just what they do.
This opportunity suits someone who wants ownership without bureaucracy: no separate QA, design or DevOps function standing between your judgement and what ships.
In a small, senior-minded team working close to production on software that people depend on for eight hours a day, the impact of getting the details right β and the trust placed in you to do so β is direct and visible.
About the Role
You'll join the internal software team responsible for the CRM and operations platform our client runs on.
The mandate is to build and maintain the React applications replacing their legacy CRM β spanning order management and scoping, installation scheduling, product and package configuration, inventory fulfilment, and financial reporting β used daily by sales, scheduling, supply chain, post-installation and finance teams.
Day to day, this means designing complex interfaces (multi-step configuration builders, dense filterable data tables, approval workflows, forms with substantial validation logic), extending and refactoring large existing components without disrupting the teams who depend on them, and writing the API endpoints and SQL that sit behind your own screens.
You'll implement role and scope based access, support integrations with accounting, inventory and payments platforms, and work directly with the people using the software to translate their real needs into working interfaces.
This isn't a role for building marketing pages or shipping isolated features β it's dense, stateful, operational software, hand-built in React with no component library, where your interface decisions have a direct, daily effect on how the business runs.
Key Responsibilities
Build and maintain the React applications that make up the CRM and operations platform, working across order management, scheduling, product configuration, inventory and reporting.Design and implement complex interfaces β multi-step configuration builders, dense data tables with filtering and drill-down, approval workflows, and forms with substantial validation logic.Extend and refactor large existing components, some running to thousands of lines, without disrupting the teams who depend on them daily.Implement role and scope based access so each team sees the data and actions appropriate to them.Write the supporting API endpoints and SQL that these interfaces depend on.Support integrations with accounting, inventory and payments platforms where they surface in the applications.Work directly with the teams who use the software to understand what they actually need, and translate that into working screens.
The Successful Applicant
Essential:
Strong React skills β hooks, component composition, and state management in genuinely complex forms with many interdependent fields and meaningful validation, kept maintainable at scale.Sound interface judgement β able to look at a dense operational screen and identify what's confusing, missing, or wasting users' time.Working SQL β joins, aggregation, CTEs β comfortable querying data directly rather than relying on others for it.Solid Node.js and REST API experience, including the ability to read existing integration code and determine what a third-party API actually does, as distinct from what its documentation claims.A verification mindset β checking underlying data before forming a theory, and testing the awkward path as well as the obvious one.Desirable:
Experience with internal tools, admin interfaces or operational dashboards, rather than consumer-facing products.A track record of improving large, existing codebases incrementally.Exposure to Google BigQuery specifically (PostgreSQL, Snowflake or similar transfers readily).Background with an accounting or inventory platform.Experience in logistics, field services or operations.
Why This Role
Real ownership, not ticket work.
You're building the applications the business actually runs on, not shipping isolated features into someone else's architecture β with no component library standing between your decisions and the result.A pivotal moment to join.
The legacy CRM is being retired screen by screen, not replaced in one risky cutover β meaning the software you build now becomes the operating system the business depends on, not a peripheral rewrite.Trust without bureaucracy.
No separate QA, design or DevOps function β you own the code, the test, and the reasoning behind it, in a small, senior-minded team working close to production.Technical depth, not just breadth.
End-to-end work across React, Node.js, SQL and BigQuery, on genuinely complex problems β configuration engines, data reconciliation, bulk operations at scale β rather than routine CRUD.A client that values judgement over speed.
They'd rather have a careful, methodical engineer than a fast one, which means the culture rewards getting it right, not just getting it out the door.