Hacker News new | ask | show | jobs
by echelon 1262 days ago
If you do any sort of measurement, analysis, or design before implementing a system, you're leveraging engineering principles.

Examples: measuring data scale for growth rate and future needs, calculating incremental costs of cloud instances and data stores, designing and proving a state machine, instrumenting systems, measuring and stress testing a system against load, understanding back pressure and dynamical behaviors of distributed systems, designing threaded or active/active systems, vector clocks, consensus algoritms, test suites, etc. etc.

I've had to write short inductive proofs in several of the systems I've built.

It's engineering. The sooner we get over the imposter syndrome debate of what we can and cannot call ourselves and embrace the full scope and possibilty of what we can achieve, the sooner we can become better and more capable software engineers.

1 comments

>> I've had to write short inductive proofs in several of the systems I've built.

In what context was this necessary?

This is pretty common in the Blockchain space to verify transactions behave correctly when arriving out of sync with tools like Agda, Coq, etc... I assume it's the same on databases & I heard Leslie Lamport give a talk at work where he mentioned AWS used TLA+ to prove some of its properties.
To provide evidence that a recursive algorithm actually works maybe?