I feel like 99% of being a software engineer is debugging random shit, 1% algorithms. As you gain experience you see more random shit, your random shit toolbox is ever expanding until you can figure out anything w time since it’s semi like something else in your toolbox.
I just got back from @fintechdevcon in Austin. It was a super fun trip (notwithstanding the 105 degree air 🥵).
I gave a new talk while I was there, on why compliance and regulatory standards are ✨not✨ incompatible with modern development best practices.
The single best thing you can do to improve your software quality and velocity, and find bugs early, is still this:
💀 instrument your code as you go
💀 run tests. get review.
💀 deploy asap
💀 look at your instrumentation. is it doing what you expect? anything look weird?
I wrote a slightly longer-form piece about the risks of having an "architect" role distinct from engineering, and a few models for avoiding/compensating for that risk.
Thanks to all the wonderful architects who replied. (I 💜 you, I really do!!)
https://t.co/qrPUVZ3qso
"Enterprise Cloud Architect". (Tell me you haven't written any code in a decade without telling me....)
But seriously. Effective architects (and they exist!) are typically,
a) grown from within, not hired from without
b) never more than a few years removed from building things
When you have to choose among readability, conciseness and performances always go with the first one by default and switch to the other two only if you have very good reasons to do so.
My new style for rapid prototyping in @golang:
* All code goes in main.go, in main(), no extra methods, no packages, no extra files
* Use Go's flags and log packages
* Maybe create a few separate methods/files, still in the main package
For as long as possible..