I'm not quite sure how to answer this but I'll take a stab anyway.
Once I started working as a mathematician, I found that my grasp of probability and discrete mathematics was very weak (now it is at least adequate). It is quite rare for me to go through the details of writing a proof; instead, I code up an idea in MATLAB (which I also learned outside of academia). Once it works, then I usually have what amounts to a proof embedded in the logical structure of code. Because my initial background was not ideal, the things that I've learned professionally have tended to have direct applications to my work.
But this has still been an esoteric bag of tricks, for which I will supply a few examples from the first five years or so of my career (it has been another five years since).
One of the first things I did was to give myself a crash course (now forgotten) in algorithms, crypto and complexity theory. I learned Markov processes and queueing theory to model coarse-grained computer network traffic, and martingales to profile its behavior. I learned the rudiments of graph theory, combinatorics and information theory to develop data structures and work with statistical symmetries in finite strings. I learned about toric varieties and briefly revived my acquaintance with index theory to understand Euler-Maclaurin formulae for polytopes, which were of theoretical import for precisely enumerating/sampling from those same statistical symmetries.
The overarching theme has always been to either develop methods of my own for tackling specific problems determined by needs external to my own narrow interests or to identify if and how someone else's constructions work, as well as to find areas for improvement. In both cases the goal has not been detailed proofs but either code or an argument for doing something in a particular way.
I will say that my formal education has been of comparatively little use. The few good techniques and working habits I've developed have come from my professional work and not from school.