For someone quite interested in these kind of problems, what's the current best practice for solving these kind of problems? Not on this scale but still large enough that Google's built-in api for solving it (only 25 points allowed) can't do it.

We have an in house system built from ground up in Python and use ortools (https://github.com/google/or-tools) to power the core of the algorithms.