Juliana Torrisi is in direct contact with the company and can answer any questions you may have. Email
The Role
We are looking for an AI Engineer (Computer Vision) to join an existing codebase and ship features end-to-end for an AI-assisted roof estimation MVP that ingests PDF blueprints, extracts roof geometry (deterministic + VLM), provides a raw SVG HITL board for reviewer corrections, and generates verified takeoff reports.
Tech Stack
• Language: JavaScript (ES2020+); Node.js runtime (Node 22, pinned 22.22.1 via .nvmrc)
• Backend: express for HTTP server; server entry at index.js
• PDF processing: pdfjs-dist (rasterization + PDF parsing); helper scripts in pdfDocuments.js and pdfPreRasterService.js
• Deterministic extractor / Roof graph: custom extraction code in roofGraph (extractor, constants, worker)
• Frontend: Vanilla JavaScript (no bundler); orchestrator in main.js
• HITL board: SVG-based interactive board
• LLM / VLM Providers: OpenAI + Google Gemini adapters under providers and a proxy route at llm.js
• Validation: zod used across server & client contracts (chat contracts in contracts)
• Database / Storage: better-sqlite3 for local persistence (db.js); storage abstraction in storage.js with optional @aws-sdk/client-s3 for R2/S3
• Auth/Session: JWT-based session management (auth.js) with httpOnly cookie rp_session
• Testing & QA hooks: Browser QA hooks (browserQaHooks.js) expose window.__roofProofTestHooks for headless testing without altering product behavior
• Dev / CI / Containers: DevContainer / Docker Compose (docker-compose.yml) for local development; npm scripts for dev, checks, and verifiers; production deploys to AWS via GitHub Actions (OIDC → ECR → EBS redeploy via SSM); persistent EBS volume for SQLite and uploaded PDFs
• Other tools: Node --watch dev flow, deterministic milestone verifiers, some Python used for experimental PDF prepass tooling (pdf_prepass)
• Notes: Codebase mixes deterministic image-processing with VLM-assisted flows; many flows follow a contract+flow pattern (flows + contracts).
Major Responsibilities
• Maintain and extend the deterministic roof extraction algorithms in roofGraph
• Build portal foundation for proper authentication and access controls.
• Implement and validate VLM-assisted flows (contract + flow) and their server adapters (providers, llm.js, chat)
• Improve the Fabric.js board UX and synchronization with backend state (board, boardStore.js)
• Add/maintain verification scripts and QA hooks used by npm run verify:*
• Hardening: input validation (Zod), error handling, and performance/scalability for rasterization and extraction pipelines
• Work with Docker/DevContainer for reproducible development and CI integration
• Write tests or verifiers for new contract surfaces and update verify-baseline.js when adding milestone verifiers
• Collaborate on deployment concerns (optional): S3/R2 storage, ECR/terraform infra in aws
• Suggest enhancements and restructuring for better performance from the agentic workflow
Required Experience & Skills
• Experience with full-stack JavaScript/Node.js development (Express)
• Strong experience with canvas libraries (Fabric.js or equivalent)
• Familiarity with PDF rasterization and vector/image processing (pdfjs-dist or similar)
• Experience integrating LLM/VLM providers and designing robust request/response contracts
• Practical SQLite experience (better-sqlite3) and schema/transaction design
• Proficiency with Zod or runtime schema validation patterns
• Comfortable with Docker / DevContainer and npm-based workflows
• Good debugging skills for long-running worker processes and child-process architectures
• Test automation experience (Playwright or similar) is a plus
Nice-to-Have
• Prior experience with OpenAI/Gemini and prompt/response engineering for multimodal flows
• Experience with AWS S3 or Cloudflare R2 and @aws-sdk/client-s3
• Background in geometry, computational geometry, or CAD-like tooling
• Familiarity with TypeScript migration (repo currently uses vanilla JS)
• Experience writing verification/milestone scripts and CI workflows