Start with proven experience, not the size of the portfolio. Ask for software development companies in russia three or four projects that match your stack, and then ask specifically who actually wrote that code. A serious vendor which is better symfony or spring boot happy to connect you with the tech lead. Answers that name nobody at this stage almost always mean you are talking to a reseller.
The agreement deserves more attention than the sales deck. Three sections matter more than the rest: hire freelance expo developer ownership of the code, confidentiality, and notice periods and handover. All the work product has to transfer to you once invoices are settled, including documentation, pipelines and deployment scripts. Be careful with any clause that leaves framework code in the vendor’s hands, since this is frequently the dependency that makes switching painful.
Ask where their numbers come from. An honest estimate comes with a list of assumptions, a breakdown by feature or module and a best case and a worst case. A fixed price only makes sense when the requirements are stable and documented; in any other case the provider adds a risk premium and you pay for uncertainty either way. A time-and-materials model puts the risk on your side, so it requires a cap, regular demos and transparent reporting.
The delivery process beats team size. Ask how change requests are handled, who writes the acceptance criteria and how testing is organised. A team can demonstrate a working build every one or two weeks. Acceptance criteria in writing stay the practical protection against the it outsourcing germany-was-never-in-scope conversation.
Before signing, plan for the day you no longer need this vendor before it becomes urgent. Ask that the repository lives in your organisation from day one, and that a readme and architecture notes are kept current as the code changes. A vendor with nothing to hide says yes immediately; hesitation here says a great deal.