By combining automation, technology, and a global team of accounting experts, we deliver faster, more accurate financial operations at scale.
We’re a team of builders, problem-solvers, and operators from around the world, working together to modernize one of the most critical functions in real estate.
Learn more at Proper.ai
We are looking for a Senior Software Engineer with strong backend and systems fundamentals to help own the core of our platform: the services, data models, and automations behind workflow and productivity tooling for B2B accounting operations.
This is a depth role, not a breadth role. The work is logic-heavy — multi-service data flows, third-party platform integrations, and document-processing pipelines where correctness matters more than surface area. The engineer will be a technical counterpart to the Tech Lead on architecture, and will take ownership of our AI-backed document processing service.
The ideal candidate is language-agnostic in outlook but deep in practice: comfortable moving between Go, Python, and TypeScript, and able to build a real working model of an unfamiliar system before changing it.
Core Functional Responsibilities
Design, build, and maintain backend services across a microservices estate (Go, NestJS/TypeScript, Python).
Own the AI-backed document processing and classification service (Python/FastAPI): extraction quality, accuracy measurement, and the pipeline around it.
Design and maintain integrations with third-party platforms, including authentication, sync cadence, retries, and recovery.
Model data deliberately — schemas, migrations, and invariants that hold as the product changes.
Debug across service boundaries: correlate behaviour across multiple systems and databases to find the actual cause.
Build observability and provenance into automated flows: actions should be traceable, auditable, and reconstructable after the fact.
Design for safe automation: idempotency, pre/postconditions, dry-runs, and guardrails on anything that writes to a customer's system of record.
Write clean, tested, maintainable code, and leave the systems better instrumented than found.
Performance and Metrics Tracking
Define and track correctness and reliability measures for owned systems (task success, error and fallback rates, accuracy of automated inference).
Build evaluation coverage for AI-backed output: scenario tests, invariant checks, and regression detection when a model or prompt changes.
Monitor and improve latency, retries, and failure recovery in automated pipelines.
Training and Development
Mentor mid-level engineers on system design, debugging methodology, and testing discipline.
Lead design discussions and code reviews.
Document architecture decisions, failure modes, and debugging runbooks.
- Backend engineering depth — production services in Go and/or Python; TypeScript/Node useful. Multi-language comfort matters more than any single stack.
- Data modelling and relational databases — PostgreSQL, schema design, migrations, query performance, and reasoning about data integrity.
- Distributed and cross-service debugging — tracing behaviour across services, queues, and databases to isolate a root cause.
- Third-party integration engineering — external APIs with imperfect contracts: auth expiry, partial failures, retries, idempotency.
- Reliability practice — observability, structured logging, tracing, failure-mode analysis, and recovery design.
- Testing and evaluation — unit and scenario tests, invariant checks, and measuring correctness of non-deterministic (AI-backed) output.
- Cloud and infrastructure — GCP preferred (Cloud Run, Cloud SQL, Pub/Sub); Docker and CI/CD.
- Working with LLM-backed services — using them as components, understanding their failure modes, and validating their output. Prior agent-framework experience is a plus, not a requirement.
-
Calibrates depth to stakes. Ships routine, low-risk work quickly; deliberately slows down on core systems, data models, and anything touching money or client data — and can tell the difference without being told.
Verifies before concluding. Checks the premise of a bug report rather than building on it; can distinguish a real defect from correct behaviour measured the wrong way. Reads the system before changing it. Builds a working model of how something actually behaves, then changes it.
Owns outcomes, not tickets. Goes past the literal ticket text when the ticket is wrong, incomplete, or describes the wrong problem.
Strong communicator of design decisions, trade-offs, and risk, to technical and non technical audiences.
Pragmatic and collaborative — high standards without perfectionism, and works well with Product and Operations.
-
Experience in both high-growth startups and larger engineering organisations. Accounting, fintech, or other domain where correctness is non-negotiable. Document processing, OCR, or information-extraction pipelines.
Vector databases / retrieval (e.g. Qdrant) and prompt or model evaluation. Frontend familiarity (Vue or React) — useful for full-feature ownership, not a core requirement.
B2B SaaS background.
- Bachelor's or Master's in Computer Science, Software Engineering, or a related field — or equivalent practical experience. Strong CS fundamentals matter; the credential does not.
-
6+ years of professional software engineering, with a majority in backend or systems work. Demonstrated ownership of a non-trivial production system (not just feature delivery within someone else's design).
Experience at an organisation with mature engineering standards is valuable.
Proper is proud to be an equal opportunity employer committed to creating a diverse environment to work by offering the same opportunities to all applicants regardless of gender, sexual orientation, race, color, religion, disability, national origins, marital status, or other characteristics. We base our talent search exclusively on competencies, abilities and potential.
We may use artificial intelligence (AI) tools to support parts of the hiring process, such as reviewing applications, analyzing resumes, or assessing responses and identifying potential inconsistencies or verification signals in application materials based on available information. These tools assist our recruitment team but do not replace human judgment. Final hiring decisions are ultimately made by humans. If you would like more information about how your data is processed, please contact us.