Begin with proven experience, not the size of the portfolio. Request three or golang development outsourcing four projects that sit close to your stack, and then ask specifically whether those engineers are still with the company. A solid partner will introduce you to the tech lead. Evasive answers at this stage generally mean the demo work came from somewhere else.
The contract warrants more attention than the sales deck. A few clauses carry most of the weight: intellectual property assignment, the NDA, and termination and handover. Everything produced must transfer to you as it is paid for, together with documentation, pipelines and deployment scripts. Watch for custom web development services any clause that keeps framework code in the vendor’s hands, as that is often exactly the piece that locks you in.
Ask where their numbers come from. A serious estimate comes with the assumptions behind it, a task-level breakdown and a best case and a worst case. A fixed-price contract is only reasonable when the scope is genuinely frozen; when the scope is still moving the vendor pads the number and you pay for it anyway. Time and materials shifts that risk to you, so it needs visible weekly reporting and a spending cap.
Process matters more than headcount. Find out what happens when the scope changes, who signs off on a feature and what the QA setup looks like. A team can demonstrate a live build at the end of each sprint. Written acceptance criteria are the practical protection against the it-was-never-in-scope conversation.
Finally, consider the day you no longer need this vendor spring boot vs symfony before it becomes urgent. Insist that the code repository sits in your organisation from the beginning, and that the documentation is refreshed in every sprint. A provider confident in its own work will agree quickly; a long negotiation over it tells you quite a lot.
