examining an existing problem, devising an elegant software solution, building that solution, and enjoying the results.
helping a customer define a process and improving that process with technology 100X.
building something over and over again but knowing it's not quite right until we've sifted through the output enough to figure it out and then build it perfectly.
always working on puzzles but never knowing when the lightbulb will go off. When it does, dropping everything to build the solution that popped into our head.
taking existing software that was built with good intentions but didn't quite do the job and getting it to do the job right.
changing the way a data base is structured in order to eliminate 90% of the existing code.
teaching proper technique to someone who only knows how to hack together kludges and watching them blossom.
experiencing the tension between getting really good at what you know and always yearning to learn something new.
something we never could have done if we were born 100 years earlier and may not be able to do if we were born 100 years later.
building something that never existed anywhere before except in your own mind and bringing it to reality.
doing a happy dance when something works for the first time.
This, this right here. One of the things that I discovered over the course of my 20s is that this one particular thing gives me vastly more satisfaction than solving any of the "big problems" I thought I cared about when I was 23.