The thing that really makes me nervous about AI as an experienced SWE

I've thought a lot about AI. And it has always made me feel uneasy. But like most feelings it has been hard to accurately express it in words. But I think now I have a full model of what makes me very nervous about AI as a software engineer.

I think the issue is that AI eliminates differentiation. I think internally I start to ask "if AI can do almost everything, then what makes someone better than another person"? Because in the job market you need to look and be better than other people. That's just survival. You need to be able to really standout.

I felt I've learned a lot in my career. And my knowledge is a reflection of perspective. I started my career 25 years ago, right after the dot com bust. I started my career at the lowest level, working as a data center operator. Dealing with storage libraries/tapes. Then I moved into mainframes for a time working with the government. Then working as a Solaris admin and eventually a Java dev working in finance and banks. I moved into telecom and did lots of data engineering with hadoop, Java, Python and eventually Spark. Before pivoting back do devops, learning Go and cloud infra and learning kubernetes early on. And then I ended up moving into working on control planes in the cloud, dealing with IAM, and regional/zonal provisioning. I had a diverse and storied career. Never working in one domain, but expanding. 7 years ago that experience created strong diffrentiation. Most people didn't have the breadth or varienty. That is where I stood out

What I think is AI makes everyone seem equally competent. Even if that's not really true. I kind of thing AI does produce bad artifacts a lot of the time. But to decision makers it doesn't matter. People care about the the volume of output not the quality of output. That is why people say terms like 10x engineer. Software engineers didn't come up with this term, managers and business people did. And for them it just men artifact production

This is why some leaders say things like "Sure its fine if you know how to code, but I'm not sure if I'd hire someone who doesn't use Claude/Codex/Gemini". For them skills don't matter only output does. They don't care how good or bad the quality is as long as more things are being produced.

If there is any true differentiation in AI. Its mostly the knowledge of the user. If I had AI build me a game engine. It would probably suck if I have no knowledge of game architecture. So the quality of the engine would be different depending on who is directing it. The issue is that the decision makers don't actually seem to care about the differences in quality.

So to me it feels the evaluation is broken. Like most other false signals in tech hiring, it is yet another broken process, signaling things that don't actually matter. The fact that employers are evaluating people on how much they use AI is just silly. But the goal here is to eliminate skill differences.

In closing, to people who say "you're not special because you know syntax". No I learned architecture in my career. I've done event driven architecture and seen at many levels. From IoT systems, to provisioning systems for setop boxes. And I've worked at a high scale many times in my career. So I know more than "syntax". But my point is that even if you have strong knowledge of architecture (and I definitely do), that is usually not what's being evaluated in hiring.

reddit.com
u/GolangLinuxGuru1979 — 9 hours ago
▲ 342 r/rust

My impression of Rust after using it for a serious project

Ok so I am a professional Go dev of 10 years. I've worked with Java and Python in a previous life. My background is mostly infrastructure and cloud, but I also work a lot with technologies like Kafka and AMPQ. I'd say my career has had a lot of variety. More importantly I've been working with Zig for side projects for about 2 years now. And I am a HUGE Zig fan. I'm just making this clear so you can understand my perspective.

So my history with Rust is an interesting one. I've actually been interested in Rust for 10 years (about the same length of time I've been working with Go). But I think there had been a lot of disqualifiers in the past. Some were silly (lack of IDE support 10 years ago) and others were that I didn't really find a use for Rust. I knew I didn't want to use it for simple API programming. I hadn't seriously done low level dev. And I felt Go fit a lot of things better.

But I recently found a good use case a few months ago. I decided to take the plunge and learn Rust through a serious project. I wanted to build a KV store from scratch. Its something I had been wanting to do for years at this point. And I felt this was a valid use case for Rust. So I went and tried to wrestle with the language. I haven't finished my project but I've written about 1000 lines of code. And its on a fairly complex domain, so I think it gives me some understanding of the language

Things I really like:

