Have you ever been to PowerShell Summit? It’s the only nerd conference I’ve ever attended where only about half the attendees actually realized they are nerds at a nerd conference. I love the vibe. It’s got style and pizzazz.
That said, the added entry for PowerShell would still be: “You are a nerd.”
"When we decided to give the test to the development team (about 15 developers) — most of them got scores that were lower than our threshold (45%), despite them all being rock-solid developers. Also, there were some candidates who managed to get 95% and above — but would then just be absolutely awful during the interview — we would later discover that they were paying someone to complete the technical test on their behalf.
There is no substitute for taking the time to sit down and talk to someone."
That’s pretty good advice. Interesting read.
there will be a drought of genuinely good talent in the industry.
You’re exactly right, and there’s actually already such a drought. We had this same conversation 15 years ago and it doesn’t feel like we’ve made much progress.
has to change imo, the path should become clearer than telling everyone to get 5 years of experience then come back when they’re ready.
Absolutely, it must change. We need to find ways to do better.
I just can’t care anymore. Airplane flights are a lot of effort, and I invariably pick up some kind of conference flu.
For context, I was big into them when I was earlier in my career. But today, the tradeoffs aren’t worth it. I’m still a frequent presenter at my favorite conferences, but only for the online portion.
Also, I’m already available for hallway conversation spaces like this one, anyway.
Even early in my career, IRC chat (an ancient form of Discord) was at least as useful to me as in-person hallway conversations.
So now I enjoy an online conference with some time set aside for meet and greet activities.
I honestly fail to see the difference between “don’t deploy on Friday if this can wait until Monday” and “don’t deploy on the evening if it can wait until the next morning”.
Both are top tier practices.
If your team is used to ship frequently and incrementally, it won’t matter when you ship and your risk will always be small."
Yep. That’s all great advice.
But I’m just a veteran saying that all the preparation in the world doesn’t compare with simply not inviting trouble right before the evening or the weekend.
Organizations that feel that they desperately need to take that risk, are doing it because they disrespect their team’s time.
It can be the smallest risk in the world, but it’s still a risk, and it’s a completely unnecessary one (outside of an active in progress disaster recovery).
Again: if the changes are small enough and you have automated checks in place, they should not require manual intervention.
You’ve used the magic word “should”. “Should is famous last words.” The trick to keeping developer talent is not to risk the developer’s weekend plans on “should”.
And yes, maybe I’m only risking our cloud ops person’s weekend plans. Same principle applies.
Every change that isn’t already an active disaster recovery can wait for Monday.
Good question.
Since we’re doing a deep dive, I’ll share some additonal context. I’m the manager of the developers. On my team, that means the call comes to me first.
I have had Thursday deploys that resulted in bugs discovered on Saturday. Here’s how the conversation on Saturday went:
“Thanks for letting me know. So we didn’t notice this on Friday?”
“No, it’s subtle.” Or “We noticed, but didn’t get around to letting you know until now.”
“Okay. I’ll let the team know to plan to rollback at 0900 on Monday, then we will start fixing any damage that happened on Friday, and the weekend.”
If something goes wrong, devs have to give up their weekend to fix the issues, leading to burnout and dissatisfaction.
Correct in spirit, but the words “burnout” and “dissatisfaction” are weasle words that spinless middle managers use.
The correct terms are “abruptly quiting without notice leaving the company fucked and our stock worthless”.
A minor point, but worth clarifying.
I’d think most PC games and other desktop GUI software runs on windows and looks like it runs on windows.
Right.
Most PC games currently run on Unity, which doesn’t care whether it’s running on Linux or Windows. I’m not aware of whether PlayStation runs a Linux kernel, but I would bet it does, since they wouldn’t get a good price from MS on OS bulk licenses. When the game is installed on a Windows PC, it’s obviously running on Windows. When a game is on any of the various (non-Microsoft) game consoles, odds are it’s actually running under a Linux Kernel.
And I’d imagine that a web browser on windows isn’t secretly a Linux environment.
True. I would argue that’s running half on Windows, of course. The other half, the server, had about a 99.7% chance of being Linux, today. Mostly Amazon Linux running in AWS. Even websites recently developed entirely on Microsoft libraries, and served in Microsoft’s cloud service Azure, are largely running under a Linux kernel.
What are some places that don’t look like Linux but actually are?
Amazon Lambda, Azure Automation, GitHub Actions, Amazon CodeDeploy, Azure DevOps, anything Android (not GNU, but runs a Linux kernel), SteamDeck, almost every miniature gamesystem (Genesis Mini, PlayStation Classic, etc), and a variety of the smallest chips that usually run raw C code are gradually getting powerful enough to have a Linxu kernel (I E. Raspberry Pi Zero replacing Arduino in various recipes).
With the SteamDeck’s recent rise here’s also been a shift towards video games being written first for Linux, then cross-compiled for Windows and much later ported to Nintendo Switch.
I don’t know if we have confirmation on whether PlayStation and XBox or Switch run Linux under the hood yet.
Switch almost certainly doesn’t (or at least not a recognizable version) or we wouldn’t see the release delays we currently see.
It seems like the vast majority of portable hardware above very low power stuff runs a Linux kernel now, even when the rest of the OS is unrecognizable. Mostly via Android, but in exceptional cases with a custom OS.
“Doing Work Outside of Work is Fucking Stupid”
Lol. Welcome to the “over it, it’s a job now” club.
I still code for fun, myself, but certainly not to someone else’s spec. Even if it’s holiday themed.
I saved the most time, because I not only don’t do advent of X challenges, but I also don’t blog about not doing them.
Until I wrote this reply. I really fucked up my streak just now.
“I am worried that AGI (artificial general intelligence) will be hostile to humans” at less than 20%.
I’m curious how many would have agreed with “I’m aware that my current, non-AI code is already measurably hostile to humans.”
AI is going to harm a lot more people before we figure out which ends of that blade is sharp.
I use go
pretty regularly, because I like it, but it’s not what I get paid to use.
I’m only about 70% sure that Elixir is a programming language and not a typo or something you made up. (I’m kidding… But only just barely kidding…)
If you’re concerned with employability, neither language would be in my top 3. (Python, JavaScript, SQL)
Source: I pick up new languages for the lols, and have coded professionally, for money, in about a dozen languages.
More relevant: I hire developers. Some of my team want to write new code in go
, but I’ve instructed them not to, for now. They’ve never asked about Elixir.
Today, no matter where and how you write your code, there’s almost 100% chance that the place it will run is on Linux. Even the places it can run that don’t look like Linux, are - in most cases - Linux.
Source: I’m a connoisseur of places code can run that aren’t Linux, and they are becoming fewer and farther between every day.
As I said to xmonk: “u make me not wanna be a software engineer with this talk…”.
Yeah, and it gets worse before it gets better… https://youtu.be/BKorP55Aqvg
I love this quote as a summary “Hightower wrote that he has empathy for Sizovs but takes “issue” with DevTernity “continuing to advertise speakers who have notified you they will no longer be speaking at the conference” and failing to book a more inclusive lineup when “the pool of qualified speakers is much larger than it has ever been.””
This is news to me. I’ve been cloning and searching for years because web search was useless. And by useless I mean - I know the word I’m looking for appears in exactly four places, formatted and capitalized exactly this way - and GitHub web search still doesn’t find it.
It wouldn’t surprise me if it’s gotten massively better - but only in the way that choosing to ride a bicycle to work is a massive improvement over sitting on a random rock.
If anything 20% is on the high side, for experts working in difficult (profitable) domains.
When we pointy-haired-bosses are doing our job right, producing new code is a much lower priority in the software engineer’s day, behind understanding and maintaining the important code that is critical to the objectives of the organization.
Great points. I’m a huge advocate for adding comments liberally, and then treating them as a code smell after.
During my team’s code reviews, anything that gets a comment invariably raises a “could we improve this so the comment isn’t need?” conversation.
Our solution is often an added test, because the comment was there to warn future developers not to make the same mistake we did.
perhaps 1 in 100 software developers that might apply for a job are really up to snuff.
Lol. This is not the calibre of the developer pool, it’s that the company sucks and the great developers can tell that by the time they finish reading the job post.
Edit: Let’s all say it together: “Great developers land at great jobs with great bosses and great pay and great work/life balance.” Then they spend decades telling anyone asking them to change jobs to go fuck themselves.
Source: I hear a polite version “go fuck yourself” all the time. Usually over a shared lunch that I paid for. As it should be. The talent is out there, and mostly happy where they are. They just don’t want to talk to a shitty employer. Heck, they usually don’t even want to talk to my excellent employer.
You just defined it perfectly.
“Elegance” early on ends up being a mistake. The chosen abstractions look really nice, but turn out to be the wrong ones for the unique problem domain.
The first six times I encountered it, I thought the team got unlucky. Then I recognized that it’s a pattern/mistake that pretty much every new formed development team falls into.
Even when I’m on the team, I end up being “old man yells at cloud”, and they add early abstractions anyway. (Which I don’t mind… As they point out, there’s no harm trying to get it right on day one. The harm comes from believing we got it right.)
The benefit I can bring is introducing patterns that support refactoring: regression test automation, strong ruthlessly fast test pipelines, and chat-ops.
Considering the almost complete lack of standards, certification, licensing in most areas of programming, I don’t think there’s a ton of difference.
I’ve held both titles without rhyme or reason between the two. Even in areas requiring high compliance - HIPAA, PCI/DSS, NIST Standards, FERPA, etc - training achieved doesn’t tend to be reflected in a programmer’s title. (Even while the same level of training turns into acronym soup among their IT peers.)
One way I try to live up to the title “Engineer” - even when I don’t wear it - is by holding myself to the Engineering Code of Ethics.
And a Python developer is born!
Source: I moved on from an abusive relationship with JavaScript to a healthy not-at-all-controlling equal partner relationship with Python. And four spaces makes perfect sense, once I really considered Python’s point of view…