826 karma · joined March 27, 2017
Mail me at: stephen@happyvalley.io
Why?
That being said, this isn't advice. It's an admission that being lucky enough to have a few seed clients land in your lap (and taking that opportunity) is the optimal way to start consulting (imo).
I would love Heroku to have more reasonably priced compute. I'm desperately hoping that genuine competition in this space will pressure Heroku into sorting this. But the frequent refrain recently that Heroku just doesn't match with my experience in recent years. When the alternative PaaS solutions offer a comparable postgres service, then we'll have a genuine competitor. Until then, I'm not sure I really grok the level of disdain for it that's been on HN recently.
Implementing a form that autosubmits and updates an element takes very little js.
For smaller customer bases this is a tricky problem, but I’d argue that automated recommendations don’t work at a small scale anyway so manual curation is king.
I am happy to try different languages but I will never again support a Windows Server over a Linux VM.
As the OP points out, GC in java-land isn't worth writing home about on 1vCPU. When you throw a 16GiB heap at it though, with 16vCPUs then you'll unlock some of the really interesting optimizations and garbage collectors that the showcase the JVM in an advantageous light.
So it's not that the JVM can't scale horizontally - that's a matter of system architecture - it's that scaling it as 100 tiny nodes is far less impactful than having 5 large nodes.
There are existing industries with smart people with a wealth of experience. A tech company comes along and claims superiority by virtue of deductive reasoning. But they pay almost zero heed to the inductive reasoning of the incumbents and have to repeat their mistakes - this time with an app.
I never understood why Uber would win. All it was going to take was an uber-like app that existing companies could pay for and their primary (non-funding) advantage was gone. Otherwise they’re a normal cab company with all that entails.
In particular, I’ve gone through very similar experiences where functional-programming was the silver bullet that secretly no one understood.
> keeping the business logic as far in user configuration land as possible
This sounds dreadfully difficult to build and test. The kind of business rules engine that you’re describing is more likely to be overpriced and buggy than a simpler well-modeled set of core domain classes imo.
Not every piece of software should be excel.
This is why we use Spring. We have confidence that it'll be supported long-term and will continue to have backing from a whole host of companies.
It's slightly different in a large enterprise environment where a service might be fairly straighforward - take in input, spit out output to some data store. But for the kind of work we do - end-to-end webapps - we'd be doing ourt clients a great disservice to sell them on a microframework with our homespun implementations of security, transactions etc. bolted on top.
I think that this is sometimes a hard shift for developers who otherwise have spent their lives with an ability to puzzle out the constructs that they come across.
This is such an underutilized heuristic. I find phrasing the question as “Should we risk having a detrimental impact on customers for an aesthetic desire?” helps me to either get my head straight or to realize that the refactor has genuine value beyond aesthetics.
I'm completely sold on decisions being driven by a doc of a few paragraphs with the conversation around it co-located in the comments. It's easy to scroll through a list of such conversations in the message board and read through the context with discussion. In comparison, finding a previous conversation is slack is much more difficult.
Even if I can find the conversation, I think that the chat-focused nature of slack encourages short, loosely worded messages. This is great in the moment but the lack of context a few months on is pretty tough to deal with.