Cargo! Oh my God do I love cargo. I also love Rust-analyzer. It is super helpful when navigating the languages.

Despite Go having more market share Rust ecosystem and toolchain feels a lot more cohesive and mature

The compiler is very very helpul. Great error messages and sometimes links to the problem

Complex, but also feels pretty easy to learn

I like the error handling. This I haven't go into much

Standard library seems fairly small and simple to navigate.

I find documentation amazing. Despite Go being more popular, its documentation is lacking in many places. Its even WORSE for Zig. The documentation made me think more about my Java days. It feels like I'm dealing with a very mature language despite it being relatively young.

What I don't love or hate but find "interesting":

Trait bounds and trait composition. I can see where some interesting architectural design can emerge from it. But it makes things overly abstract

Derive macros are interesting to work with. Working with Serde and using derive macros can feel more ergonomic than the more explict approach of Rust and Zig

Rust ships with its own LLDB implementation

Ok things I don't like:

Borrrowing and ownership. It feels like a puzzle at every step. This is where I get "stuck" and need to look things up or ask AI to explain. But I don't feel I am building a good intuition behind these rules. Like I kind of get it, but it still feel like I'm navigating a minefield

Personal preference. APIs for libraries are fairly easy to use, and the Rust community keeps a high standard for documentation. But in both Go and Zig, there is a tendency to look under the hood to see whats going on. I feel Rust SDKs and libraries really don't promote this. I find it hard to understand most of the time.

Rust doesn't have hidden allocations. But that's understood through convention and rarely something entirely obvious unless you have certain assumptions about the language itself.

I praised rust-analyzer but it does get distracting. Often times slows down neovim quite a bit. It can get very intrusive. I can imagine that it can get very irritating if I had a better handle of the language

Rust can be a bit verbose. Verbosity to me is not a bad thing. Go and Zig are both quite verbose. Zig is probably even more verbose. But I think the reason "why" its verbose matters. Zig is verbose because its trying to tell you everything happening under the hood in a very explicit way. Go is verbose because its trying to communicate clarity. Rust verbosity feels more ceremonial. It feels its verbose because the compiler demands you be. And it can feel like I'm performing for the compiler and less because I trying to communicate intent.

Final assessment:

I still have a ton to learn. But due to building a KV store from scratch I am able to confront some of the more complex aspects of Rust. With that said I find that it has a great toolchain, tons of educational material, and a very helpful compiler. It makes it fairly easy to learn. Even with the impetus borrow checker, it feels the language gives you everything you need to learn.

I find it enjoyable and fun in many places. I can see why the community has very vocal and strong supporters. But I will say that I just enjoy Zig a lot more. It may have less safety but it fits the way I like to code a bit more.

However I can see myself using both languages for different purposes. So my overall score is a strong 7/10. I am still getting tripped up by the borrow checker but the language is really fun to work with.

reddit.com
u/GolangLinuxGuru1979 — 1 day ago

I think its essential for developers to learn system programming now

I made a few post the last few days talking about how I feel that AI will replace a lot of jobs. But I think I should be more specific. I think it will collapse or replace product development. I want to get some terminology correct.

At one time developers were split between application development and system development. System programmers generally dealt with more low level stuff, talked to the operating system more directly, and dealt with more performance critical software. An application developer dealt with applications. Things that lived in the user space. The value was usually business value to the user.

Web development further split application devs into front end and backend developers. With backend developers being closer to system developers (depending on the language). But as abstractions have grown more (HTTP frameworks and wrappers) neither side really understand more system level programming. And both have a really high tolerance for software not built around performance.

With that said the keyword here is abstraction. Abstraction has generally made it where developers work inside of a design pattern or system. And mostly worry more about "objects" that have real world correlations. This created developers who know more about business domains and less about memory management and cache locality. And as the industry progresses, developers dealt more in the abstraction layer

Now AI creates even more abstractions to the point where many devs say "well, devs just move up the stack". Meaning code itself is abstracted from the developer. IT means to write software you need to know even less about how the computer works.

