News for hackers. Stuff that matters.
Re:Feedback: I try to answer “how to become a systems engineer” by anotherhue on Tuesday May 30, 2023 @11:08PM (#36134050)
I like the article at lot, I've got a similar background.

My answer to the question would be: start explaining what you're asking the OS to do when you run your program. There's an entire category of developers who view the IDE and the language as a perfect hermetically sealed environment, until they meet a leaky abstraction.

Some favourites:

1. Depleting the outbound TCP ports because ports aren't infinite and the code didn't know that.

2. Any nodejs BS that involves a precompiled C lib, where homebrew or some nonsense 'just works' on the dev machine but prod runs alpine/musl. NPM sneaking arch specific blobs in is really to blame here but what do we expect from the failed state of package managers.

3. Assuming latency is not a thing. Network calls everywhere. No management of timeouts / killed connections.

4. Memory, in all shapes and forms. Most typically thinking a GC prevents memory leaks, but more generally, having no clue whatsoever what the memory usage profile of the application is.

A systems engineer (IMO) has much better answers to these questions than a regular developer, and it is absolutely mostly arcane nonsense, (ulimit anyone?), until it isn't.

Personally I love OS tech so maybe I'm just cut out for it. I used to be able to tell what the machine was doing from the HDD whirrs and still have a 'feel' for system latency, e.g. when something completes too quickly.

Re:Feedback: I try to answer “how to become a systems engineer” by tra3 on Wednesday May 31, 2023 @01:29AM (#36134794)
> used to be able to tell what the machine was doing from the HDD whirrs

This is a tell. You’re old enough that stacks used to be shallower and you were closer to the OS.

Re:Feedback: I try to answer “how to become a systems engineer” by mjevans on Wednesday May 31, 2023 @01:37AM (#36134847)
Often the audio ground was the same as the system ground and you could literally hear activity as low static when the speakers were on.
Re:Feedback: I try to answer “how to become a systems engineer” by anotherhue on Wednesday May 31, 2023 @03:29AM (#36135530)
Re:Feedback: I try to answer “how to become a systems engineer” by PhilipRoman on Wednesday May 31, 2023 @08:50AM (#36137748)
Eh, from my laptop's noises I can tell approximately what is showing up on a remote console running over X11.

For some reason whenever text is updating it makes a faint buzzing noise.

The matrix movie joke about seeing code is actually pretty close to the truth. Not necessarily a sign of a great programmer, but still a nice skill to have.

Re:Feedback: I try to answer “how to become a systems engineer” by kqr on Wednesday May 31, 2023 @02:11AM (#36135072)
The realisation that "any resource exists only in finite amounts" covers most of your points, except perhaps that about C libraries!
Re:Feedback: I try to answer “how to become a systems engineer” by okdood64 on Wednesday May 31, 2023 @02:34AM (#36135202)
Man all this reminds me so much of my previous gig and it was so FUN.

Now I have a not so fun job at Big Tech doing SRE type work; all of that mucking around is abstracted away from me.

Re:Feedback: I try to answer “how to become a systems engineer” by BirAdam on Wednesday May 31, 2023 @08:30AM (#36137553)
IMHO, the fun is that less abstracted systems are actually fixable because you can “see” the failures, as opposed to cloudy stuff where you do a lot of work to prove that the problem is on the provider’s side, and then wait months for them to implement a fix… only then to have already worked around the issue.
Re:Feedback: I try to answer “how to become a systems engineer” by sph on Wednesday May 31, 2023 @03:05AM (#36135371)
That's the type of job I enjoy doing!

After 17 years in this career, I dislike calling myself a "software engineer" because it's a meaningless term that now is used to describe anyone that knows how to build a web page. "Full-stack engineer" has also been stolen from us by recruiter to refer to frontend devs. WTF.

As a teenager I started doing software interfacing with hardware, reversing on Windows then I wrote my own mini OS, got a job and did web dev, sysadmin, backend, infrastructure, and CTO, alongside dozens of consulting contracts.

I get hired to fix a problem, and soon enough I'm diving into the technicalities of the network stack, or tracking down a bottleneck with spit and strace, or scaling an infrastructure horizontally and making it fault tolerant.

At this point most of the value I provide is not in the volume of code I deliver, but designing, operating and maintaining systems as a whole. A systems engineer, if you like, but as the article mentions, that's a real qualification that's got nothing to do with this.

The issues is that in the job market I have to compete with everyone called a software engineer, slap a senior to it, which these days refers to anyone that has 5 years of experience, and feel it's very hard to convey to a recruiter the depth of my experience. A programmer operates on code, a "systems engineer" looks at systems holistically, horizontally (i.e. architecture) and vertically (i.e. diving down the stack)

Re:Feedback: I try to answer “how to become a systems engineer” by kabouseng on Wednesday May 31, 2023 @03:31AM (#36135538)
Funny (I am not too serious about this point :D ), but I feel systems engineer is actually an engineer that has a multi-disciplinary skill set (mechanical, electronic, software etc) that guides a multi-disciplinary team to develop a complex product. Now it is repurposed for full-stack software engineers.
Re:Feedback: I try to answer “how to become a systems engineer” by sph on Wednesday May 31, 2023 @04:07AM (#36135755)
Is there anyone that can extend their knowledge to mechanical and electronic engineering, as well as software? I feel that my breadth in software knowledge is reaching the limits of my mental capacity and I have to shed useless weight now (i.e. I haven't kept up with frontend for 3 years now)

My father was an electronic engineer, and I would love to get into it eventually as I grew up organising his components drawer, burning LEDs and licking solder wire (yeah.. I regret it now), but that's going to be something I'll have time for when I retire.

Re:Feedback: I try to answer “how to become a systems engineer” by acomjean on Wednesday May 31, 2023 @08:53AM (#36137779)
You have a limited time to learn things. I learn for projects, that keeps my scope limited.

I think I can an extend a little into the non software realm, though my undergrad degree/ first jobs were in civil engineering. I migrated to computers and ended up going back to school for that.

I work writing software for biologists now, though my understanding of the underlying biology in that is shallow (Compared to my biologist coworkers)

Re:Feedback: I try to answer “how to become a systems engineer” by SAI_Peregrinus on Wednesday May 31, 2023 @03:59PM (#36143413)
Embedded software tends to need at least some EE knowledge, though how much will depend on the job. A tiny bit of ME knowledge also helps (consider thermal management, consider vibrations during shipping, consider vibration in use, etc). For robotics and mechatronics, ME knowledge becomes far more important.
Re:Feedback: I try to answer “how to become a systems engineer” by hef19898 on Wednesday May 31, 2023 @05:12AM (#36136186)
I work close enough to systems engineering to have some insight: The good systems engineers are strong generalists, have one core competency with deep knowledge and expertice, good enough knowledge in related fields to understand and work with experts, and are generally good at engineering.

Complex job, but a fun one! And crucially important for any product more complex than a dish washer.

But please, don't steal the name for some software "engineering" role...

Re:Feedback: I try to answer “how to become a systems engineer” by DoingIsLearning on Wednesday May 31, 2023 @06:07AM (#36136558)
I think parent is refering to the fact that in a formal context (think large Aerospace systems), a Systems Engineer is the role that oversizes all interfaces mech/electric/software and makes sure there are no requirements misalignment.

In that sense the naming has been misappropriated in the SV tech circle to mean a "backend engineer that actually understands what is going on under the hood" sort of role.

Re:Feedback: I try to answer “how to become a systems engineer” by fest on Wednesday May 31, 2023 @06:42AM (#36136747)
> At this point most of the value I provide is not in the volume of code I deliver,

My personal record is two characters of code per two weeks of work.

Embedded device kept crashing when initializing GUI rendering library (a precompiled one, STemWin IIRC). Two weeks of disassembly, instruction-level tracing of the MCU core narrowed it down to the contents of external RAM not being correct (that is- what was being read did not match what was being written).

Some more poking with oscilloscope, reading the datasheets and low level memory initialization revealed an incorrectly set RAM configuration register that was related to burst writes. RAM test during bringup used word-by-word writes, but when DMA was used only the first word in transaction was written correctly.

Re:Feedback: I try to answer “how to become a systems engineer” by sph on Wednesday May 31, 2023 @07:34AM (#36137088)
It's fun, isn't it? Feels a lot like detective work, and as a career feels like being a nerdy Mr. Winston Wolf from Pulp Fiction.

"I'm Winston Wolf. I solve problems." - which I stole as my tagline. No Acura NSX for me just yet.

Re:Feedback: I try to answer “how to become a systems engineer” by kps on Wednesday May 31, 2023 @08:40AM (#36137647)
> My personal record is two characters of code per two weeks of work.

Mine is approximately minus one instruction per week, and it was the best money the company ever spent. Hard real-time is hard. (It was a strange processor with, among other things, delay slots everywhere, so you could never make just one change without ripple effects.)

Re:Feedback: I try to answer “how to become a systems engineer” by ClumsyPilot on Wednesday May 31, 2023 @08:50AM (#36137746)
Oh dear.

I just dabbled in embedded, once debugged an arduino I2C peripheral, went through the same process, but never fixed the problem :) I was easier to get a different peripheral.

Re:Feedback: I try to answer “how to become a systems engineer” by Woodi on Thursday June 01, 2023 @02:39AM (#36148187)
> work ... embedded ... disassembly ... correct ... reading ... transaction ...

It's sad but I'm pretty sure "types" like you all will be labeled "enemy of the state" soon... Oscilloscope ? Registers ?? ;)

That is, if things will keep going the way things are currently going - corporations, banning periodic tables from schools, elected stallers and clan mentality on all levels.

Re:Feedback: I try to answer “how to become a systems engineer” by fest on Thursday June 01, 2023 @01:15PM (#36154263)
Looking at the number of high school graduates passing physics exam each year in my country (around 250 out of ~12 thousand total high school graduates), I'm pretty sure corporations won't even have to break a sweat.
Re:Feedback: I try to answer “how to become a systems engineer” by rjzzleep on Wednesday May 31, 2023 @08:03AM (#36137330)
> "Full-stack engineer" has also been stolen from us by recruiter to refer to frontend devs. WTF.

Pretty much yeah. I can relate to everything you write there. I always thought most of this is related to when I learned reverse engineering in high school. That's basically when I started understanding memory and why it mattered.

Unfortunately recruiters also don't understand the kind of profile, they just lump us in the group of "generalists" and say you need to specialize if you want to progress and yet in a lot of projects I often ended up understanding more about the details than the so called specialists.

I once had a client that I saved dozens of millions a year due to a fix that they had accepted as "just part of the system" only for the manager to fire me with a severance, because by fixing it I undermined his decision to scrap the project.

Re:Feedback: I try to answer “how to become a systems engineer” by reaperman on Wednesday May 31, 2023 @08:34AM (#36137589)
Classic principal-agent problem. Additionally I think you misunderstood who your employer was and what your job was!

But very very frustrating for the world to work in such an anti-productive and nonsensical way.

I also wonder if you would have been fired anyways when the old system was scrapped.

Re:Feedback: I try to answer “how to become a systems engineer” by rjzzleep on Wednesday May 31, 2023 @11:11AM (#36139258)
> Additionally I think you misunderstood who your employer was and what your job was!

I've heard that one before, so I'm going to agree. It's also inline with what the guy told me.

The system wasn't being scrapped they were just going to pay for almost triple the infrastructure. But yes, this was the first time I was exposed to performance reviews, I was as you said hired for something else entirely and it's possible that I would have been fired anyways since my job was actually about writing firmware and migration tools to migrate away from the old system(which also saved them a couple of millions a year). The performance review itself was however about tasks completely unrelated to what I got hired for.

I have done mostly contract work since then, but I am wondering if it is common to put your actual job content into your hiring documents to make sure people don't do performance reviews about unrelated tasks?

Re:Feedback: I try to answer “how to become a systems engineer” by reaperman on Wednesday May 31, 2023 @11:28AM (#36139461)
> I have done mostly contract work since then, but I am wondering if it is common to put your actual job content into your hiring documents to make sure people don't do performance reviews about unrelated tasks?

Honestly for contract work (and usually also full-time employees), the best thing you can do is focus on all the people who are responsible for your performance review and make them happy, make their initiatives look good, and get along with them so that they like you. Sometimes this means doing completely different work than you thought you were hired to do. Or doing all that in addition to what you were hired for.

The absolute worst case for a contractor is that you're "hired to fail" where there's a project with a 90% chance of failing so they bring in a contractor/team who either miraculously save it, or you're blamed for the expected failure. However, even here, if you show competence and make friends with the people who will stab you in the back in the short term, you may also find that some of them call for your services again in the future -- because you did "the job you were hired to do" and made it easy for them, made them look good, and were enjoyable to be around.

The written "rules" of the performance review don't matter, at least in the USA (maybe different in other countries). Performance reviews basically boil down to "how much do I like working with this person?" which definitely includes competence (people mildly dislike working with incompetent people), but also includes things like "makes my day happier" or "great conversation over beers / at the sports game".

I'm mid 30's and have worked a few contracting gigs but never really made it work out (usually it coincided with life being a little too chaotic at the time for me to fully focus on my client). So hopefully some others with more experience will chime in. But there's a lot written on this topic on HN, you can find a lot of experienced views from all sides of the table with a bit of searching!

Re:Feedback: I try to answer “how to become a systems engineer” by travisgriggs on Wednesday May 31, 2023 @11:11AM (#36139262)
Amen to this. When I explain to full stack web devs that I do bare metal C, Python + Linux on edge nodes, server side processing, and native mobile apps they either say “you should AWS, we really like AWS” or “wow, so you’re like the real kind of full stack”.

Self deprecation and lauding aside, I’m curious what new titles others would propose? When I migrated into the field many moons ago, the two titles I saw mostly were “analysts” and “programmer”. The first had underpaid connotations, the second was rife with social awkwardness cues that Hollywood had run with for a while.

Re:Feedback: I try to answer “how to become a systems engineer” by toomuchtodo on Wednesday May 31, 2023 @11:19AM (#36139361)
I've used the term "Deep Generalist" before. Broad knowledge, deep capabilities. You know enough to know what you need to learn and execute on demand.

Historically known as or referred to as a "Renaissance Man" [1] or polymath [2].

[1] https://en.wikipedia.org/wiki/Renaissance_Man

[2] https://en.wikipedia.org/wiki/Polymath

Re:Feedback: I try to answer “how to become a systems engineer” by travisgriggs on Wednesday May 31, 2023 @12:37PM (#36140345)
Hmmm... Maybe I'll marinate in something like PolyWareIst for a while :D
Re:Feedback: I try to answer “how to become a systems engineer” by escape-big-tech on Wednesday May 31, 2023 @09:11AM (#36137964)
I find that the software industry is one of those industries where all role names are made up and change meaning all the time. As you said, just a few years ago (ok maybe a decade) a "Software Engineer" was a person who built Software, now it's a frontend developer that has a basic understanding of the backend.

Despite the terminological thefts and oversimplifications, I'm still proud to be a part of this industry. We're like the James Bonds of the digital world; we go by different names, but the substance of our work and our contributions are what truly define us. So, let them call us whatever they want... They may not always understand what we do, but they sure as hell need us to do it!

Re:Feedback: I try to answer “how to become a systems engineer” by 908B64B197 on Wednesday May 31, 2023 @11:48AM (#36139715)
> just a few years ago (ok maybe a decade) a "Software Engineer" was a person who built Software, now it's a frontend developer that has a basic understanding of the backend.

I'll cut a bit of slack to the frontend as it's also gotten significantly more complex over the last decade or so. I've seen places where frontend means "our iPhone app". Microsoft Office now has a version that runs in the browser.

Re:Feedback: I try to answer “how to become a systems engineer” by jdwithit on Wednesday May 31, 2023 @01:19PM (#36140918)
This is absolutely true, there is zero consistency in titles, levels, or their meaning across companies. I've been doing more or less the same stuff (if you zoom out enough) for more than 15 years. In that time I've been a System Administrator, Systems Engineer, DevOps Engineer, Cloud Engineer, Software Engineer. I haven't gotten SRE on the bingo card yet but it's one of the main titles I search for these days.

Doesn't really bother me, although it does make evaluating what you might actually DO in a particular role challenging. In this "SRE" position am I writing Kubernetes operators in Go, or am I a Jenkins pipeline janitor, or am I working the graveyard shift in a data center swapping dead hard drives? WHO KNOWS!

Re:Feedback: I try to answer “how to become a systems engineer” by goodpoint on Wednesday May 31, 2023 @05:47AM (#36136431)
The 4 things you listed are really basic knowledge.
Re:Feedback: I try to answer “how to become a systems engineer” by goodpoint on Wednesday May 31, 2023 @09:33AM (#36138209)
Great. Silent downvotes from HNers that don't even know TCP.
Re:Feedback: I try to answer “how to become a systems engineer” by eropple on Wednesday May 31, 2023 @10:02AM (#36138544)
1) They're formative knowledge for understanding that part of a system. Systems are big and few people understand them entirely. I happened to know those things, but I am a pathologically T-shaped/"paint drip" developer. The middlebrow dismissal of "oh that's basic" is going to get a rise out of people.

2) You threw a one-line, no-help comment out there. That's going to get you downvoted unless it is at least interesting or funny.

3) Now you're complaining about downvotes, which is a big red sign for "downvote me more, for I am mad".

Re:Feedback: I try to answer “how to become a systems engineer” by d0mine on Wednesday May 31, 2023 @04:24PM (#36143813)
Different people may have different basic knowledge https://xkcd.com/1053/
Re:Feedback: I try to answer “how to become a systems engineer” by uxp100 on Wednesday May 31, 2023 @08:30AM (#36137551)
Perhaps the term for this is System Software engineer? (I had that title for a while, it has a sort of pleasant ring to it) As others have noted I’m more familiar with the systems engineer job title involving giant webs of requirements and specifications. Maybe something not so far off from a Product Owner in the “tech” world, though I’m not sure about that.
Re:Feedback: I try to answer “how to become a systems engineer” by sergiosgc on Wednesday May 31, 2023 @09:36AM (#36138244)
> Personally I love OS tech so maybe I'm just cut out for it. I used to be able to tell what the machine was doing from the HDD whirrs (...)

I loved the story about how a developer of ZFS, from the Sun days, went down a rabbit hole of optimizing the filesystem because he didn't like the sound hard drives made on certain write loads. Turns out he was right, there was funky stuff going on with the I/O scheduler.

Too long ago, I don't remember the source, sorry.

Re:Feedback: I try to answer “how to become a systems engineer” by zorked on Wednesday May 31, 2023 @11:18AM (#36139350)
> I used to be able to tell what the machine was doing from the HDD whirrs

I guess that dimension of debugging is now lost with SSDs. I didn't run an anti-virus and noticed by machine had caught a virus (in this case, DOS/Natas) because of the extra moments of whirrs during boot and when running applications.

Re:Feedback: I try to answer “how to become a systems engineer” by beedeebeedee on Wednesday May 31, 2023 @12:27PM (#36140251)
I've been doing some audio work simulating audio equipment, and I bet you could pipe out some sound for disk writes and use that as a debug tool.
Re:Feedback: I try to answer “how to become a systems engineer” by anotherhue on Wednesday May 31, 2023 @01:13PM (#36140824)
Re:Feedback: I try to answer “how to become a systems engineer” by beedeebeedee on Wednesday May 31, 2023 @02:00PM (#36141479)
That's really cool, and neat that he uses the activity light from the hard drive as input to generate sound.

I wonder how much slower processes would run if you generate sound on the computer itself from every hard drive write. I don't have deep enough knowledge about the OS to know where you would run your sound program without affecting performance (i.e., are there log files that could be read, so it is not directly interacting with the hard drive writes? would those still be timely enough to give a good indicator of what the computer is actually doing?)

If that could be solved, then you could have a sound for network activity, every time a kernel module loads, etc, so users don't need to have deep knowledge of the system to know when there is a problem- they just have to learn what sounds right. I think it would be really neat to have music made by the machine itself and love the idea of adding back that dimension of debugging.

Re:Feedback: I try to answer “how to become a systems engineer” by jdwithit on Wednesday May 31, 2023 @01:03PM (#36140679)
The latency one hits hard, as someone approaching this from the other side who came up through Ops and learned software development over time. So much software I've had to support was written with the assumption of flawless network connectivity. No latency, no dropped packets, no fluctuation in response time. If there was any disruption or a call didn't return within a very short timeout, the app just blocked and eventually crashed. Any sort of network maintenance was a huge problem because a couple seconds of spanning tree reconverging or whatever meant a significant outage until all the applications recovered. This was of course always the network's/ops' fault, using patterns and libraries that have been around for over a decade to handle the inherently unreliable nature of computer networks was never on the table.

I've seen some replies that this is basic stuff everyone should know, but the fact is, people don't. Even Senior or Principal engineers (depending on the company). You can get very far in software engineering without understanding anything outside the bubble of your domain. Hell this is basically why the field of SRE exists, because a lot of developers do not know how to write reliable software that works in the real world, not just in a perfect test environment. If you've somehow worked your entire career surrounded by engineers who have even an entry level understanding of how networks function, you're the outlier. More often I've found people invent their own bizarre mental model of what's happening that only has the vaguest grounding in reality.

And honestly that's ok much of the time. Everyone can't be an expert in everything. Just have some grace about it. Don't pull a Dunning-Kruger and assume because you are a fabulous Java developer you are automatically an expert in every technical field. Most of us aren't.

Re:Feedback: I try to answer “how to become a systems engineer” by gdugdjfh on Wednesday May 31, 2023 @07:17PM (#36145768)
"ulimit" is discussed on the bash manual page. It isn't arcane nonsense. In fact it is incredibly concrete and understandable even by newbies. You're going to have to look elsewhere for an example of obscure, complex, useless technicalities.