Custom software development
Ten years building systems that ended up in production with real users: loyalty platforms, marketplaces, healthcare, e-commerce and financial-sector applications.
2M+ users on the largest platform we built · 10 years of software engineering · 5 sectors: loyalty, healthcare, proptech, retail and financial
- TypeScript
- NestJS
- React
- Next.js
- Python
- .NET Core
- PostgreSQL
- Azure
- AWS
Built on
An engineering team that has already been on the other side.
Ninety seconds: who we are, how we work and what you get at the end.
How it goes from the call to the handover
01
Discovery with whoever runs the process
Over video, with the people doing the work by hand today. We work from Medellín with companies across Colombia, and remotely with teams in the United States and the rest of Latin America: what we need to see is the screen, not the office.
02
Proposal in 48 hours, already split into phases
Each phase with its own scope, price and date. The client sees where they can stop before signing the first one, not after. If the scope changes along the way, it gets quoted and approved before anyone builds it: it never shows up as a new number on invoicing day.
03
Construction with weekly deliveries
Every week there is something you can open and use, even if it still does little. It is the only way a drift shows up in time.
04
Handover, documentation and 90 days of warranty
The code, the infrastructure and the credentials have been in the company name since the start. If something does not do what the proposal says, it gets fixed at no cost.
01
What we build
Typical scopes
We build with AI assistants — Claude in the editor and in review — and it shows in the timeline, not in the result: the code is reviewed the same, the tests run the same, and what ships holds up the same.
The five failures
What we almost always find in a project that got out of hand
If any of these sound familiar, they are fixable, and it is almost always cheaper than starting over.
-
It has been at 90% for three months
That 90% was measured on finished screens, and what is left are not screens: they are the exceptions living inside all the previous ones. Each one sends the team back into code everyone considered closed. We fix it by measuring progress in complete end-to-end cases, not in delivered screens.
-
Nobody can deploy without the person who left
The steps live in someone’s head, the credentials on their laptop, and the deploy happens by hand on a Friday afternoon. We fix it by moving the deploy into the repository, so it becomes a command anyone on the team can run.
-
The database models the screens, not the business
It was designed from the form inwards, so a single business rule ends up spread across twenty places and changing it means touching all of them. It is the most expensive thing to fix late and the cheapest to get right at the start.
-
Every change breaks something else
With no automated tests nobody dares touch what already works, so the team builds around it instead of inside it. The system grows on the outside and hardens on the inside, until adding one field costs two weeks.
-
The vendor holds the keys
The repository, the domain or the cloud account ended up in the name of whoever built it, and that surfaces the day you want to change teams. Caught early it takes a day; caught late it is an awkward negotiation.
Previous work
Systems in production
-
Real estate marketplaceProptech · United States
Search homes by area on the map, filter by several criteria at once, message the landlord live and pay rent without leaving the platform. · More than 10,000 tenants and landlords
-
Full e-commerce
Catalog, cart, checkout and order tracking, on web and mobile, over a microservices API built from scratch. · Zero to production in six months, launched on schedule
-
Legacy modernization in financial services
Critical queries rewritten and bottlenecks removed in modules already running, without replacing the system. · On inherited code, inside the client team
A RAG system in production: three years, two million users
We built and operated the assistant for a loyalty platform serving more than two million active users across ten countries.
We built the full pipeline: document ingestion and normalization, chunking, embedding generation, vector store on Azure AI Search and Pinecone, and retrieval with grounded generation on LangChain.
We held it above 99% availability for three years.
RAG systems →Frequently asked questions
01 How do you decide between custom and buying a product?
On the first call we review what you need and what exists on the market. If a product covers 80%, we tell you which one and how to adapt the rest. We would rather lose a large project than build you something you will not want to maintain. Custom is justified when the process is your advantage, when systems do not talk, when licensing no longer works, or when there is a real regulatory constraint.
02 How is it quoted?
Price is driven by the complexity of your operation rather than the number of screens: how many processes have to be modelled, how many systems it integrates with, and what availability or regulatory requirements apply. The proposal arrives with fixed scope, price and date within 48 hours of the call, and that call is free.
03 How do you handle large projects?
Split into phases with independent deliverables. You can stop between phases, and we have to demonstrate value in each one. It is more demanding for us and far less risky for you than a six-month contract with delivery at the end.
04 What if scope changes?
It is quoted separately and approved before execution. It never appears as a surprise on the final invoice. Scope changes are normal in any real project; what is not normal is finding out at payment time.
05 Do we own the code?
Yes, always. Code, documentation, infrastructure and credentials stay in your company’s name. We include 90 days of warranty after handover — if something does not do what the proposal says, it gets fixed at no cost — and after that the operations contract is optional and quoted separately. We do not work with arrangements where the client depends on the vendor to keep operating.
06 Do you work with our internal team?
Yes. We can take the full project, join your team as reinforcement, or pair with your engineers with the explicit goal of leaving capability behind. If you already have technical people, the last format usually delivers the most value over the medium term.
07 What stack do you use and why?
TypeScript with Node.js and NestJS for backend, React and Next.js for web, Python when there is a data or AI component, .NET Core when the client environment calls for it, PostgreSQL as the default database. The choice is justified by the case, not by preference — and if your team already works with something, we respect it.
08 Do you include AI in software projects?
When it adds value, yes, and with the same measurement discipline we apply to purely AI projects. What we do not do is add AI because it is fashionable: if a well-built query solves the problem, that is the right solution and it costs a fraction.
Fifteen minutes. A concrete answer.
It gets fixed, it gets built, or it is not worth it. And if the diagnostic does not reach three actionable findings, it is not charged.