Physics | Modeling | Engineering
Physics as a thinking tool
Physics matters to my software work less as a domain that I apply directly and more as a way of thinking. It trains a specific kind of discipline: take observations seriously, build models, make assumptions visible, and keep results testable.
That is valuable in software engineering as well. Good software rarely comes from knowing the final solution immediately. It comes from building a useful model of a domain and continuously checking that model against reality.
Models are useful, but never reality
In physics, a model is not the whole world. It is a deliberate simplification. It explains some observations well and leaves other aspects aside. This attitude also helps with software architecture and domain modeling.
A data model, an interface, or a test strategy is also a simplification. The key question is not whether the model is complete. The question is whether it is useful for the current purpose and whether its limits are known.
Make assumptions explicit
Many technical problems do not start with complicated code. They start with implicit assumptions. Which data may be missing? Which order of events is expected? Which domain terms are understood in the same way? Which load, latency, or accuracy is actually relevant?
A scientific working style pushes these assumptions into the open. In software, that can happen through tests, ADRs, interface contracts, monitoring, or clear error models. The important point is that assumptions should not exist only in individual people's heads.
Uncertainty is not a defect
In physics, uncertainty is not an embarrassing leftover to hide. It is part of the statement. Software projects would benefit from the same attitude: risks should be named before they appear as production defects.
This does not mean working slowly. It means making decisions with a clear view of their conditions. Some things can be calculated, some tested, some observed. And some have to be accepted consciously as risk.
Tests as experiments
Tests are not only safeguards. They are a form of experiment. A good test states an expectation about a system and checks whether that expectation holds. The clearer the expectation, the more useful the test.
This connects unit tests, integration tests, reviews, CI/CD, and observability. They all create feedback. They help confirm, correct, or reject a model. Without feedback, architecture quickly becomes an assertion.
Conclusion
Physics is not decorative background for me. It is a thinking tool: model clearly, test assumptions, respect uncertainty, and use feedback. In software engineering, this attitude leads to systems that do not merely work, but remain understandable, testable, and changeable.