470 karma · joined March 24, 2009
All they need is a bunch of vans that drive around and have a bunch of boxes and tape, basically ubers. They show up, package my thing up, and take it to the closest fedex store - enough said.
No custom boxes needed. No warehousing.
However, to become the next giant, I would imagine they need to branch out and gain traction for tangential products. They've tried (dropbox paper) but not sure it has enough market share to make a dent just yet.
Not worth the expected return? This sounds like a case of you wanting 'instant gratification' and to be making huge amounts of money from the start, which is bogus. With a few customers you will:
1. Be getting the use cases, bugs, feedback directly from your customers
2. Show you can get some funding and are building something people will pay for (or if they drop you, you'll understand why)
3. Have numbers, knowledge, and customer referrals which will VASTLY help getting more customers. I.e. when you are in the sales pitch, saying "X hotels have been using this for a year, and have generated Y additional sales, and have learned Z metrics about their hotel guests" etc.
Generally, I agree with breaking out bugs or issues that are found 'along the way' into separate subtasks or tickets. However, often what happens is a ticket is thrown into the backlog and not addressed.
Because the developer has just touched the code, this is often the best time to refactor as its still fresh in the mind, and this creates a culture of constant improvement. Of course everything depends, in this case, the complexity of the fix is the main limiting factor.
We truly believe in Refactoring along the way instead of trying to break out tech debt stories separately.
Counter-arguments: 1. Mining equipment is a sunk cost usually, so many will keep mining. Inotherwords, its easy to continue operations as normal versus trying to sell off all the equipment (at a loss?) Also, cloud mining contracts are locked in for a year or two, most cannot be cancelled, so mining continues regardless.
2. The difficulty may not actually decrease that much to have a huge impact on the profitability. It really depends on the magnitude of the mining drop-off.
With the distributed system, essentially we are trying to hardcode all of the rules, so there isn't any wiggle room for fraud, or a single person changing the rules on you, etc.
The downside to this, is that it means that it essentially becomes goverened by the software devs (or controlling body) of the altcoin. However, it sort of protects the consumer a little more by making it harder for a single governing body to make singular changes, because they'll want everyone who runs a type of exchange for the coin to participate as well so as not to alienate the coin and userbase...
Very few "elite" colleges teach a software engineer this type of practical experience. I want to debunk your feeling that if you had gone to a higher ranked college, you mysteriously would have been taught every piece of tech out there - this is markedly false - there are so many technologies, it's very common to be completely new to at least one when starting a new job.
This is merely a sign that the company has a bad onboarding process. Although, I have to admit its happened to me at many companies as well - i believe some see it as a sink-or-swim right of passage. Even though it's stupid - it does (in a misguided way) set the tone and test if you have what it takes to be a software engineer, specifically, that you have a relentless grit to just 'figure it out'. Again, sort of stupid imho.
- Are the differences SIGNIFICANT enough to support two (three?) different codebases? A lot of your points seem to be more about building in configurations/plugins versus a completely different (core) storage format. For instance, adding in separate plugins for different dictionary compressions, or being able to specify the block read size or schemes. I would just think you may be spending a lot of time reinventing 80% of the wheel and 20% on 'memory specific' functionality.
(I'm naively oversimplifying, but its something to think about).
"DevOps" is not something you just "teach" to someone who knows 0 about writing software let alone how computers work. Most of these roles today require knowledge of at least a programming language like ruby (Chef), python (ansible), etc.
You dont 'teach' cloud computing either imho. Sure, you can point students to the Amazon CLIs or Web UI Console (or others). Maybe technologies like kubernetes or otherwise would be in this blanket 'cloud computing' (orchestration?) umbrella, but I would imagine very much outside the scope of a bootcamp.
Agile Methodologies? I mean really? Someone drank the koolaid. =D
Founder immediately outsourced basic research and development - suspect at best. Working with an established engineering firm may be a good choice at some point, but my guess is that costs were 10x what they should have been, especially in the early stages where the product was going through iterations, bug fixes, etc.
Many other comments have pointed out various analogies in other fields that reinforce this.