Ask HN: What is the most difficult tech/dev challenge you ever solved?
First to be clear CRUD makes the world go around! I always find it interesting when people in our industry somehow look down at work that makes users happy and gets us all paid so we can do other things. :-)<p>I've been in tech for more then 30 years.  In that time I've done so many things it's hard to pick just a couple interesting ones.  I think some of the fun ones are really old but even a couple are very recent:<p>* In the good old days HD's would die and people would bring them to me hoping I could revive them.  I've swapped logic cards with working HD's to recover data.  One disk was soaked from a fire sprinkler system in a small business' office.  I took it apart and rinsed it with distilled water, cleaned up a bunch of parts by hand, swapped logic boards and applied lubricants to various parts and was able to spin it up just long enough to back up the customer's data.  Don't try this at home with modern drives, get a recovery team to help you if the customer can afford the cost.<p>* In 1988 I was approached by a military contractor with a GPS board they built that needed to have a device driver built for SCO Unix.  They wanted 50ns realtime responses and I had to keep explaining to them that SCO Unix was not an RT OS but they were cornered into the OS by contract and had no choice.  So I pushed on them "why this strict timing" and after many signed documents and stuff I don't really want to know I showed them we could build a device driver interface that allowed them to achieve their needed result. After many tests it turned out we were able to beat their timing requirements.  The contractor was very happy, I went as far as to make it a SCO Install disk etc, and they were able to make the install part of their build process.  The strange part was two years later I got a call from the contractor, they were in a panic because the driver didn't work with the latest version of SCO and they had to "urgently deploy a lot of these things" into a undisclosed "middle eastern territory".  I told the guy I was really busy (I was) even after that the next day he showed up at my house (literally my house) with a machine in his car and a blank check and begged me, he said his job and a lot of others were on the line and they didn't have time for someone else to come up to speed and make the adjustments.  I caved in, I updated the drivers over night, it wasn't too bad just some changes in the kernel interfaces and SCO had made some dumb changes to the way installs worked etc.  I gave him the results the next day late in the evening and he thanked me and drove off into the sunset.  I was never told exactly what they were used for... I've always wondered.. And no I didn't burn them I charged my regular rate, but I did work about 18 hours on it in a 24 hour period.<p>* In recent years I've taken to building low-latency high scale systems.  One such system must respond to upwards of 1.6 million queries per second across six data centers and the response must be received by the requestor within 10ms.  The reality is with jitter even on local networks you really have about 7ms to respond.  I wrote this system in Python, Java, C, C++ and Nginx/LutJIT.  Each time I re-implemented the same solution but new tech with twists to leverage the strength of the underlying tech (Long living objects in Java to avoid GC, Cython, etc.) and my best implementation ended up being nginx/LuaJIT.  I was able to get about 15k qps/core using this configuration and it was rock stable, running for weeks without need of a reboot.  The best part is I've been able to publish the system internally with all the system settings (lots of network tweaks) and a script so others can deploy it and do their own testing.  Previously everything was C with Libevent and it's just painful trying to get a large pool of people up to speed on using that to do their projects.  Most recently I've re-written this system in Go and am working through some crazy performance issues there.  I can't seem to get Go's scheduler to react as quickly as Nginx and often times it seems to latch on to just four CPU's even though GOMAXPROCS is set to 8 or more.<p>I could go on for pages about all the other things I've done but, the underlying thing about them all is problem solving at a level of detail where most people give up.  I often say I'm not very smart; I'm just really persistent. I'm willing to change just one thing, retest, tweak another, retest and onward until the problem starts to present itself.  I often find people give up too soon, they think something is impossible or they're scared of how much time it will take to find the solution.  For me if I see forward progress and I have the intuition that what I'm doing will work I keep pushing until I can disprove my intuition or prove it.  I think the sign of a good technologist is less about how super smart they are and more about how they approach solving real world problems.  I find it annoying when someone tries to get me to do some puzzle for an interview or other thought experiments that have little basis in reality.  That said, if someone asks me to solve a real world problem in an interview I'll jump up to the whiteboard and tear it to up with great passion.<p>Don't belittle yourself because you're doing CRUD to pay the bills.  Instead challenge yourself to do more when someone isn't paying the bill.  All my life I've worked and played in with technology and most people can not tell when I'm working or playing.  I am always pushing to learn new things.  As the example above shows, the system I built is working fine why do Go?  Why not?  In 30 more years all the languages will change, all the tech will be different but the problems will be related to today's problems and the more you learn to stretch your mind and solve problems with many different approaches the more valuable you will be in the complex future that is coming at us every single day.