I know several folks with niche business that pay various levels of their bills.
Software for youth sports, photography, asset tracking, vendor tracking, niche issues in CC Processing, facets of insurance and billing (coding).
Niche businesses happen all over the place, and finding one (for me) was a lot of trial and error, that niche business pays my "bills" and I do consulting work (sporadic, interesting and high value) to round it out (and keep me on my game).
Dont think of it as a business right away. You're going to "play", you want to build them quickly, you want to host them cheaply, you want to toy with selling them. Your managing disappointment and failure, your learning lessons and keeping it FUN. The moment you start dreaming that it's going to "make it big" is the moment you have to reel yourself back to reality. If you can say "what did I learn" and have a list of things you got from it then it was a success. At some point you just find one that clicks and it grows.
I'm going on year 6 of my software development career. I marvel at people doing this for 20+ years, and hope I can be that person some day. Thanks for the insight.
I think it's always safe to start looking, start preparing, start marketing yourself when you don't really need to. Especially when you feel the way you feel now.
That way you have a feel for the waters, see what's available in terms of tech stack and team culture/vibe, with a much longer runway of looking around than when you are pushed off the cliff on a dead-end project, where you know it's the last straw. You are less stressed this way.
The security properties of Proof of Work cryptocurrency are derived from the wastefulness. We want to be confident that everyone has the same cost when producing a block.
If the problems being solved are useful, they are potentially more useful to some parties than others, meaning some parties may have a lower cost to attack the blockchain, because it was computation they needed to spend money on anyway, might as well attack a blockchain while you are at it.
Doesn't this ignore the real world realities of economies of scale though with the physical materials being used? I'd enjoy a bit deeper explanation for this if you don't mind. :)
A key component of the hash algorithm used by blockchain is that difficulty can be adjusted, such that the algorithm ensures that the difficulty to mine the next block increases/decreases based on how long it took previous blocks to mine. In this way the network can attempt to maintain a predictable rate of blocks being mined as mining power fluctuates.
So for this to be a good computation for a blockchain to use it would have to have a way to modify difficulty in a predictable way.
It also has to make the networking part of Bitcoin fit within physics. From eyeballing the difficulty graph it looks like if you fixed the network difficulty in January 2010 then a new block would be mined every few picoseconds at the peak hash rate this year.
In the case of a fork in the chain the network decides the winner based on which fork ends up being longer. If blocks are being mined too quickly then forks become more likely and the state of the chain is more volatile as the current "winner" keeps flipping around.
Blocks being mined too slowly is a more obvious problem: less transaction throughput.
I don't know Rails. I know Python and Golang. Worked in a data-intensive, data heavy startup, throwing microservices, nanoservices in a haphazard fashion with K8S backing the "throw and see something sticks" approach.
Elixir, and Phoenix makes me think. About three years ago, when we started the company, if we had these two tech... we could've been saved so much dev time focusing on the core tech, instead of making scaffolding work.
Same here. Microservices have their place if you expect to have to scale like craaaaazzzzy or if you know that your platform will be huge with many different parts but you can go a LONG way with a Phoenix monolith while being "happier" and more productive.
From my (limited) experience it's an ideal framework for startups or new web apps. I've also heard excellent things about replacing painful microservice setups with one Phoenix app.
There is just so much you can do with it at scale and also so much you don't have to do (e.g. channels + integrated pub/sub are a godsend). Definitely my new favorite framework (+ language) for web dev.