hackeryogi
Joined 11 years ago
Joined 11 years ago
Just to extend your point - chinese car manufacturers are not only producing more cars, they're innovating at a faster pace too. While I'm not an expert, there is enough and more on social media around this. Eg: https://x.com/dhh/status/2113500613082329576?a=fscIadYr4U1xm...
I’m a software developer with 14+ years of experience. I’ve worked at companies of all shapes and sizes - from fast growth unicorn startups to FAANG (well, atleast AG). I’ve also worked in all layers of the stack, wearing different hats as a backend engineer, infrastructure engineer & full stack engineer. So I’m as comfortable with running cloud infra, optimising it, or leveraging it to build applications & apps that scale.
I am fortunate enough to witness the tech abstractions we take for granted today get built out as I grew in the industry. I’ve gone from managing MySQL, HBase, Kafka clusters on VMs & bare metal to now marveling at how it’s outsourced to the cloud via a prompt. But I still fret the small stuff - because I know quite a bit about what can go wrong.
Presently, I work as a freelancer. I work with founders & leadership teams of startups to help out with organisational velocity challenges. My speciality is to help build systems that enable companies to continue shipping fast as they scale in the next phase of growth, be it 1-10 journeys or 10-100 journeys. Systems don’t get built in isolation; it’s also important to preserve what already works (tech & culture wise) - so bringing in the best practices learnt at BigTech to your unique startup is something I can help with too. I like to joke that I like to do the boring stuff. Stuff that you know is important, but don’t want to hire a full time principal engineer for - cleaning up systems, setting them up for next phase of growth and making them amenable to AI first harnesses.
TL;DR: If you’ve read a recent post by Bart Butler (Proton’s CTO), that’s exactly what I help with.
I read a lot about "taste," but the taste that matters most is the users'. To me, a sharp experiment-measure cycle that measures what users actually value and not just what converts (i.e holistically measures user satisfaction), is the best way to keep what works
It is not true today, and as you mentioned "fundamentally incompatible with a next-quarter profit driven.."
As an illustration, lets say I ask the agent to “Read the issue Bob posted today from Linear (issue tracker), pull relevant logs from DataDog (log tool) and suggest a fix”
In the MCP world, my agent doesn’t have to spend tokens / time understanding APIs or the protocol (as the parent comment suggests). Instead, it relies on the tool provider for the best way to “read the issue” or “pull logs”.
Same thing, in the API world, would usually involve multiple API hits (and possibly using the wrong APIs or params for them), interpreting the results and hitting few more APIs again.
I completely agree with everything you mentioned (And thanks for giving in numbers too!).
Since you’ve clearly thought this through, if I can push you to the hypothetical - at what point would you want to run multiple tests in parallel? Will it be largely a function of your dev team (more productive everyone) or active users (more frequent feature build outs / cross cutting rollouts) ?
Thanks again for the note. Very helpful.
In addition, same set of questions can also be asked to people who've recently left the organisation.
I'd use the following criteria to filter ex employees:
- Reliable 1st/2nd level connections
- Folks who have shown stability in the past (generally stick to jobs for > 2 years)
Obviously, they'd come with biases. But, talking 2-3 people should also help reliably gather broad culture patterns. Should avoid listening to evidently disgruntled folks.
> DON'T BE AFRAID TO DISMANTLE THE WRONG ABSTRACTION
Couldn't agree more with the statement, though I don't completely agree with the author's suggestion to copy paste. Duplicating code _is debt_. It may help us go faster now, but it'll almost inevitably come back to bite. It is manageable if 1/2 people do it 1/2 times - definitely not manageable if 5/6 people do it 5/6 times.
I believe the general hesitation of not touching a piece of code (or, getting by with that optional param) is due to the fear of fucking things up. Having your code test covered gives an amazing amount of confidence to rip apart old abstractions to yield newer ones that serve the purpose of the _current code_. To me, this route is more preferable to duplicating code.
Even with the best of intentions, Hacking an abstraction with that one optional parameter is inevitable. Tests help in our ability to repay that debt faster - on time & in full.
Basically they make all abstractions a lot cheaper - easier to write and easier to throw away. Thereby solving the problem of having a 'wrong abstraction' too early.