So is this sustainable?

No. As the differentiation changes. More application side developers become domain experts and less "programmers". This slowly turns them into product managers or business ops people than developers. I think this collapses. This makes software engineering a less unique field.

But this changes nothing for system engineering, or systems programming

Let's get into the heart of the argument

I personally think AI takes no skills to use. I think most workflow tools are incredibly user friendly. And the perceived "difficulty" is more limitations of models and not indicative of "get gud". With that said AI is pretty much a collapse of skill differentiation. That is only if you stay at the user level

At a hardware and infra level, things couldn't be more complicated. The Attention Mechanism deals with highly parallized computations. And require GPU level programming with CUDA. This also require a handle of C++ or other low level languages (I know Python has wrappers around this, but its better to use a compiled language).

Memory mangement is also important. In AI infrastructure memory is typiclaly the bottlneck. This is why caching is used in inference.

Some people ask me in my local meetup "does computer science become less important". Computer science is the theory of computation. It becomes more important because we are moving away from CPU based architectures.

Then there are other things. Neuromorphic computing (highly parallel neuro cores with localized SRAM). Quantum computing (its not viable but it will remain in some domains). So when we get beyond CPU based computing, it means we are requiring people to think like system programmers again.

I think for decades we have only thought of computers as 1 thing. We've always lived in a world where the CPU is the only thing you worried about. And we've lived in so many layers of abstraction that we worried about the CPU less and less.

But I think AI transform what is expected from systems.

Hence I think you go back to first principles. We need to think about data representation (things at a bit level). This is because quantization is such an important aspect of neuron networks. so how data is represented is actually important again. Memory management also becomes important again because allocations are important again.

TL;DR

Ok the TLDR is this, because I don't this is long and I don't want my argument misrepresented.

- High level/application level programming collapses into domain expertise. The dividing line between a dev and a business ops person becomes murkier. These fields merge

- Things that don't play well with abstractions become more important. Hence getting back to more systems level/low level programming. As this is needed for computationally greedy AI systems

- People have to think about programming beyond the CPU. Other novel architectures (GPU based) are commonplace. And there is a further emergence of others (neuromorphic, quantum). This means that we need to think about computation and programming from first principles again.

reddit.com
u/GolangLinuxGuru1979 — 2 days ago
▲ 1 r/cscareerquestions+1 crossposts

I believe software engineering will go away. Thoughts from a 25 year old vetern

Ok I want to start off by saying is that I enjoy writing code. I write code everyday for my personal projects, and I mostly refuse to use agentic AI at work. I'm saying this because I'm not coming at this from the perspective of a shill. And I'm not a dev who spends all days in meetings and sending emails, I write code. Even when I don't have to, I enjoy it and it helps me stay sharp.

But yes I think if AI gets any better, then software engineering will go away. And this statement isn't hyperbolic. I think its realism. I see a lot of people on forums, linkedin, reddit, and the accepted narrative is "software engineering evolves" or "we just spend more time on architecture" or "it just become about judgement". I'm convince these people aren't software engineers. Because as a software engineer I do architecture, design, and exercise judgement, and have done it for decades. People are acting like software engineering has never been like this. But let's accept that "the role changes" narrative. Let's follow the train of logic

So let's say you no longer need to write code. You are fully agentic, you no longer write code, and you may not even review it since you have verifying agents. What are they paying you for? Oh yeah that's right "figuring out what to build" and "judgement". Ok what does that look like day to day? These are nebulous terms that are hard to measure, quantify or justify. Remember a dev job is mostly technical not sociable. If your just is figuring out what to build, those are stakeholder meetings. Thats basically a product manager. So if you don't write code anymore (many devs said theyt haven't wrote code in 8+ months). And you don't review code because AI agents catches stuff. Then why couldn't we just give a product manager an agent? What value are you providing that they can't? I could set up an agent where they can just put the requirements in a spec. you can have a workflow that generates the new test and everything. So do we even need a software department anymore at all?

