>They think the process is “senior make ticket, anyone implement ticket, unga bunga”.
The fact that you just summarized about an hour worth of argumentation from my last annual planning meeting with that one sentence has just destroyed me. I kneel.
At this precise moment in time, if anybody seriously thought the above was the way the process works or should work, they should be advocating for firing all the juniors and replacing them with LLMs.
> At this precise moment in time, if anybody seriously thought the above was the way the process works or should work, they should be advocating for firing all the juniors and replacing them with LLMs.
Sadly, I think this is happening at some places. Like Salesforce. Sigh
Somewhat agree and disagree. I bucket people's style into two camps, stressing over the former is largely unproductive, but stressing over the latter is crucial to writing high-quality, maintainable software.
Someone's style can be "different" without being "bad", and you have two basic options to deal with it. One is to authoritatively remove the soul via process (auto-formatters, code review, and to a lesser degree linters, etc. are all designed to create uniformity at the cost of individuality.) The other is to suck it up and deal with it, as this is just an inevitability of creating a team size larger than one: people have different tastes and those have to be reconciled. I somewhat prefer allowing for individuality, and individuals should endeavor to match the style of whatever module they're working in, out of courtesy to its owners/stakeholders if nothing else. However I have only worked independently or on small teams. Most large teams (/ open source projects) have gone the former route of automating all the fun/craftsmanship out of their systems, and even I think that makes sense at a certain scale.
Someone's style can just be objectively "bad", however, and I usually find it's evidence they just don't care about the source artifact that much, and they're focused on the results. (It can also be a sign of an under-performer that spends so much mental capacity just getting the code to work that they have no spare cycles to spend thinking about matters of taste.) If it compiles / works / passes the test-suite that's "good enough" and "their job is done" and they move on to the next task. These people tend to be hyper-literal thinkers that are very micro-task oriented: they see implementing a new feature as a checklist to be conquered, rather than being systems-level thinkers on a journey of discovery & understanding.
If the author is talking about the latter, I have to agree with you that the latter are quite difficult for me to work with; particularly since I know that the source has to be maintained & supported over a much larger time-scale. The source-code is like your house, you live in it, being comfortable to work with/in/on it is the key to success. The deployed artifact may live for only a few weeks, days, or even hours before it gets replaced. The source has evolved over decades. You (the organization) are practically married to it. To further the analogy: I don't mind if somebody wants to hang posters in their room for a band I don't like. (Hell I can even handle if a group of those posters are tastefully hung out-of-level to make some kind of statement.) I do mind if their furniture is blocking a vent, the outlet covers are hanging off, there's a hole in one of the walls, a light has been burnt out for months, and the window-blinds over there are clearly broken but they insist it's fine because daylight still gets through.
> In my case: I am near physically incapable of doing things that I "need" to do, with the more I "need" to do something, the harder by brain and body will rebel against doing it.
This is interesting to me. I find my own behavior is the exact opposite; I have no internal concept of need. I will do everything in my power to avoid starting a task until someone says it "needs" to be done. So in my experience the need is always externally motivated: it's usually just a deadline, or some other authority micro-managing me. ("I'm meeting with [customer] tomorrow and would like to show them [x] from project [y] is that ready?" => I will move hell and earth to do [x], and not a minute sooner. There's some activation threshold there. It is definitely not calibrated where it needs to be, but my ability to "thrive under pressure" has allowed me to cope, as long as someone/something holds my feet to the fire.)
Also I find deadlines are a lot more effective for adult-me than they were for child-me. I think that's mostly because I've got project managers to lean on who are creating those schedules, tracking them, and keeping them visible. Whereas in school child-me was expected to be my own project manager. (Yeah, that was never gonna happen. Many tried to get me to jot dates down in my little day planner. Many failed.)
Disclosure: I'm not clinically diagnosed with ADHD, but from all I've heard/read about it I would not be terribly surprised to find out I have it. (Although I would be surprised to find myself having sufficient motivation to go out and get proper help. ;-P)
I remember e-mailing a guy for some iPad app and having a similar moment.
The important context is the app had its own custom keyboard. I used the app personally, and recommended it to a customer to solve a problem they were having. It turned out that the newest version would not work because it had removed some of the Fn-keys.
I e-mailed the developer to ask for some guidance. At the time I figured it maybe had something to do with the viewport size, and was just trying to diagnose the issue. (I had an iPad mini, while the customer had purchased I think a 9th gen iPad. I wanted to know if a different device would solve the problem.)
The guy e-mailed me back and was like "Oh, yeah, I changed that last week while making the new keyboard layout. I'll revert it and push out a new build." - I had a similar epiphany at that point where it was like "this guy is a dev just trying to navigate tradeoffs and ship the best app he can." - Also the tradeoffs are never as straightforward as one would think.[1]
> this guy is a dev just trying to navigate tradeoffs and ship the best app he can
I suspect a lot (most?) of apps in the App Store and the Play Store fall into this category, just like most repos on Github. People are putting their projects out there; obviously they're not immune to criticism, but I think it's important to remember that most of these people aren't Tim Cook, they're not making a living promoting stuff and taking shit people throw, they're just engineers sharing code with the world.
> Also the tradeoffs are never as straightforward as one would think.
Yep, completely agree; the obvious "solution" is to make everything configurable, and that can work to some extent, but then you risk an "oops I reinvented interpreters" moment, and then you made the app impossible to use for non-geeks. There's almost never a "correct" way to do it to satisfy everyone.
I wouldn't be so sure about that. If you had said this before my most recent hire I would have agreed - but my junior writes stuff that looks like this or worse. I'm always reviewing stuff with weird capitalization, punctuation, spelling, grammar, etc. that makes me raise an eyebrow on a regular basis. Their code looks just as weird despite having the help of a heavy-weight IDE in their corner. We're constantly cleaning up hanging indents, unnecessary newlines, mismatched indents, commented out code, etc. (That's with a college education, a Grammarly license, and no small amount of coaching on my part!)
I have a sample size of 1, so I can't ascribe too much to "these damn kids," but it seriously strikes me as having learned written language primarily from texting & instant messaging. Whereas I grew up roughly by transitioning from: reading books -> writing mails to pen pals-> writing e-mails -> web chats -> T9 texting -> modern IMEs. In other words I initially learned to write with long-form content and learned to condense it down later. These days I think people are just learning straight from the condensed version.
The other reason I don't think it's an LLM is simpler: most commercial LLMs wouldn't be "aligned" to be that rude, and the smaller LLMs I've seen wouldn't be able to inject relevant code snippets from a relatively unpopular library into the output.
I would not be surprised if this person misused the library, got called out for it in code-review (calling the iterator multiple times is a huge code-smell), and now they are soothing their ego by shifting blame onto the library author for making "such a bad API."
Individual who sent that mail has trollish name, trollish email account and s/he is talking gibberish. My conclusion was, give it a pass and move on.
>I would not be surprised if this person misused the library, got called out for it in code-review (calling the iterator multiple times is a huge code-smell), and now they are soothing their ego by shifting blame onto the library author for making "such a bad API."
It could be that but then again it's his or her fault not the maintainer's. At the end of the day, s/he has some serious anger control issues if that's true.
>The other reason I don't think it's an LLM is simpler: most commercial LLMs wouldn't be "aligned" to be that rude, and the smaller LLMs I've seen wouldn't be able to inject relevant code snippets from a relatively unpopular library into the output.
You can modify some open source LLM to talk trash, meaning teach it to hate and disrespect.
I'm curious what makes you think the MBA is a more "full experience?"
The MBA is permanently affixed to its keyboard: so it can't easily be used for consumption (in bed, on the couch, etc.) The MBA also has no touch screen, and no stylus. The iPad can also ship with a built-in cellular radio. Now I'm carrying an extra tablet, plus an extra hotspot.
That sure sounds like a lot of compromises to me. If I needed more performance I'd be stepping up to a MBP for the active cooling, which pushes us into a different price bracket anyways. If I needed more disk/memory bandwidth I wouldn't even be considering a portable in the first place. (More realistically: I would be using my portable to shell into a more powerful box, and an iPad Pro or even an iPad Air would do that just as well as any MacBook.)
If you need more external I/O, well, I'm not sure I buy that the iPad Pro is a serious compromise over the MBA. It has 40Gb/s of bandwidth and that's _a lot_ for the vast majority of use-cases. My main MBP already sits docked all day via a single thunderbolt cable.
The only reason I would actually choose an MBA over an iPad is that I'm a developer. I place strangely disproportionate value on things like an untrusted boot-chain, kernel extensions, and freedom.[1] I like having the flexibility to be able to bless and enroll my own bootable volumes. I want to be able to tinker with the system partition. I want to introspect the system when things go wrong. The iPad challenges these things by design.
I cannot emphasize this enough: _all of my friends would be lost trying to follow along with the preceding paragraph._ They would look at me like I had two heads. _The above desiderata are not at all representative of the average computer user today._ For most of what I do (media consumption and some content creation) the iPad Pro would do an excellent job, I'd argue better than the MBA. For everything else I do: "iPad Pro vs. MBA" is a false dichotomy, I would not be choosing either of those machines. I would buy a workstation-class device at a minimum.
>I'm curious what makes you think the MBA is a more "full experience?"
The MBA is permanently affixed to its keyboard: so it can't easily be used for consumption (in bed, on the couch, etc.)
News to me, as it never prevented me from doing exactly that. Like hundreds of millions who don't own a tablet (and I do own some).
I was able to get up to 35-37 Gbps between my host-guest with a virtio NIC with the outdated iperf3.exe, which I did indeed acquire from the site mentioned in the article. That seems like plenty of perf, to me, considering the fattest link I could possibly have in my house would be ~35Gbps if I aggregated all the ports on my switch. (... and filled my Threadripper system with nothing but NICs, I guess?)
I actually get ~7 Gbps, not 10Gbps, out to my real network. I haven't dug into what the issue is but when hitting my real network the guest clearly becomes bottlenecked by CPU, so I doubt iperf3 is to blame. (The host does not have this problem despite being on the same bridge, so I'm guessing there is some host-guest optimization I'm hitting in the virtio driver in the former case.)
Now that's a low-latency, high-bandwidth link. If you're testing "high latency, high-bandwidth" as purported in the article, and that link is apparently ~40Gbps or fatter, you're probably running on a "real server" in a "real datacenter" somewhere. I can tell you I wouldn't be burning a Windows Server license just to verify my L2/L3 connectivity is configured correctly.
I am sure MS would love if I bought two licenses of their proprietary operating system just to use this proprietary network testing client, but my pockets are not infinitely deep. (As I already spent all that money on the Cisco-branded optics. /s)
Windows Server is barely used anywhere anymore outside of Azure and niche IT operations that demand it. CentOS Linux, Amazon Linux, and Debian Linux run on 100's millions to a billion boxes.
Wonder if there's been a quite hardware-rev and they can't/don't want to update the firmware on the old units. I ran into that once on Spectrum - I bought the "same" modem to replace one, and suddenly my IPv6 config was borked.
Turns out Spectrum (in my region) actually pushes in their config file to disable IPv6, even though their dual-stack network works great, and has been working for at least 8-years now. Some modems apparently "override" that directive (e.g. ignore it and try to configure the IPv6 stack anyways) and you get fully functional IPv6 service. Other modems play goody-two-shoes and you're stuck with only IPv4. The new modem I bought was sold/marketed as the same model but was internally a totally different radio chipset. It was pulling a different firmware rev which had evidently been patched to actually obey the IP provisioning mode.
Spectrum support told me, basically, that if I have working IPv4 connectivity then my service is considered functional and there is nothing they can do. I gave up playing the support game and ended up exchanging until I landed on a Motorola modem that gleefully ignores that config parameter.
I wish I knew how to actually state my case to someone at Spectrum with the authority to actually fix their busted provisioning profiles, because it's kind of crazy to me that they've basically bifurcated IPv6 in this market based on whether or not your modem feels like reading the whole config file ;-P. (What's even funnier is the modems they install must be spec non-compliant, because IPv6 at the office works fine and that's their leased equipment.)
>I disagree. You can mess with odometer as much as you like. Trying to sell it off with a different amount of miles than have actually been put on it is called fraud.
For a long time this was just a fact of buying any car that lived long enough. I have bought several cars where the transaction went something like: "so the odometer has rolled over twice; so there's actually 376,000 miles on the frame... but only 118,000 of those are on this motor and I swapped the transmission with a reman 76,000 miles ago."
Of course we've added a few significant figures to odometers since then, and in the era of digital odometers I imagine "rolling over" behaves very differently. (Will the chassis survive 4 billion miles? Seems unlikely. Do the display and storage have different bit resolutions? Is it a saturating counter internally? Externally?)
>Pretty much every single company I've worked for with AD has broken this rule.
It's a lot better now. Ever since companies started moving from on-prem Exchange to O365 in droves I've noticed that most orgs I work with (painfully) updated their domain so their user principals align w/ their O365 mailbox.
There's only one customer I have that still uses a ".local" domain for AD, and they got bought out last year. (By an org that uses a real FQDN.)
The fact that you just summarized about an hour worth of argumentation from my last annual planning meeting with that one sentence has just destroyed me. I kneel.
At this precise moment in time, if anybody seriously thought the above was the way the process works or should work, they should be advocating for firing all the juniors and replacing them with LLMs.