Part of what makes Hendrix's live performances so great is how completely unreproducible they are. Even Jimi himself could never recreate that one note sustain when he begins the solo on Machine Gun. To re-create it, you'd have to set the room up exactly the same, tune the guitar exactly the same, position the guitar relative to amps exactly the same, etc. So Hendrix being very sensitive and connected to the room was able to harness that energy into something unique that stands the test of time. Machine Gun is well known, but his Red House performance at Randall's Island also stands out to me as exceptional, those are the 2 key Hendrix performances. I read somewhere that Miles Davis was really impressed by Machine Gun and you can see why.
One thing I learned after buying some gear at home to try to record electric guitar at low volume is how important the physics of the speakers are. You can plug a tube amp into a cabinet simulator and you'll lose a lot more than using solid state electronics on a good but not great Fender amp, especially if you use fuzz / distortion pedals.
I'm not sure Hendrix was a systems engineer, but he was a transcendent blues artist, that's for sure.
Although I love Jimi Hendrix’s performances I’m not sure if not being to reproduce something necessarily makes it great. One could say the same thing about any disorganized person’s process but it doesn’t make it great. It just makes it not reproducible.
One could make a bunch of random noises with a guitar that are hard to reproduce but the music could be shit.
What I dislike about Claude code and vibe coding in general is that I haven’t seen Claude code users learn a whole lot about how to do their jobs better. A terminal pane is just too small to be a good place to learn.
With vibe coding you just give the code some constraints and then system will try to work within those constraints, but what if those constraints are wrong? What if you’re asking the wrong question? Then you’ll end up with over complicated slop.
It’s a shame that vibe coded slop seems to be a new standard, when in fact you can use AI tools to produce much higher quality code if you actually care to engage in thoughtful conversations with the AIs and take a growth mindset.
My main take on microservices at this point is that you only want microservices to isolate failure modes and for independent scaling. Most IO bound logic can live in a single monolith.
It is simpler than that. You only want microservices in the same cases you want services (i.e. SaaS). Meaning, when your team benefits from an independent third-party building and maintaining it. The addition of "micro" to "service" indicates that you are reaching out to a third-party that is paid by the same company instead of paying a separate company.
Golang to me is a great runtime and very poor language. I could maybe get used to the C pointer-like syntax and to half of my code checking if err != nil, but the lack of classes is a step too far. The Golang idiomatic approach is to have a sprawling set of microservices talking to each other over the network, to manage complexity instead of having classes. This makes sense for things like systems agents (eg K8) but doesn't make sense for most applications because it complicates the development experience unnecessarily and monoliths are also easier to debug.
I would not use Golang for a big codebase with lots of business logic. Golang has not made a dent in Java usage at big companies, no large company is going to try replacing their Java codebases with Golang because there's no benefit, Java is almost as fast as Golang and has classes and actually has a richer set of concurrency primitives.
The solution to bad abstractions it not to make it very difficult to create abstractions at all. For systems code I think it's fine but for application code you probably want some abstractions or else it's very hard to scale a codebase.
It’s really not though. Plenty of systems are built in Go, Erlang etc that do not have the architectual monstrosities which commonly show up in object-oriented code, especially when a Java or C# expert beginner has been let loose.
Microservices are entirely unrelated to classes and in no way endemic to go.
Go’s lack of inheritance is one of its bolder decisions and I think has been proven entirely correct in use.
Instead of the incidental complexity encouraged by pointless inheritance hierarchies we go back to structure which bundle data and behaviour and can compose them instead.
Favouring composition over inheritance is not a new idea nor did it come from the authors of Go.
Also the author of Java (Gosling) disagrees with you.
Microservices in Golang are definitely related to classes due to the ergonomic aspects of a language. It takes a lot of discipline in Golang not to end up with huge flat functions. Golang services are easier to reason about when they are small due to the lack of abstractions, also Golang is very quick to compile, so its natural to just add services to extend functionality. Code re-use is just a lot of work in Golang. Golang is not monolith friendly IMO.
There are only two political systems at the end of the day: authoritarianism (everyone knows who is in charge) and oligarchy. Populism, in a liberal democracy, is basically authoritarianism-lite representing the interests of a particular faction of oligarchs. There's no "populism" in China, that's an American & European invention. Populism is ugly but it's a useful tool that can get things done in an oligarchy.
What kind of codebases do you work on if you don't mind me asking?
I've found a huge boost from using AI to deal with APIs (databases, k8s, aws, ...) but less so on large codebases that needed conceptual improvements. But at worst, i'm getting more than 10% benefit, just cause the AI's can read files so quickly and answer questions and propose reasonable ideas.
Disclaimer: I'm the founder. Reducto does cool stuff on post processing (and other input formats), but some people have told me Mathpix is better at just getting data out of PDFs accurately.
One thing I learned after buying some gear at home to try to record electric guitar at low volume is how important the physics of the speakers are. You can plug a tube amp into a cabinet simulator and you'll lose a lot more than using solid state electronics on a good but not great Fender amp, especially if you use fuzz / distortion pedals.
I'm not sure Hendrix was a systems engineer, but he was a transcendent blues artist, that's for sure.
reply