Most software engineers are facing an identity crisis bordering on depression.
As CTOs aggressively evangelize tokenmaxxing, a class divide ensues.
The lazy. The lazy push code. They don't write it. They don't manually test it. They don't even read it. They're on autopilot. See Jira ticket, prompt for task, submit code. Many of them are barely on their computer the whole day. A comment on the PR asking why they did this? The lazy ask AI. A Slack message? The lazy ask AI. Need to prepare for standup? The lazy ask AI. As long as it sounds enough like them and isn't detected. Some of the lazy are even overemployed, and work multiple jobs. The lazy smart ones get away with this, and even rewarded. After all, software engineering for the lazy is just a dance to convince your colleagues you're smart and hard working.
The craftsmen. The craftsmen are tired. Very tired. 15 PRs in queue. Slack blowing up. The entire burden of review falls on the craftsman. The burden of understanding. They try. They work their way through the code, thoughtfully commenting to improve what ships. The response? A lazy: "That's a clever idea! You're absolutely right." with an incorrect change. It's fine, the craftsman says. I can fix them. They write a doc urging his colleagues to be better. The next day? 20,000 line PR to review. Day after day, their workload grows. Bugs seep into production. No one seems to care. Another round of AI is thrown at it. Their animosity to their colleagues rises. Eventually, they give up. It's just not what it used to be. The craft they loved is dead. They eventually wake up, a lazy.
This isn't all companies. Many companies are genuinely more productive, adopt the right set of principles and practices around AI development and have highly talented teams that trust each other. It tends to happen in bigger companies that are 10+yrs old with a higher talent variance. But it happens. A lot.
@dustinmoris This is fairly accurate and usually the difference between a technical leader and a journeyman manager trying harder to not make a wrong step then lead. I don’t think they understand the cultural toll it takes on perm owners of tech.
@dustinmoris I found myself in a similar situation, have 3 kids, demanding tech job, house renovations … you run out of spare time and something has to give. OSS is a great learning experience, at period when you have spare time, but not sustainable. Thanks for all the great contributions.
@davidfowl @IkeVictor321 JS/TS with react and other frameworks own the front end web app market; it feels like it would be a better for MSFT to invest in larger scale distributed system frameworks, market them, JVM has so many options, all our major stateful systems on JVM
@CallumVass @davidfowl Maybe it’s wording semantics but most web apps these days are SPA/PWA and therefore nearly exclusively JS/TS, for the backend microservices (web APIs) .net is still reliable performant option, we use alongside spring boot and nodejs, dotnet least problematic
@mjovanovictech May be misreading this but looks similar to hexagonal/pipes and filter architecture. In DDD the behaviours of the models are combined with entities to form domain model at root aggregate levels, domain being pure, application is the orchestration, stitching IO, context and domain
@k_cieslak I think a legitimate complaint for a long time was that the tooling was poor vs other main languages, that's greatly improved now thanks in large part to you so focus should now be on building cool things and pushing adoption.
@davidfowl For control and leveraging your own platform, where you have complex multi-componet distributed systems, PaaS can be more trouble to optimise and work against. Many tech play well in k8s (flink, akka, pulsar) and are well supported. For small-mid tech it is overkill
@dustinmoris So I delegate implientation design to my principals/seniors but I will set responsibility boundaries, define apis, how all global systems work and interact, Architect also focus on NFR and deployment topologies, it can be done by developing but at scale required coordination
@dustinmoris The architect role is not often needed, but to scale teams and ensure they are building systems that work together and scale in bigger companies it can prove useful, it becomes head technical role for a domain(s), little coding <Disclaimer, I'm an architect these days>
@jasiozet @adelarsq@falco_framework@TFBenchmarks It was also an observation from real world usage of giraffe (which I did much of performance design for too) people don't pipeline/compose too much/deeply like giraffe is optimised for, the 'nxt' cont was (mis/ab)used so this sought to bring back simplicity with even better perf
@jasiozet @adelarsq@falco_framework@TFBenchmarks I had hoped to finish and release full framework but I moved country, job, and had twins and life just never got quite enough to go back to it. The plan was to build Saturn constructs over zebra to make it useful and full framework, I can remove if it's counter productive
@adelarsq@essiccf37@falco_framework@TFBenchmarks It was foundational piece for new full framework I never got around to releasing, inital benchmark was to prove out the computation expression continuation state machine design which still is interesting
@shanselman@javavvitch I built original performance router for #giraffe as redix trie, they are really performant and compact where there is large overlap in strings and lots of combinations to collapse. If you want more fun look up trie transducers which are compact map implementation
@blank32907202@sforkmann@oakinger Oh my the brexit bots are back are they!? These tweets are 3 years old read the room, everyone has moved on, nobody cares, I lived in UK at time 19 but moved back to Ireland 20 to get away from that nonsense, good luck with brexit 👍
@McCrews I learnt many tricks the hard way, testing different approaches, profiling and reading the IL generated, inevitably leads you to go to compiler to try figure out how code compiled and that alot of work needed to reach zero-alloc across so many patterns is big task.
@terrajobst We emulate prd env so using minikube we can easily launch grafana stack and agent via helm and tooling rich for local testing (gives metrics and tracing beyond logs)