Full Stack Developer
Role details
Job location
Tech stack
Job description
Hillpointe is hiring a Full Stack Engineer to help build HPOS, the property management platform for our vertically integrated multifamily real estate business, from scratch. This is a greenfield engineering role. You will help establish the architecture, design the data model, ship the first services, and set the patterns the rest of the platform will inherit.
Expect a zero-to-one cadence. Design an API contract in the morning, ship a Postgres migration before lunch, push a Bicep change to staging by end of day. We optimize for engineers who can hold the full stack in their head, make sound architectural decisions, and ship working software at pace.
The Role at a Glance:
- Scope
Schema to UI: Database design, API contracts, frontend components, infrastructure. No tier is off-limits.
- Surface
Greenfield build: Property management platform built from scratch. Multi-tenant from day one. Operator tooling, leasing, accounting, capital markets.
- Cadence
Zero to one: Trunk-based development, short-lived branches, feature flags, working software in staging on a daily rhythm.
- Impact
Foundational: What you ship in the first year becomes how the platform works for the next ten.
Key Responsibilities:
- React surfaces
First-generation operator and resident-facing applications. React 18 with TypeScript, Vite, TanStack Query v5, React Hook Form, Zod. Component composition against the PDS Foundation design system. The patterns set here will be inherited by every surface that follows.
- Service layer
TypeScript services on Node 20 LTS with NestJS or Express. OpenAPI contracts shared with the front end through code generation. JWT and OAuth flows, RBAC enforcement, structured audit logs, request-scoped tracing. The shared libraries that every future service will depend on.
- Postgres data model
Multi-tenant schema design on Azure Database for PostgreSQL Flexible Server. Tenant isolation strategy, normalization tradeoffs, index strategy from day one, audit trails baked into the data model. Migrations through Prisma or Knex.
- Warehouse integration
Stand up change data capture from Postgres into the Bronze layer of Enzo, our medallion warehouse. Establish read models surfaced from Gold-layer views back into product. Contract-first design with the data team.
- Event-driven backbone
Asynchronous workflows over Azure Service Bus. Idempotent consumers, dead-letter handling, exactly-once where the business requires it. The async patterns the rest of the platform will adopt.
Requirements
Bicep modules for App Service, Functions, Container Apps, Service Bus, Key Vault, and managed identities. Multi-stage Azure DevOps pipelines. Structured logs, OpenTelemetry, and SLO definitions in place before we ever take production traffic.
- Stack:
- Front End
React 18 + TypeScript 5
o React 18 with Suspense and concurrent features, TypeScript 5.x strict, Vite, TanStack Query v5, React Hook Form with Zod, the PDS Foundation design system through Figma MCP.
- Back End
Node 20 + NestJS
o Node 20 LTS, NestJS or Express, TypeScript strict mode, Prisma against Postgres, BullMQ on Redis for background work, OpenAPI 3.x contracts generated for both sides.
- Data
Azure Postgres + Fabric
o Azure Database for PostgreSQL Flexible Server, Azure Data Factory for orchestration, Microsoft Fabric lakehouse with Bronze/Silver/Gold layers, Power BI Premium, Python and PySpark on the data team.
- Cloud
Microsoft Azure
o App Service Premium, Function Apps, Container Apps, Service Bus with sessions, Key Vault with managed identities, Application Insights, Front Door Premium, private endpoints throughout.
- Devops
GitHub + Azure DevOps
o GitHub for source and PR review, Azure DevOps multi-stage YAML pipelines for CI/CD. Trunk-based development, required reviews, automated test gates, environment promotion via parameters.
- Infrastructure
Bicep + Terraform
o Bicep modules for first-party Azure, Terraform for cross-cloud and third-party providers. Remote state in Azure Storage with locking, drift detection in pipelines., * Required:
- Five-plus years in production: building web applications. You have taken a system from greenfield to production, or rebuilt the foundations of one that needed it.
- TypeScript depth: generics, conditional types, discriminated unions, branded types. You know when to reach for them and when to stop.
- React expertise: hooks, render optimization, error boundaries, Suspense. You can diagnose a re-render storm and you've written a custom hook that earned its keep.
- Production Node.js: event loop awareness, streaming and backpressure, memory profiling, graceful shutdown, structured logging.
- Relational data modeling: schema design, normalization tradeoffs, index strategy, partitioning, query plan analysis. You catch N+1 in code review.
- API design: REST conventions, idempotency, versioning, pagination, OpenAPI specifications, authentication patterns (OAuth 2.0, JWT, session).
- Azure or equivalent: production experience with App Service, Functions, identity, networking, observability. AWS or GCP at the same depth is fine.
- CI/CD and IaC discipline: pipeline-as-code, environment promotion, automated test gates, infrastructure as reviewed artifacts, no clicks in the portal.
- Preferred
- Postgres extensions in production: pg_stat_statements, pgvector, pgcrypto, PostGIS, logical replication.
- Lakehouse and BI tooling at production scale: Microsoft Fabric, Power BI Premium with DAX, Python and PySpark on the data plane.
- Event-sourced architectures, CQRS, sagas, or domain-driven design applied to a real codebase.
- LLM-assisted engineering: Claude Code, Cursor, or retrieval-augmented internal tooling shipped to other engineers.
- Real estate, property management, financial services, or other regulated-industry domain experience.