The useful habits
Software development trained me to break ambiguity into interfaces, states, and testable pieces. That habit transfers directly into data work.
Clean notebooks, reusable functions, readable naming, and version control are not glamorous, but they make analysis easier to review and trust.
What needed to change
Engineering often rewards deterministic answers. Data science asks for comfort with uncertainty, distributions, assumptions, and imperfect evidence.
I had to learn not just how to build a model, but how to explain what the model does not know.
The overlap I care about
The best work sits where analysis becomes usable: a model behind an API, a chart that changes a decision, or a workflow that saves someone time.
That is the overlap I keep moving toward: data science with product-shaped engineering around it.