Now here is the reality. I don't think AI is that good at writing code. It does really good CRUD and SaaS stuff. I am a platform engineer and AI becomes a lot less useful for this sort of code (correctness is more important than just delivery speed). And even in my role, some CTO or VP will get the bright idea to use agentic AI to generate infrastructure. But the vast majority of dev jobs are product jobs just translating business requirements into software. The developer is the middle man here, not the PM. The PM job is already social, about leadership, and their metrics are based around coordination. A dev is just a friction point.

In conclusion. There almost zero reason for anyone to continue to pay a full time developer in most of these roles. To me the end game is obvious. No one is going to pay a agentic babysitter 6 figures. And even if they are now they won't continue to. The role future is tenous at best. But what the idea of the "agentic babysitter" role does is give people professional comfort and safety. Its just too hard to admit that the economics of keeping a dev team makes no actual sense. And dev aligning themselves desperately with AI narratives are just digging their own grave. But I think if we were honest I think we'd see the truth about the future of this position.

I also want to somewhat add some nuance. A lot of dev jobs will go away. AI generated code has to be applied to systems where failure is cheap and easily recovrable, and velocity is valued over quality. This applies to a lot of line of business development and enterprise software. The power of the software is the sales team moreso than the engineering org. I still think system programming, embedded systems, to some extent infrastructure kind of stay safe. Just because failure modes here is expensive or catestrophic. But this don't mean these categories won't be tested. I just don't think you can rely on AI in these domains without major fallout later.

So is there any optimism? Because I've painted a very bleak future. I do think there is room for independent development. I believe there is a market (albeit small) for artisan software. Differentiation will still be important. AI does make software very "samey" and lean towards averages. So polish may matter to a subset of users. Just think of the watch industry. Watches can mostly be mass produced and tell time way more accurately than mechanical watches. But people still pay tip dollar for hand crafted watches like Patek Phillipe. And people like tourbillions even if a digital watch that cost $10 tells time more accurately. Software may see the same metamorphisis. At least that is where I'm more hopeful than certain.

reddit.com
u/GolangLinuxGuru1979 — 4 days ago

Does human life have intrinsic value?

This may sound like a philsophical question. But I have never believed in my life that human life just naturally had value. We are the sum of our contributions to society. Our value is in our output. Without human producing output you cannot have a society at all. I still believe today that humans are only what we are able to produce for society.

I am 46 and I have worked in tech my entire adult life. I have sacrificed a dating life, my health, and just about everything for my career. I’ve done anything I can to stay on top of the competition.

In the last 7 years I have had many loses. My father, maternal grandmother, paternal grandmother, my uncle, and my mother. Most of my family is dead and all I’ve been left with is a career

But AI and age threatens my career longevity. Despite my understanding the computational theory of AI and neural networks. And me doing personal work in neuromorphic computing. This still doesn’t give me any leverage in the market

I feel the end is near. My time is almost up.

And without my career I am nothing. I offer nothing to society. It becomes harder and harder to justify my existence. Because I am not providing anything of value anymore to the world.

I made a thread in the earlier. And I realize that people are philosophicaly misaligned. They believe someone like me can accept the premise that life itself is justifiable. But I’ve never been raised to believe this. Life must alway justify its value. And I’m trying to find a reason to continue to exist but it’s really difficult

So does life have intrinsic value? Or is it only derived externally? If human life does have intrinsic value, then can you explain logically why?

reddit.com
u/GolangLinuxGuru1979 — 2 months ago

I can’t objectively justify a life with no career

For my background. I am a 46 year old with a 25 year career in technology, I’ve been learning about computers since around 14 years old. And I can’t even remember a life before it. I also started my career really young and really grinder for it years before that. So since 16 my career has taken centerpiece in my life

I don’t have any children, I am not married, my parents are both dead, I’m an only child, and I don’t have any family. I have a few aging aunties still living on both sides of my family.

