This is a story about grinding to a halt...
I have been enjoying writing immensely, and continuing this blog is certainly no chore. Words still flow effortlessly, but I am floundering a little, as I try to avoid repetition and decide what direction to go in next.
I really need to get another job/contract, and the easiest work to find would be as a programmer. I hate programming other people's systems. They usually haven't stopped to answer the simple question: are we solving the problem in the right way?
Most computer systems that ever get created for a company are CRUD systems. That means they can Create, Read, Update and Delete data. Think about it... how many companies know your name and address? They all want that exact same data. Think how hard it is when you move house, change address, to update all those companies to send their correspondance to the right place.
The thing about creating CRUD software, is that if you've done it once, you've done it the same as you're going to do a million times after that. They're all the same. Garbage in, garbage out. Ok, user interfaces have gotten prettier, and we now employ people specifically to work on User Experience (UX) but it's solving the same old problem in the same old way.
I specialised in something called Straight-Through Processing (STP). The idea that the processing of transactions should be fully automated, wherever possible. This at least means that you're not doing yet another CRUD user interface, and you're building elegant pure software solutions, not just trying to stop a halfwit user from doing something they're not supposed to in the system.
Software still gets boring and repetitive. Most of the software challenge is change management. If you can control the change so that the software is well versioned and releases are well managed, then everything gets much more stable. The amount of time actually spent programming is minimal. It's actually kicking arses and taking names that takes the time. Most corporate systems have been over-complexified by the cowboys and the have-a-go heros.
If I had an hour to spend writing an extra feature, or an hour to analyse some rats nest of a mess that nobody's owning, I'll go for the mess every time. Still, it's all thankless work though, and there is no novelty, no sense of achievement in doing something you've done a zillion times before.
Bitcoin and Blockchain really fascinated me, since 2011, when I read the famous paper "Bitcoin: A Peer-to-Peer Electronic Cash System".
Bitcoin has everything the frustrated programmer could possibly wish for. The original source code is in C++ for a start, which is just a joy to behold... the seemingly impenetrable world of templatised code, where the templates are a complete black art, developed into a style completely unique to each developer.
Algorithms are enticing little puzzles. The one-way hash is particularly interesting to anybody who likes the idea of being a codebreaker or hacker. Trying to find the weaknesses in encryption and hashing is a mathematical, formal logic and computer science challenge. I love thinking about how to reverse engineer a problem like that.
But it's brain-exhausting stuff, having to think about bit shifts, and the endian-ness of your numbers, and all the myriad complexities of a hardcore problem. I can't spend too long thinking about things before I start to worry I'm going to need to take a drill to my skull to try and relieve some pressure.
Using statistical analysis to reduce an important algorithm to an equation with known co-efficients, could make you rich and famous, at least amongst geeks. However, it's the challenge for your mind that's the reason why you'd tackle such a problem. The intellectual stimulation, the incurable curiosity.
Once you start thinking about Bitcoin though, it's hard to stop. It's hard to leave a problem that hasn't completely defeated you. When you know there are still things that you want to try, approaches that might work, it's like an addiction... you keep going back to the hard problem, again and again. Pandora's Box is open and you can't unsee the things you've seen.
Mining never really made me much money, but speculating on the cryptocurrency brought substantial rewards
Tags: #computing #career