Software Engineering
We build the foundations products depend on — APIs, data models, authentication and security — and we deploy and maintain what we build.
Problem → Approach
Good backend work is mostly invisible. We aim for systems with few moving parts, plain data models and security handled from the first commit — rate limiting, bot protection, proper authentication — so the software can be maintained by whoever inherits it, not just by us.
What we build
- REST APIs and backend services with Node.js and Express
- Deployment and ongoing maintenance on Vercel, Render and Docker
- Authentication and request protection with JWT, bcrypt and Arcjet
- Data modelling on MongoDB, Redis and graph databases
What this covers
Backend services and APIs
PayLoop's API is Node.js and Express on MongoDB via Mongoose, documented for integration and deployed on Render. We keep services small and their data models plain, so the next engineer can read them without us in the room.
Security from the first commit
Authentication with JWTs and bcrypt-hashed passwords, and every request passing through Arcjet for rate limiting and bot detection, as in PayLoop. This website's own API routes follow the same habits: strict input validation, request size limits, rate limiting, and no provider errors or secrets returned to the browser.
Deployment and maintenance
We ship what we build: this site and DeskGlow on Vercel, PayLoop on Render, and Syntapse's agent backend with Docker. After launch we handle fixes, updates and performance work, so the software keeps up as the business changes.
Technologies we use here
Related work
Questions
Which databases do you work with?
In our work so far: MongoDB, Redis, and graph databases such as Memgraph. The data model comes first; the database is chosen for how the data is actually read and written.