I’m mentioning this because I can’t fathom the idea of even retiring or not having a career. It becomes really hard to justify my existence because without my career I’m contributing nothing to society.

A big part of me hopes that I’ll just die before I reach 70 because otherwise I don’t know what to do with my life. At 70 it would be hard to compete with younger talent. And I would be forced into retirement.

I know many people who have retired. But they do have children and grandchildren or extended family to keep them busy. I will have none of that

Would like some advice

reddit.com
u/GolangLinuxGuru1979 — 2 months ago

At 46 I am mathematically eliminated from starting a family. What should I do with my life

I’m 46. Maybe mathematically to old to start a family. What should I do?

I am a 6’4 man and over 300 lbs. I am not that healthy. I’ve had a good career but with my parents dying in the last few years lots of financial progress has been destroyed. I still am hanging onto a career but I feel ageism will undo me. I do know AI deeply at the infra and neural network layer but neither ensures long term employability

Ive never had children or have been married. But it seems like I’m mathematically eliminated from having one. If we break it down in terms of probability

age/fitness levels ensures level of desirability

Wanting children means I am forced to take a younger woman. But no model supports younger women being attracted to older men. Especially no one at peak levels of fitness

So this means I have to be significantly wealthy. I’ve proven I can make money. But with a bad economy this limits economic mobility. And doesn’t create enough economic leverage to attract younger women

You could say I could start a family with someone the exact same age as me. But starting a family at this age would mean 2 40+ people stating a family for the first time. This present challenges if you’re not insanely wealthy.

So my question is why should I really do with my life at this point? Since the probability of starting a family at my age and at this state is less than probably %5 likelihood of success? And my career is in its twilight. It feels that I’m in a deadlock.

reddit.com
u/GolangLinuxGuru1979 — 2 months ago

I am a 46 year old man who is has never been married and have no kids. I keep deceiving myself thinking love is possible. But I would think statistically speaking the older I get the less likely I am to really find love. I’ve done well financially in my career and the only real path forward seems to be a transaction relationship. But that’s not actually love.

At what point is it so statically unlikely that it’s more practical not to dedicate anymore mental bandwidth towards it. When is it time to fully pivot and just accept your fate?

reddit.com
u/GolangLinuxGuru1979 — 2 months ago

Full disclosure, I wrote this on my LinkedIn. But wanted to reshare this here:

I made this post on LinkedIn. Tell me what you think:

I want to talk about psychology and the second order effects of AI. This may be a bit psycho babblish

Over the past couple of years I’ve talked to developers who use AI coding. As the years have gone by I’ve seen people defend it most more ardently than they have in the past. This tells me that this isn’t just a tool psychologically for people? Then what is it?

Well we need to start with imposter syndrome. Software systems are big and complex’s. And there are many layers to learn. It can often feel that there are constant gaps in knowledge. And this is where AI comes in. It’s able to bridge that gap. It makes you feel better because it lets you do things you weren’t able to do before.

This starts the process of appealing to an AI authority. The side effects is that you start telling yourself AI is smarter than you. So you become more ambitious. You start building things you would have never dreamt of building before. And you may do it successfully. AI is unlocking competence for you

So criticism becomes less “AI has flaws and make mistakes”. And more “you’re criticizing the thing that makes me relevant”. It’s an attack on your psychological identity

This creates a dependency loop. The more AI appears successful, the more you rely on it. You start to depend on it more and more. And now every engineering decision you make is to justify why everyone should be using agents.

This is definitely not a good thing. Because you stop understanding. You stop growing. You stop improving. Improvement is only weighted towards tool efficiency. Not understand the domain, the architecture and invariants. And this creates a cycle of blind trust

I believe this dopamine loop is probably psychologically corrosive . But I am not a psychologist. Just trying to predict the future like anyone else

reddit.com
u/GolangLinuxGuru1979 — 2 months ago