315

Confessions of a Software Developer: No More Self-Censorship

Well written article full of humility and vulnerability? I love it. My reaction: you don't need to feel ashamed of not knowing something, there is far too much to know and I'm still learning new techniques and concepts 37 years in, so I would never judge you for it.

I would also not judge you for having your own preferences and opinions. I too prefer working in an office to remote work, but when I say this out loud other developers take it as advocating RTO or saying remote work is worse when it just doesn't suit my personality. I get that it's a touchy subject but there is no need to get up in my face about it.

You mention bullying and brigading and that seems to be an unfortunate reality of this industry. I suspect there is a lot of insecurity and imposter syndrome that causes people to write hyper-confident blog posts about why they are better without AI and how their tests have 100% coverage and how (unfashionable language which half the world uses) is garbage etc. Maybe if we all follow your example and be candid everyone could chill out a bit.

I'll go next: despite trying several times, I have never successfully written anything more complicated than Fibonnacci in Lisp or Haskell. I know it's clean and pure and all that, but my brain just won't work that way.

13 hours agotomyedwab

I don't take issue with what you've said about remote work despite very much having the opposite opinion to you because you phrased it as your own personal opinion.

This blog post does pretty much the opposite though; its analysis of remote work is pretty much entirely just generalizations of their own experience, but phrased as if they're objective truth. It was an especially weird editorial choice to make use of the "general" second person given how much outside of that one paragraph was written in the first person. In an article that's ostensibly trying to be humble and vulnerable like you mention, it just comes across as patronizing. I can't say I'm surprised that the author might have been judged for expressing this opinion because it's not about their personal preference, but a judgement of its own.

I think a lot of people genuinely struggle with the idea that sometimes how something is said can matter just as much as what's being said. Being correct and being respectful are orthogonal concepts even when talking about objective truth rather than opinions; if someone asks what 7 times 9 is, there's a difference between telling them "63" and "Well, obviously it's fucking 63, duh!". For a subjective topic like remote work that some people's lives have been quite significantly affected by, it's even more important to put some effort into understanding how one's words will come across, because if the phrasing is poor, people aren't necessarily going to feel the need to go out of their way to try to give it the benefit of the doubt. I can't know what exactly the author was thinking when writing that paragraph, but I also can't distinguish between whether they have the same viewpoint as you but communicated it poorly or if they genuinely think that there's some sort of objective truth than I'm worse at my job working remotely than I would be working in person. Given the amount of care I've put into addressing many of the exact issues they've raised due to needing to work remotely because of a medical condition of an immediate family member, it was quite hard for me not to have an immediate strong angry reaction to how flippant they seem to be with what's at best their phrasing of their opinions. My point is that it's a lot more work to actually care about how one's point comes across than it is to claim that people are overreacting after the fact, and it's worth considering how much of the reaction the author mentions having gotten in the past is reflective of this.

9 hours agosaghm

It feels like you're blaming the author for the lazy thinking of someone who might read his opinion and take it as objective fact.

The 7 times 9 analogy doesn't track it all. 7x9 = 63 is an objective fact by definition. His thoughts on remote work are an opinion by definition. If other people decide that what he says is dogmatic, blame it on their own lack of critical thinking skills.

The meta-point of the article is that we should express are thoughts without qualifiers and embellishments to manipulate other people's perceptions of us.

6 hours agoryanackley

His opinion on remote work is an opinion. The reasons he gives for having that opinion are not presented as opinion, but as fact.

4 hours agocgriswald

Is your reasoning for your opinion that he didn’t preface his opinion as “in my opinion”?

His words read the same as any editorial I’ve seen.

3 hours agonipponese

> Remote work eliminates a lot of problems with office work: commutes, inefficient use of real estate, and land value distortion. But software development is better when you breathe the same air as the folks you work with.

It's pretty hard to know where the opinion is.

The whole paragraph presents as though author is relating known symptoms of a disease. We're never really sure which they themself actually experienced. They look more like arguments in support of a cause.

Author is totally entitled to open that door, but then it also becomes fair game to attack the perspective.

22 minutes agomekoka

I am pointing out the fact that he is using factual statements in support of his opinion. "Remote work sucks" is an opinion. "Pair programming is less fruitful" is a statement of fact (regardless of the veracity of the claim).

"It is my opinion 7 x 9 = 63," wouldn't be an opinion in the sense that opinion was being used in the thread. Yes, we can question the veracity of a statement of fact, but that isn't the same sort of opinion as whether something is subjectively good or bad.

an hour agocgriswald

> The meta-point of the article is that we should express are thoughts without qualifiers and embellishments to manipulate other people's perceptions of us.

In my experience this is a common failure point among tech/analytical folks (myself included) which leads to their words and actions being genrally misconstrued and effectively misunderstood by the larger segement of the population which is rarely able or disposed to handling communications without embellishments.

6 hours agoj-bos

“Technical” people are also people, and that doesn’t exclude them from communicating like reasonable adults.

Blaming the rest of the world for an inability to communicate effectively is not orienting the blame correctly.

4 hours agoAr-Curunir

You're wrong (IMO) The onus should not be on the communicator to qualify every statement of opinion. This is tedious and unreasonable.

Not prefacing what clearly is an opinion with "IMO" is not a jedi mind trick that makes others believe it as fact.

You're also demonstrating some hypocrisy by presenting your own point of view in the same manner. No qualifiers. You're simply stating something as truth

3 hours agoryanackley

Giving a blank check to anything someone says because they disclaimed that they'll be uttering opinions? That sounds kinda naive. Have you never heard someone include facts to support their opinions? Would you disagree that it's fair game to attack opinions presented as facts? The "problematic" paragraph jumps out because the assertive generalizations moot the earlier agreement that the author is sharing their experience. The proclamations are not subjective they're factual. Perhaps re-read that passage yourself while donning your own critical thinking hat.

an hour agomekoka

> pretty much entirely just generalizations of their own experience, but phrased as if they're objective truth

I mean you're describing 90% of blog and forum posts on the Internet here.

This (IMO - so it's not ironic) is the biggest leap most people need to make to become more self-aware and to better parse the world around them: recognizing there is rarely an objective truth in most matters, and the idea that "my truth is not your truth, both can be different yet equally valid" (again in most cases, not all cases).

4 hours agosbarre

> I have never successfully written anything more complicated than Fibonnacci in Lisp

I hadn't until a joined a lisp based project. Learned a ton. My brain didn't work that way at first either, but working with it every day I eventually got it.

10 hours agosocalgal2

Alternatively, learn little by little, eventually your brain will grok it. I think it took me more or less two years before I could actually write Lisp code I felt confident about, from the first moment I started reading books at night about it.

5 hours agoembedding-shape

> I would also not judge you for having your own preferences and opinions. I too prefer working in an office to remote work, but when I say this out loud other developers take it as advocating RTO or saying remote work is worse when it just doesn't suit my personality. I get that it's a touchy subject but there is no need to get up in my face about it.

You ever wonder why? Serfes finally got freedom after corona, but apparently some actually prefer to be in a serfdom instead of having freedom to choose for yourself. You're being a useful idiot for managers, that's why you get backlash.

an hour agowiseowise

That is a very strange (and very emotional) take. I find it easier to focus with some other people around me, so long as they're being quiet. An office (or a library) is easier to work in than my house. I also really like the idea of separation between my home and my workplace. If I was rich and had room in my house for a separate office I could close the door on when the workday was over, perhaps I'd feel differently.

So I'd prefer to work in an office, so long as it was nearby and the commute was short and my officemates were fairly quiet. This does not mean that I'm "advocating for serfdom". Working for an employer is no more (and no less) serfdom in an office than it is at home.

42 minutes agoTRiG_Ireland
[deleted]
32 minutes ago

Unlike the author, Youtube and such are full of coding gurus who know everything and whatever you do is never the right way.

8 hours agobegueradj

Every time that I read this about remote work, all I can think is how much I miss IRC and the culture that came from it.

We were doing remote work effectively decades ago. Don't have hallway conversations to fix bugs? Easy, just post your problems on the team chat and someone (often one of several people) would love to drop by to help.

I'm not sure exactly all of the forces that have led to this changing so much, but I'm certain that merely blaming "remote work" isn't it.

Somehow we were better at using remote tools while literally in the same office than some teams are at using them now while fully remote.

18 hours agojsight

I have encountered people who are scared to post in large public channels. Part of growing up in chatrooms was an implicit bravery of saying something out loud in a room full of thousands of people. There seems to have been a shift, somewhat, in the comfort level of different generations about saying things "out loud" in large public rooms.

Chatrooms have evolved in a really interesting way. I think the first generation to have them didn't fully understand how "public" they were. Maybe there are more people in the more recent generations that have a more visceral understanding of online "publicness" as they have grown up with (and perhaps have been burned by) those concepts from the very beginning. Maybe they have a better understanding of the permanence of online utterances and therefore have a more conservative approach to interacting on what feels like the permanent public ledger.

Maybe it's because the concept of pseudonyms has devolved since the early days. Corporate social media has an interest in doxing its users to advertise to and control them but pre-corporate social media was filled with anonymous usernames. Posting in a large group under your permanent forever name is much scarier than posting under an anonymous, temporary identity. One of the things I advocate people do is post online anonymously, instead of with their real name. It alleviates a lot of the fear of speaking your truth, which we need more of!

There is something there. The ability to try on identities in a safe environment before you discover which one you really identify with. It's much harder to do this with your real name. Your past comes with a lot of baggage and people who know you don't want you to change because it makes them feel uncomfortable.

15 hours agonoman-land

There's an issue of scale to it all, and interconnectivity. Back in '98 you could reasonably post something in one forum/BBS/IRC channel and it would only be viewed there. There was no way to look up who was on what website or room and where they regularly hung out. And even if there was, it's unlikely that more than ten people would ever see what you posted. There weren't enough people to care, and there wasn't any extrinsic incentive to look up what people did outside of your tiny island. Eventually the island would sink, and all traces of it except maybe an archived snapshot of the home page would remain.

Smartphones changed that with Youtube and Facebook. Youtube incentivized you to use a Google account, and Facebook wouldn't let you use it anonymously without an account. Because you could use one account to log into multiple places people could track you across websites. People could make archives, screenshots, and transcriptions of anything you had done with those linked accounts. With this change there was no safe corner to hide if you said something stupid. And because so many people were foolish enough to tie their real identities to these online accounts with their real names or pictures of themselves, it gave a way for particularly unruly people to track these individuals even offline. There was now a real danger if you said something stupid, because instead of just getting your post deleted or starting a derailment in the thread people could harass you at your home, get you fired, and even send the police to terrorize you in the middle of the night via SWAT raids. It's no longer just one person calling you out. It's now hundreds, maybe even thousands, all armed with information.

And this is why I say it's stupid to require phone numbers and real names to sign up for insignificant things like being able to view someone bake a duck shaped cake live over the internet.

11 hours agoTanoc

I use pseudonyms and post weird shit online, but I still feel very reluctant to post anything on large public channels inside a company. Everything is tied to your real name and all of us are hyper aware now that every single fucking thing on the internet is monitored, and will be used against you if necessary. I am 99% confident a tool already exists that a manager can use to get all messages from employee X over the last N months and summarize the content and surface any "red flags", which in a corporate setting would be incredibly broad.

12 hours agozaptheimpaler

We have slack integrated with glean and anyone in the company can do this, not just managers.

It also has access to our internal wikis, GitHub, and other internal tools.

11 hours agojrnng

The "water-cooler" chats are in the same place/app as the more important conversations. I don't like getting pinged constantly for people just chatting, but I wouldn't want to mute it in case someone actually has something urgent to say. It's weird to have that all in one place with one set of notification settings on all of it.

an hour agosmallerize

notification sounds destroy my ability to concentrate so per-channel notification settings were a game changer.

I typically have busy but important channels muted with a carve out for @mentions, watercooler channels are just muted but I check on them a few times a day.

an hour agoinhumantsar

> There seems to have been a shift, somewhat, in the comfort level of different generations about saying things "out loud" in large public rooms.

I think this is merely the shift from doing this as a hobby, to doing this for work. Random coding problems mixed with banter I posted or answered on IRC back in the day? Purely hobby stuff, things I done after school instead of doing my homework. No stakes beyond the community itself, I could disengage at any moment, nobody would care - there was no commitment of any kind involved.

Today? Even if we switched back from Slack/Teams/whatnot to IRC, the fact remains, the other people are my co-workers, and we're talking about work, and it's all made of commitments and I can't disengage, or else I starve.

That changes the dynamic quite a bit.

10 hours agoTeMPOraL

The problem in my opinion is that folks afraid of posting treat chat channels like email and official record instead of a conversation. I like to post ideas, brainstorm, engage if I have a minute to respond to someone with a thought - kinda like being in an office - whereas many others seem to use it to blast out information after a lot of polish and they form a culture of announcements and no engagement, and get stressed whenever someone asks a question or actually replies.

Use tools for what they are good for and create a culture that makes each tool work best for your organization.

12 hours agosailfast

> The problem in my opinion is that folks afraid of posting treat chat channels like email and official record instead of a conversation.

They would be right: HR will get access to everything you ever posted in a company chat if they have a reason to check. Some people don’t care, some… do.

9 hours agobaq

> they form a culture of announcements and no engagement, and get stressed whenever someone asks a question or actually replies.

I agree, but this may mostly be pointing out they are not very good/qualified at whatever they are doing tbh.

3 hours agogedy

I got a minor reprimand in a performed review for having a slightly heated conversation in a public channel. In the past that company had been very open about communicating about negative stuff (our CEO emailed the entire company when he visited one of the hardware labs that was a mess), but the upper management started tamping down on anything negative, and one of the things that suffered was any sort of honest communication.

Kind of a ship of theseus situation culture wise - when the original leaders are all gone, did they pick good successors to fill their spots? Very often not.

12 hours agoQuercusMax

I got a major reprimand because I answered too many questions posted in the public channel. All in my area of expertise, mostly after hours.

At first they said it was "great". But it soon turned sour and resulted in "it seems like you spend too much time answering questions", and I should "focus" and "free up" that time to work on my assigned tasks.

Well, I don't answer anything anymore. In fact nobody does. It used to be that you got precise technical answers from someone directly working on the tool or problem you asked about. The previous CEO would sometime even answer themself. Not anymore.

Now people ask, but nobody answers. The rest has devolved into LinkedIn style self-promotions and announcements.

7 hours agothrowaway277432

This sometimes happens also when the original leaders are still present but they dont understand the effect the metrics are having on the entire company when it grows big.

Have a senior leadership team and want them to not tell you bad news when you are the CEO/Leader? Then link their salary/performance to metrics like number of production incidents their team has. Suddenly the number of incidents that you know of decreases.

If that does not work to isolate you as the leader from thr reality of your company then link their salaries to a metric like number of projects finished before or at deadline and watch how tech debt increases multiple folds and how everything is suddenly estimates are increasing all over the place.

Want people not to ask meaningful hard questions in All Hands? Just make sure anyone that seems critical be labeled as not culture fit and done. All questions are positive and nice. Make sure to always ask for name and disable any anonymous questions asked.

Not trying to say metrics are bad or they should not be used. But they are not pure functions :) they do have side effects and sometimes very large ones.

12 hours agogls2ro

> I have encountered people who are scared to post in large public channels.

People weren’t assholes and/or snowflakes in those days. Implicit in being on the net was that you were fairly well behaved.

10 hours agoAeolun

How far back are we talking? 90s? 80s? 70s?

For the 70s, I would agree with you. But the moment home users, and particularly kids, gained access to the internet, you started to see a subculture of trolling.

Source: I was one of those 80s kids. It’s not something I’m proud of, but writing bots to troll message boards and scrapers for porn and warez played just as significant role in my journey into my IT profession as writing games on 8bit micros.

9 hours agohnlmorg

Depends on a size of community and where.

Early 2000s, public channel on a LAN with ~3k people in a post soviet country – say something stupid to a wrong person and you'll find yourself with a broken nose, because the guy/gal is a friend of the admin.

an hour agowiseowise

Obviously macro communities exist that differ in etiquette.

I was just responding to the generalisation made by the GP.

6 minutes agohnlmorg

Well, yes. We definitely fucked with the systems, and to a lesser extent the people. But 80s internet didn’t have shit like swatting. Or what Mr. Beast makes people go through for entertainment.

And everyone was in on it. We were all trolling, and being trolled, and perfectly well aware of what trolling was. But now people deliberately target and exploit the vulnerable on the internet.

I feel like the only thing you needed before was a fairly thick skin, but now you need a lawyer and a smorgasboard of security.

6 hours agoAeolun

Mr Beast isn’t the internet. He’s a TV show host. And there’s been exploitative TV shows for decades. This isn’t a format Mr Beast invented.

As for security, that was always an issue. Malware, denial of services attacks, etc aren’t a recent phenomena. And hacking was so prevalent that even Hollywood caught wind, hence the slew of hacker movies in the 80s and 90s (Wargames, TRON, Hackers, Anti Trust, Swordfish, Lawnmower Man, and so on and so forth).

The problem isn’t that internet etiquette has gotten worse. The problem is that there is so much more online these days that the attack surface has grown by several orders magnitude. Like how there’s more road accidents now than there was in the 70s despite driving tests progressively getting tougher (in most countries). People aren’t worse drivers, there’s just more roads and busier with more vehicles.

10 minutes agohnlmorg

Oh lord no. I’m not sure that’s true at all! I mean in the early cool era of the internet there was a concept of a “netizen” and a window of brief joy, but the internet has always had domineering trolls, bullies, spaces where clumsy newbies were brutally flamed etc.

The main difference is that more spaces were quasi-professional and non-pseudonymous, in that one largely got one’s internet access and identity (IP address, email address, invitation) from the institution of higher learning one attended or worked for. So there were direct, two or three degrees separation consequences (my boss knows someone at your institution) in those spaces. I suppose this is what you are referring to.

(In my early era of commercial internet work I can remember a colleague shutting down an accidentally abusive scraping bot by working out who was likely to be the boss of the person running it and phoning them up)

But away from those spaces were many places that were just as bad as they are now.

The internet has always (in my time of using it, which is all of my adult life as someone who is over half a century old) demonstrated that a good culture is a question of starting conditions and quick maintenance actions.

A non-trivial amount of the worst behaviour I have personally witnessed on the internet happened before the year 2000.

10 hours agoexasperaited

One difference, IMO, is that in technical forums / chat rooms, flaming was generally (modulo Torvalds, but honestly I give him a pass - the guy has to keep the level of quality excruciatingly high at all times, and that must be tiring) more reserved, and was along the lines of “RTFM.”

That’s not to say there’s more vitriol today; it’s swung the opposite direction, where newbies expect to have answers handed to them, or worse, they’ll post AI slop and then be genuinely surprised when someone asks them to explain it, or to show their work.

I don’t think that people should be belittled, but I also think it’s unrealistic to expect that experienced people should patiently teach every newcomer the same things over and over, without them having put in the minimum effort of reading docs.

I’m reminded of something I saw once on Twitter from a hiring manager who said that the best signal they had was whether a candidate had a homelab. This was met with criticism from many, who bizarrely accused him of being classist, since “not everyone has time to do that for fun.”

3 hours agosgarland

There's always been a silent majority in every platform, IRC/HN/Reddit/Twitter/Facebook/Insta/TikTok. Doesn't matter what platform it is, most people are lurkers, silent consumers, they don't post.

There's nothing new here, there's no problem to solve. Doesn't matter if you're anonymous or publicly identifiable. 90% of people don't contribute, they just consume. 9% contribute occasionally. And 1% are regular contributors.

The 1% or 90-9-1 rule is pretty well known.

https://en.wikipedia.org/wiki/1%25_rule

6 hours agomattmanser

> I'm not sure exactly all of the forces that have led to this changing so much

I believe the change is largely demographic, and I'm NOT referring to gender/nationality/age/race. Rather to the personality of people working in tech today. Long ago tech people were almost exclusively sourced from the weird kids who couldn't/didn't read the room and other things of that nature, they just said stuff, asked stupid questions because they wanted to know. Most people don't do that, so if tech is now made of more "commonly adjusted" people, then there will be less dexterity in navigating a less social and more (actual) productivity focused medium (remote/async comms).

6 hours agoj-bos

> Somehow we were better at using remote tools while literally in the same office than some teams are at using them now while fully remote.

I couldn't agree more. I pushed to get the place I worked for to use Slack when it first launched, moving us off AIM (ha!). Our use of Slack when we shared an office in the twenty-teens was so much better than the use I've seen of Slack/competitors on fully-remote teams.

I wonder if it's because the failure mode was, as you said, to "drop by." Now the failure mode is... just failure.

18 hours agoKerrick

I can't speak for everyone, but I'd say that I've noticed that younger devs simply do not chat.

My team rooms are pretty dead. I'll send stuff there but by and large the team simply doesn't use chat functions.

17 hours agocogman10

Perhaps the youngins are more cognisant that it's all monitored. Knowing your employer can read everything and it _will_ be used against you has a chilling effect and I'm pretty sure that's part of it.

17 hours agodenkmoon

We had such incredibly heinous group chats on our Slack that if an admin perused through the logs we'd be instantly fired and the company shut down right then and there lol. The paranoia drove everyone nuts which made it more fun.

16 hours agoMarcelOlsz

More realistically only the ones that admin doesn't like, HR doesn't like, or the CEO doesn't like would be fired while the rest would be retained.

Arbitrary discretion in the exercise of power is the bedrock of our society.

7 hours agoimmibis

Every healthy person I know does that. It’s as if human communication required to have secrets before people would relax about opening up.

10 hours agoeastbound

Partially thats about teams and how most corps use it, which is built primarily around information siloing and management visibility.

17 hours agotaurath

They, for every team I’ve ever managed, have an off company owned systems chat on shit like slack or discord where they are roasting the fuck out of you.

I’ve managed to be invited or told of them after ingratiating myself to the teams, or more often, after quitting and getting invited as one of the “good ones”

They all know that every word on company shit is being monitored

16 hours agolovich

Sure, but this ends up poisoning any sort of culture and creating all sorts of in-group nonsense which is almost impossible to undo.

It’d be like using Blind as your company chat - nobody goes on there to say how great their experience has been, and the tone infects everything else.

But maybe I’m just not very fun at parties…

This should be avoided at all costs by creating a culture that is receptive to people’s concerns and doesn’t do stupid things without explanation - but I get how difficult that is in reality and most orgs end up messing this up.

12 hours agosailfast

Maybe I'm a bit unfair to you but to me your comment basically reads as wishing employees would be good little cogs in your machinery rather than people. Like making friends is natural human behavior. Forming friend groups is natural human behavior. It's not nice to disrupt this except that of course everyone has to be able to work together when needed.

12 hours agoim3w1l

It doesn't help that reporting people to HR is a way to career advancement.

17 hours agoLtWorf

I’ve never worked _anywhere_ where reporting someone to HR was anything but negative impacting for your prospects at the company. And I’ve worked at lots of places in many dimensions (company size, industry, age, etc)

17 hours agokasey_junk

This usually applies to Big Bank.

16 hours agoMarcelOlsz

I’ve worked at a big bank and other large financial service organizations.

7 hours agokasey_junk

The karmic cost / benefit is all worked out then.

16 hours agoderrida

I worked at a big bank and it definitely did not.

16 hours agoXorNot

Is that a dynamic they have? I haven’t worked at Big Bank but I’ve worked in finance a few times and at those places and other industries I’ve worked in reporting anything to HR wouldn’t necessarily get direct consequences but you would permanently be on their radar and have to work to rule after that

16 hours agolovich

I think it’s more a shift in the culture amongst most people now than an argument of remote/in office.

Notification fatigue is a thing and people are just used to ignoring notifications and messages nowadays which ends up with slow responses and poor communication all around.

15 hours agomakingstuffs

It's much easier to get a feel for how urgent things may be when you can yell down the hall.

I'm currently in feeling things out phase with my current team, and people seem really laid back about responding to messages - but it also seems like we're getting stuff done. Hard to figure.

11 hours agoQuercusMax

Fixing bugs via teams chat is not what author means with "breathe the same air as the folks you work with". Better example would be picking up subtle social clues like Frank looks quiet today and has a frown on his face...let's take him aside for a coffee chat and figure out what's wrong

As much as I hate RTO, chat/video really does have lower social clue information density

5 hours agoHavoc

You're comparing a subset of passionate users that was supplementing in-person collaboration with the general population and no in-person. It's not going to be as good as the self selected users.

an hour agojayd16

> how much I miss IRC and the culture that came from it.

IRC selects for people who like chatting and communicating via text.

I think the mistake made with remote work was assuming that everyone could easily work that way.

The best experiences I had with remote work were pre-COVID, when the teams working remote were carefully selected for having good remote work abilities and anyone who couldn’t handle it was kicked back to the office (or out of the company)

Then something changed during COVID and remote work was treated as something everyone could do equally well. The remote teams I worked with were now a mix of people who could work well remotely and people who wanted to work remote but tried to force communication to happen like we were back in the office: Meetings for everything. Demands to “jump on a quick call” when a few Slack messages would have done the job. Then there were the people who read “Four Hour Work Week” and thought they were going to do their jobs from their iPhone while traveling the world or at the ski resort.

I don’t know. Having seen the before and after it doesn’t feel so surprising that remote work faltered when applied indiscriminately to everyone. The best remote teams I work with to this day are still the ones who know how to communicate in that old school IRC style where communication flowed easily and everyone was on the same page, not trying to play office games through Slack.

11 hours agoAurornis

Doesn't this basically just apply the same assumption in reverse, that most people can work in an office equally well? So much of the discourse on this topic (from either side) seems to just boil down to generalizing ones own work experience as the norm and making inferences based on that. Maybe the reason it's so contentious is that people's experiences with remote versus in person work are not going to be expansive enough to be able to draw any conclusions about whether one of them is "better" for arbitrary groups of people, and we should just recognize that outside of teams one has personal experience with, we're just as likely to be incorrect as we are correct about how they'd work best.

9 hours agosaghm

> Then something changed during COVID and remote work was treated as something everyone could do equally well.

I think the realization was more that some people are simply there, either at the office or at home. Of course the experiment worked fine. Those people were already not doing much. Not doing much in a different location makes no difference.

9 hours agoAeolun

Yeah. Random example: I have better "ambient awareness" remotely because with slack I am in every hallway simultaneously, and can skim the conversations and set up highlight words

17 hours agoatomicnumber3

I wonder how much of that comes down to culture. Since going remote I have come to wonder if a direct-message-first chat culture is harmful to collaboration.

17 hours agoKerrick

DM-first is an extremely frustrating culture. That kind of operation tells me that that folks are too risk averse and political to discuss things openly. Typically this is led by panicky managers that are worried about involving too many people or having to explain things to folks they don’t want to deal with, and it escalates from there and gums up ALL the things. It makes Slack basically useless.

The same people DMing however will also extol the virtues of posting in public and lament why there is not more conversation happening in the open.

12 hours agosailfast

IMHO most companies encourage public-first conversation, but still end up with DM-first as their employees don't have enough trust in how their messages will be received.

It requires to be comfortable exposing lack of knowledge or saying weird things to peers, and be confident it will be taken in good faith. As you point out, that requires a whole level of culture building.

17 hours agomakeitdouble

> Since going remote I have come to wonder if a direct-message-first chat culture is harmful to collaboration.

There's no question! It absolutely is.

10 hours agopxc
[deleted]
16 hours ago

It is. You need to be aware of it and have people that can set examples about chatting in public rooms or who can recognize when to stop a dm chat and move to be public

16 hours agotayo42

I hate direct messages. They were normally considered rude in IRC.

17 hours agoLtWorf

It's a strange pattern I observe often, whenever an idea gets promoted from organic-natural-human-ritual to official-new-visible-main-idea, it becomes bloated and off point.

17 hours agoagumonkey

Agile. Case in point.

16 hours agoflir

Did you read the article? :)

12 hours agosailfast

Uh.... Caught me red handed.

Ok, gonna go read it.

(Hmm. The author says "Follow Scrum, Lean / Kanban, or eXtreme Programming to the letter, and let your team focus on the product."

I disagree - quite vehmently. I guess that's obvious, given that I'm calling out the various capital-A agile methodoliges, and the parasitical industry around them, as harmful/bloated/mostly pointless. But how did you figure out I hadn't read the blog post from that? Now I have, I just think he's wrong).

16 minutes agoflir

I've worked with teams across UK, Belgium, Germany, Switzerland over the years. The best remote collaboration I've seen wasn't about the tools, it was about the culture. Some teams just default to writing things down and sharing context. Others expect you to already know. The tool doesn't fix that.

9 hours agovictorbuilds

Electronic chat is really not the same as face-to-face communication. Neither are video calls.

18 hours agolayer8

For me, electronic chat is better most of the time.

18 hours agosodapopcan

Everyone is different. I vastly prefer email over chat, but also wouldn't want to live without the occasional face-to-face.

18 hours agolayer8

"Everyone is different" is my point. Face to face once in a while is nice, though I don't care so much about having it very often with my colleagues in a professional setting.

18 hours agosodapopcan

Of course it's not the same, that's the point. I personally prefer the async, chat based mediums I've used since I was a child. Some of my coworkers have disabilities that make conversational typing difficult and prefer video calls as a result.

Consider the effort to accommodate those preferences though. Accommodating a video call preference is easy. Same for chat. Accommodating a preference for face-to-face requires spending an hour (2x average US commute) traveling to meet you. That's quite a significant ask of the other person.

18 hours agoAlotOfReading

Yes, it’s not the same at all.

In electronic chat I can ask someone to explain their question and wait for it in writing. In person, I often have to listen to them stumble over the concept because they didn’t think about what they wanted to ask before asking it.

In a video call I can clearly see the other person’s screen and zoom in on what I’m trying to look at. In person I have to lean over their desk and squint at the right angle.

16 hours agodevmor

I started doing remote back in 2002, working with companies in the UK and US, something that was largely unheard of in my country. While our mode of communication was web messengers (AOL, Yahoo, MSN etc and the aggregators), I used IRC a lot to get tech help, and participate in online dicussions.

11 hours agopythonbase

Yeah, I joined the Mozilla community in ~2003, and that was all IRC, and distributed all over the world, and it worked very, very well.

Note that these days, the Mozilla community has moved to Matrix, which also works very well for these things.

10 hours agoYoric

> Somehow we were better at using remote tools while literally in the same office than some teams are at using them now while fully remote.

This is sort of the point. Remote tools work great when you have spent a lot of time building relationships and rapport with the people involved. That's hard to do in professional settings, and extremely hard to do in remote professional settings.

Letting teams that know each other well work remotely works great. Building teams remotely is very hard.

I'm a diehard for remote work, but we have to be realistic abouts limitations.

18 hours agoseneca

IDK, some of the remote teams that I've worked on were only able to meet in person once per year, if that. They were very communicative on the tools that we had though.

17 hours agojsight

No one is saying it’s impossible to build fully remote teams from scratch, it’s just very hard and requires strong leadership. Most companies have crappy management so they can’t pull it off.

13 hours agoHDThoreaun

I don’t even think it’s about leadership. Isn’t it weird for somehow to care about people who they only know through the phone or zoom calls? Some people won’t find that weird but I think a significant number of people would, or just can’t do that at all.

2 hours agokelipso

Debian works like that but the startups can't manage… interesting.

17 hours agoLtWorf

Open-Source Project that doesn't have Project Managers and MBA telling you to work faster is a lot different then working at Startup that does.

15 hours agostackskipton

Right, because there's nothing special about remote vs in-office. It's just communication and collaboration.

Living beings do it all kinda ways. Bees waggle their butts, crickets rub their legs, geese honk, snakes hiss, some fish detect electrical signals. And to collaborate, the bees' dance indicates a flight path, birds singing indicates interest in mating, the snake's hiss and the geese's honk tells you to watch out. You use the tools you have and develop collaboration with them. There's clearly no right way, there's just ways.

But tomorrow morning, would you wanna learn to honk at people, or rub your legs, or waggle your butt, to order a latte at Starbucks? It'd be awkward, weird, painful, and unnecessary. So if you were asked to, you'd probably not try very hard to adapt to it. And if everybody you knew were in the same boat, all being forced to change with no real guidance, kinda not trying that hard to make it work? It would suck for everybody.

People just don't like changing what they're used to. They probably don't even mean to fight it. But we do like culture we're already familiar with. Change is hard, not changing is easy. We like easy. So people who grew up with remote work (on IRC, mailing lists, etc) find it easy, even more productive. But a company that's thrown into it without a healthy established culture are going to be swimming upstream indefinitely.

12 hours ago0xbadcafebee

I think it's largely that as this became more of a business, the "yappers" who want to talk things out got more leverage as PMs, etc. It sounds like a caricature, but they honestly seem to get super antsy only typing and sitting in one spot.

15 hours agogedy

I've never seen it put this way but I think you've hit the nail on the head.

Text requires correctness to some extent; bullshitters will just yap away for hours and nobody can point to one piece of text and say "Here, this is where you are objectively wrong, and/or misrepresenting things".

The unfortunate reality of remote work is there's a lot of zoom meetings where yappers in high places will BS away -- a lot more "important" zoom meetings than "important chats", especially in public.

12 hours agoredrove

You seem to discount that the yappers are good and convincing writers as well

an hour agothenanyu

It is exactly that and it’s clear the author is one of these “yappers”. I like that term. These people are also absolutely obnoxious irl and completely fail to read the room. I once had a PM like this who went into a near mental health crisis that the team of engineers were not “engaging” enough with her (in her head) witty “engineer” banter.

Perhaps it’s useful to have these people in the office, in a room of mirrors, where they can listen to themselves talk all day. There’s a subset of people who have weaseled their way into tech coming from the world of hyper-anxious very public social media engagement that simply make life miserable for everyone else.

12 hours agostuffn

Yeah text based beats video a lot of the time.

15 hours agoglobalnode
[deleted]
16 hours ago

One of the author’s primary reasonings for why remote work sucks is apparently that they find it difficult to treat other people like human beings without close proximity to them.

That’s pretty weird and uncomfortable and I don’t know that I would want to work with someone like that in or out of office.

16 hours agodevmor

I think it’s pretty mature of the author to recognize that this is the way they (and most humans) work, rather than acting like they always have the ability to treat others with their absolute full capacity for respect.

3 hours agopgwhalen

It's a big problem especially if you haven't met the people you're working with. It's easy so think one dimensionally about a person, I catch myself doing it all the time and I can't say I'm wise enough to always stop it dead in its tracks.

12 hours agoredrove

I have coworkers from past jobs who I've never met in person but still stay in touch with because we became friends when we worked together. That's not to say it's not an issue for you or for the author, but at least from the way they phrased it in the article, it's not at all apparent to me whether they're actually intending their complaints about remote work to be personal opinions or if they think they apply to everyone.

9 hours agosaghm

I can’t say I have ever experienced this problem after conversing with someone more than a handful of times.

Sure it applies to things like random people on social media and such, but after a mutual exchange or two you should be over it.

12 hours agodevmor

Maybe it applies more if you’re on the spectrum? (and the spectrum being wider than most people imagine)

9 hours agoredrove

now we do the work of 7 projects in half a team paid 50% less and can't get to help anyone as we all drown in 7 tickets we should do in parallel with agents writing docu on the side and assist and some of the easier code on the side because management drank the koolaid of going full into AI and "the Team now can do 300% more right". I miss the old times where making 100k and still could have few minutes to help each other and now we're in this hypercapitalistic garbage AI age were we have to just output, output, output and fuck quality and else they lay you off and get the next guy from wherever.

17 hours agofHr

Everything is FAST now, I 'member 10-15 years ago if someone came to you for help you actually had the time to pull up a (possibly virtual) chair and spend 3h helping them. If you do that now you'll get canned in 4 months.

Obviously the help also came with you bonding and chit chatting about other stuff, I miss it.

12 hours agoredrove

I cannot tell if it is domain knowledge, the type of programming, or the industry you're in, but I get the feeling we live in completely different worlds despite our similar responsibilities (working with SaaS, hiring devs, etc).

I get the feeling there are a lot of people who are developers by trade who are following what they feel they should do to progress their career rather than what they should do to work on something that interests them. Sure, the industry isn't what it used to be in terms of job market, but for a good long while there it was relatively easy to find something that interests you if you were competent. But if you're not interested in what you're working on, I find it strange to write a blog about the C#/.NET journey. I'm asking these questions genuinely: Was this a self imposed expectation for career reasons? To have a tech blog? Are you actually interested in programming or is this something you found that you're decent at and knew there were career opportunities?

About SQL knowledge, over the many years in this profession, I've re-learned SQL three times. This is because I'm a generalist, and there were large portions of time where I just didn't need to know it. But surely, in all your years of experience, you must have realized: You will never know or recall everything you learn or even scratch the surface of what you haven't. Even if you did remember everything about SQL when you learned it, you're going to have to relearn it anyway. Everytime I touch Postgres there's loads new features out. That is how any maintained software is. That is just the job, as far as I'm concerned. Very few people have the luxury of being able to hyper specialize and looking things up isn't just important, it is necessary, because being an encyclopedia of product development isn't why you're employed. The knowledge and expertise you are paid for isn't SQL syntax or how well you know C#, it is your ability to apply technology to solve problems and effectively work within a team to do so (a tangent, but this is why in the long wrong AI won't replace you).

I don't mean to preach or give a tome of a message. I am _genuinely_ interested in your perspective. I have bounced around a lot in my career but generally have to mentor folks and I'd love to chat more about this particular struggle because I hear it frequently. Especially from those who seem to have a bit of an identity crisis in their profession.

7 hours agodannersy

> You lose ambient awareness of coworkers’ problems, and asking for help is a bigger burden.

When I was in school, I discovered that I studied more effectively and efficiently when I'm surrounded by other students who's also studying.

Then at work, I found I worked much more productively if my coworkers are all doing their work.

It's not just simply peer pressure, it's an atmosphere effect, it tell you "hey, this place is for doing this thing, now you do it too", it makes you concentrate. Sometimes being concentrated is a good thing.

15 hours agonirui

That sounds akin to like body doubling, a method used by those who have ADHD.

15 hours agosatvikpendem

Is there also an opposite effect? I concentrate best in solitude, preferably somewhere like an abandoned lighthouse.

15 hours agocard_zero

I'm not sure that's necessarily "opposite"?

I feel much the same as the article author in that

"this place is for doing this thing, now you do it too"

Is somehow powerfully motivating. But at least for me it's about the place, not the other people in the place.

I had the same covid-related journey from an office worker to unexpectedly fully remote. But I'm also lucky/privileged enough to be able to dedicate a room in my house that's quite separate from the rest of the house, and for me that's "where I work". I had coworkers who started out having to work from their kitchen table, some with housemates or children around - pretty sure that would have completely killed my productivity.

I do sometimes resent losing that room, effectively subsidising my boss by relieving his office rent costs. It used to be my "workshop" where I used my 3D printers, built drones, tinkered with electronics, and repaired stuff that broke - and I just don't do those things much any more because going into that room now feels way to much like "work" not "hobby or play".

14 hours agobigiain

We have the Dlang conference once a year where we all meet in person. It's amazingly productive. And yes, we do video chatting frequently. It just isn't the same.

13 hours agoWalterBright

If only it could be daily, all year round! Or maybe the part about it happening once a year is a vital ingredient.

13 hours agocard_zero

I'm still trying to replicate my favourite working condition: being on a laptop in the middle of a concert. Pure focus.

12 hours agoMarcelOlsz

Some folks just socialize internally, or have enough little self loops to approach a task in multiple ways

13 hours agotaurath
[deleted]
13 hours ago

The question is whether enough of the other people around you have the same characteristic you describe that it's reasonable to require it for everyone, including the ones that don't. For those of us who don't work better that way, being required to go into an office in person to provide ambience for our coworkers is extremely dehumanizing.

9 hours agosaghm

How is that dehumanizing when (by the parameters you've set) you're required to do it because you're human?

8 hours agofluoridation

Because you are used as a tool for other people.

4 hours agokaffekaka

Is that any more dehumanizing than just working a job in general?

3 hours agofluoridation

You've brought in "require" from nowhere. Neither the parent comment nor OP's article mentioned _requiring_ in-office attendance for everyone on earth. Many people make this leap, so I don't mean to single you out.

I think this is one reason this topic is so touchy -- it's hard to even express an opinion without someone assuming you mean to impose that opinion on everyone else (e.g. mandatory RTO), and then taking offense to that imagined imposition.

Perhaps in the long run we can self-organize into companies or groups within companies that universally prefer in-office or remote work.

I prefer at least some % (e.g. 50%) of my work to be in person. But I also don't like working with people who don't want to be there, or for whom being there is a huge burden. So I personally really hate RTO.

Instead, I'll choose a team or company that is open about requiring in-office time (and has been open about it for years), and is therefore staffed by people who also like that environment. It would be ludicrous to join a remote-first or remote-only company and then try to start imposing my in-person preference on others.

5 hours agoredhale
[deleted]
an hour ago

This is a good take. I experienced the same.

Except in most cases it isn't true.

Yes, my best school/university years were when surrounded by people interested in studying. That was the optimal scenario, and everyone's reward was passing grades.

But in work nowadays, the reward is getting paid and promoted. That's not achieved by work, but by socializing, playing politics, creating mutually-beneficial relationships, building empires, and using everyone else.

Which is exactly what happens in a moderately sized workplace today, and one of the main reasons everyone else wants to stay home.

Remote work only sucks if your goals are misaligned with doing the actual job.

3 hours agoartyom

I prefer working in person iff I have a door.

Doors are a necessity in the work place and I hate open offices. 1 other person is okay but I'd rather a small room than no room.

A door let's be close out the rest of the world when I'm in the zone. There's time for collaboration but there's time for isolation. In a physical place I can turn off all notifications and close my door. I can make a space where there's low physical distractions like noise or people walking in front of my desk (or talking 5 feet away...) A slack setting of "away" is interpreted as either "eh, they'll probably answer" or "they forgot to turn it back off" (or they don't notice/care)[0,1]. But a physical door, people are much more cautious about knocking on it when it's usually open. It's not the same thing as a busy sign.

But I also don't think a door should be usually closed. It should usually be open. Indie collaboration but also respect your coworkers. A door is a great communication tool that you just can't get online.

[0] and for the love of god, do not hit me up with "hey". It's an asynchronous messaging system. I'll read the notification as it comes across my screen. Don't try to become synchronous with me that way. Call me, physically find me, or ask when I'm free for a call.

[1] seriously, my time is just as valuable as yours. To me it's even more valuable.

13 hours agogodelski

This article is brave. It is also is an example of a general issue: we assume our personal experiences are representative when they are, in fact, unique.

“Follow Scrum, Lean / Kanban, or eXtreme Programming to the letter” - there are plenty of failed projects and unhappy devs that have done just that. And these methodologies are not tuned for the LLM-generation age and, talking to lots of other devs around the world, I think it is showing.

In regards to remote work, I’ve worked for shops that have been fully remote since before the pandemic and are wonderful experiences. They’ve figured it out. The OP’s feelings on remote work, to me, say “the companies I’ve worked for are really bad at supporting remote work”, but if you believe your experiences are representative then you say “remote work is bad”.

5 hours agoTonyAlicea10

I think the author is too hard on themselves for not knowing things, probably coming from shame. I can only speak for myself but learning to shrug that off just how to say "I don't know X" or "I forgot X" is very freeing. I say I don't know shit all the time at work, and so do people I work with. We aren't encyclopedias. Just chuckle about it and figure it out and learn.

I much prefer working with people who can just be honest about what they don't know, it's way better than pretending to know or trying to save face, and generally people in the former camp seem to have higher EQ.

17 hours agocedws

My boss actually said that to me once. He said he really appreciated that I would say "I don't know" instead of bullshitting him. Of course I would also try to brainstorm with him or find the answer later on by searching.

17 hours agoTheRoque

For some reason I'm able to say "I don't know" to coworkers and superiors at work with no problem, but I have a much harder time online where it may affect future employers' opinions of me.

17 hours agoKerrick

I agree. I think, at least for me, it's because I know my colleagues know my overall capability, so admitting I don't know a specific thing isn't a big deal because I've already proven I'm capable of overcoming any specific gap. But to strangers, perhaps that may be all they know of me -- that I don't know this one thing. There's no preexisting relationship or past body of work (in other words: no trust) to balance that gap out or put it in perspective.

I think this is objectively mostly a silly and counter-productive worry. But I still feel it.

Kudos on publishing this piece!

5 hours agoredhale

Where are you conversing online that this is a concern?

17 hours agoonjectic

My blog.

- I blog with my real name, which includes an uncommon first name. It's easy for hiring managers to search the web for.

- My blog is linked from the website I host on the domain name I use for my email address, including for job applications. Anybody I email is likely to follow that thread.

16 hours agoKerrick
[deleted]
16 hours ago

It’s so hard to ask people how git rebase works during an interview. They tend to assume you want the intricate technical details, which, while fun to know, completely miss the point. The only thing I care about is whether you can use the tool well enough that I don’t have to spend any time reconstructing branches :P

9 hours agoAeolun

If I'm asked how something "works", to me that indicates the asker is looking to understand the inner workings of that something. If I asked you how an electric motor works, presumably you would tell me about electromagnetism and how the magnets pulse at specific intervals or whatever. I would be a little perplexed if you instead told me about applications of electric motors.

Would it make more sense to ask how to apply git rebase in certain scenarios?

8 hours agoPinkFluffyLlama

I like the vulnerability displayed by the author. I'll share a moment myself:

A few years ago I was the TL on a FAANG Android project, where for a few months I was doing more spreadsheet/TPM work than usual, and didn't have much time for coding. Once we had a meeting where I ended up coding in Kotlin live in front of a dozen younger devs to discuss the implementation of some feature. My work background is Android and Java/Kotlin, but at the time I was mostly coding in C on the side, and in the moment my brain just forgot what the syntax in Kotlin is for a "switch-case" statement, so I wrote "switch", "match", etc, struggling like a first year student, while everyone watched me fumble, until I just gave up and said: "oh my god, I'm forgetting Kotlin. What the hell is the switch keyword in Kotlin called?". Then someone said: "it's when".

I felt old and a little embarrassed, but mostly I was surprised at how quickly I could forget a programming language I used daily.

12 hours agooptymizer

I only hope that our field becomes heavier in the upper age category. Then maybe people will be more sympathetic towards my fumbles around languages I use frequently. ... I feel like I am always looking something up.

3 hours agoimetatroll

I had a boss ask me to prepare $thing he would later copy into the appropriate place. Called me over to his desk, couldn't copypaste it into the textarea. Keystrokes weren't pasting. Whatever he was doing was definitely not Ctrl+V. "Try right-click > paste.. there you go". There was no question he was technical. I guess we can't be at peak performance 100% of the time can we? Just tonight I asked my partner who was going to shower with our toddler as he sat in the bath in front of me..

8 hours ago000ooo000

I feel this is similar to how my brain works. If I am not using a skill close to every day/week then it can atrophy fairly quickly. On the plus side, it also comes back quickly (usually) if I start using it with greater regularity again.

I notice that general concepts usually stick better in my brain than specific things like your example with ‘when’. Even those are pruned down a bit after long enough though.

9 hours agovict7

What does it say about me, that I was SURE his article was going to be admitting out loud that we are engineering ourselves into obsolescence, a lot of us are really enjoying it, and nobody is seriously discussing how afraid we should be for our families and future. I’m afraid to mention it professionally, given we have a literal policy around “AI doomers” (not the exact term) that has the word “separation” in it. Worse, I’m afraid to THINK it, like a cognitive dissonance while Claude writes module after module for me. I am enjoying the hell out of it, I’ve done nothing else for dozens of months, and I feel that hence I am/developers are in a unique position to understand what type of hell - or heaven - our society might experience in the next five years. Shouldn’t we be openly discussing how we can leverage this foreknowledge?

16 hours agothreecheese

We’ve got a few years left where we function as tech leads for an army of AI agents.

The inflection point will be when business hires an AI to fill a managerial role. AI will discriminate against hiring human developers.

Since you’re so familiar with the process, I suggest you start positioning yourself as an AI development efficiency management consultant or similar.

12 hours agoryanjshaw

Why would I care? I’ll either steer the agents, or I’ll collaborate with them. Or I’ll do something else equally fun. It’s not as programming is the only worthwhile endeavour in the world.

9 hours agoAeolun

Programming has one of the easiest working conditions out there while paying a fortune. I came from retail and made a fraction of what I make now for way harder work. I wont go for a 3rd career, I'd rather be jobless for decades like the sailors in the cities around me over having to learn a 3rd job.

8 hours agozwnow

> I’m afraid to mention it professionally, given we have a literal policy around “AI doomers” (not the exact term) that has the word “separation” in it.

Dude, your employer is toxic AF. Look for a new job starting today.

16 hours agobigstrat2003

The joy of US "at-will" employment is that every company's Code of Conduct reserves the right to "separate" you for undermining mission alignment. The whole system is toxic.

14 hours agopickpuck
[deleted]
16 hours ago

100% test coverage is a bit of a distraction.

You can get to 100% by having tests that run the code, but have no assertions.

You can run tests that test unimportant code just as much as super critical code. There's no differential between the two. Of course super critical code should have a number of different tests that exercise it. Its not the same as testing every path, its testing different inputs and checking that you get the right results. Also see property testing.

Chasing 100% is like any metric that becomes a goal, it perverts the metric, and moves the meaning away from the metric.

Why is that? Well, we dont really want tests at all, if only people could write perfect software first time, we wouldn't need them. Stupid people!

What we want are reliable systems! So we use feedback loops between deployed systems and code to help us discover those places where we need more tests, or a different type of testing, and then we do that.

Of course if your test coverage is 0%, thats probably bad, but 100% is a non-goal.

You'll also find that if there are no tests in a system, when you need to add them, its really hard, cos its not designed in a way that makes it testable. So maybe the TDDs will help you! You end up with a system that you have high confidence in, and also is testable.. so when you find something that doesn't work how you thought, its easy to add that test right in there.

5 hours agotime4tea

I like to think of test coverage as a negative indicator, i.e. if coverage falls below some defined percentage, it's a bad sign. But it doesn't make sense to optimize for that metric, because, as you said, you can have 100% test coverage but every single test can be bad.

I've always wanted to spend some more time on mutation testing, which can be used to improve test quality instead of just focussing on quantity. But I found it to be completely irrelevant in the industry so far.

3 hours agolocalhostinger

I appreciate the author being vulnerable like this in a public setting. It's easy to see why it would be scary, especially since admitting being wrong or not knowing something can easily be turned into questioning one's overall competence.

I wish we'd be more open about our flaws and knowledge gaps in general. I think we'd all benefit.

19 hours agoNikxDa

I had an old colleague (at various points he was my boss, colleague, and subordinate at different places) that really opened my eyes up to the power of saying you don’t know how to do something.

I used to also fear appearing incompetent if I admitted to not knowing too many things, so I would avoid showing my knowledge gaps whenever possible.

However, this colleague was the exact opposite. He would gleefully tell people he had no idea how to do certain things, would be a ready listener when the person he was talking to explained how it worked, and would heap praise on the person for their knowledge and teaching skills. He would always defer to other people as experts when he didn’t know, and would make sure our bosses and coworkers knew who had helped him and how much they knew about the topic.

What I saw and experienced was that this did NOT, in any way shape or form, make people think less of him. It did the exact opposite. First, it made people REALLY happy to help him with stuff; he made you feel so smart and capable when you explained things and helped him, everyone jumped at the opportunity to show him things. He learned so much because he made everyone excited to teach him, and made his coworkers feel smart and appreciated for their knowledge.

And then, when he did speak with confidence on a subject, everyone knew he wasn’t bullshitting, because we knew he never faked it. Since he gave everyone else the chances to be the expert and deferred all the time, you didn’t get the one-upmanship you often get when tech people are trying to prove their bonafides. People were happy to listen to him because he first listened to them.

I have really tried to emulate him in my career. I go out of my way to praise and thank people who help me, always try to immediately admit where my skills and experience lack, and don’t try to prove myself in subjects I don’t really know that well. It has worked well for me in my career, as well.

15 hours agocortesoft

The "why I was afraid to admit it" is by far the best part of this. It gives a lot more insight and ideas to combat it.

16 hours agogblargg

There is so much wrong with idealistic approach that I actively oppose “good practice cottage industry” like Uncle Bob.

Not remembering sql or details of different joins - after looking it up how much time does it take to kick back in?

I don’t remember a lot of stuff by heart but as once I worked with it I can go back rather quick, if you need it just brush it up. If you don’t need it who cares.

Polymorphism I can do stuff with it and it hurts my brain yes when I see switch statements that should be objects - but on the other hand it is much easier to understand switches or ifs for a lot of folks.

2 hours agoozim

Putting stuff in a switch means all the logic for what would be a function overload is in the same place, unlike objects where that logic would be scattered across multiple files. Variants can work better here but are less well known.

2 hours agosnovv_crash

My knowledge-gap confession: even after many years with the languages, I can't write a main() in Python or Java without looking up the format.

19 hours agokens

So many things like that!

I don't know if I could tell you with confidence the proper way to get a string length in any language. Is it a global function or an object method or property? Is it length or count or size? I have to look it up or rely on intellisense every time. I do too much bouncing between languages.

Well, I know it in BASIC. Len().

18 hours agokbelder

No purpose in memorizing something that doesn’t meaningfully improve your understanding of the language, you only need it every now and then, and you can find it nearly instantly.

16 hours agoDrewADesign

With Java 24 it’s now:

    void main() {
   
    }
18 hours agop2detar

Not if you want to handle arguments?

18 hours agoe12e

Also not if you want to open a file. For that you'd have to create an instance of FileInputStream. I'm not sure what your point is.

7 hours agoimmibis

I’ve spent so much time in both the .NET and JS worlds that I can't even begin to count how many times I’ve typed `Where` when I meant `filter` or vice versa.

18 hours agovunderba

What, `def main():`? Or do you mean the __name__ == "__main__" thing for distinguishing whether the code was imported?

18 hours agostavros

I can successfully type "def main()" and not "function main()", unless I'm switching between JavaScript and Python and forget which language I'm in :-). It's the if statement with all the underscores that I need to check every time.

18 hours agokens

I actually made that a keyboard macro because, even though I remember the syntax, I can't be bothered with all the special characters all the time.

17 hours agostavros

IntelliJ completes the format for me. I never write it by hand. Also I have never coded in something other than an IDE.

12 hours agoanother_twist

I set up some .NET services years ago. Since then it was just adding new stuff. If I was asked how to set up another service, I would have no idea how to do it

18 hours agovjvjvjvjghv

That's what `dotnet new webapi` (and all the other dotnet new templates) is for.

They don't even have a main() any more, it's great

15 hours agotaberiand

it's because you only do it once per project.

5 hours agohokkos

Continuing the confessions: I do php.net/<function_name> at least twice a day

18 hours agomulquin

Is that a bad thing? I also call man <libc function> several times per day, most times I think I already know the calling semantics, but there is always some nitpick about the calling semantics or a bug description, that I didn't had in mind.

18 hours ago1718627440

In python, it's trivial:

def main(): # code

The dunder syntax you see around isn't required.

17 hours agothe__alchemist

It's the main benefit of Rust ;)

(obviously it's not but it is super nice that main in Rust is just:)

    fn main() {
    
    }
18 hours agonicoburns

LLMs are wonderful for this. I can't write hardly a line of shell script without looking something up. And then there are three different ways to do <thing> so I spend time beard-tugging as to which way to do it. Now I just tell the LLM what I want changed about this shell script and look at what it comes up with. 100% of the time it's fine.

17 hours agodboreham

Lol! This is probably my sneaky number one productivity benefit from LLMs, I would never want to go back to writing shell scripts pre-llm. So many hours wasted debugging and deciphering stack overflow over the years, dropping &,$, [[]], “”,|,<> in different places hoping to get my .shitty scripts working. Like conceptually I understand shell scripting very well, but anyone nobody can argue that bash isn’t footgun central.

an hour agojmogly

what

an hour agodfedbeef

"Knowledge means knowing where it is written down."

18 hours agocroes

[dead]

18 hours agoandrewmcwatters

It’s horrifying to learn that someone feels guilty for not fully obeying the commandments of Uncle Bob. It would be more appropriate to feel guilty for taking his advice.

13 hours agosenderista
[deleted]
an hour ago

The ability to ask "stupid" questions without feeling embarrassed is a superpower IMO.

I had the sweetest manager once. Someone stared talking about iphone and she [1] casually asked "what is iphone?" (this is after 6-7 months after iPhone was launched). Everyone's jaw dropped ... what? In which world u live in? ... to which she said with a wide smile and not an ounce of embarrassment .. "what? I don't know what iphone is?"

But she was otherwise so good in every other aspect ...

[1] She is/was mother of 4 kids and that left her very little time for anything else.

8 hours agodevnull3

Absolutely.

Once I got over the embarrassment hurdle of asking “dumb” questions, I grew a lot in my early career. Then people saw me as highly engaged, and my questions and understanding got better over time.

In particular, I encourage all the new joiners on my team to play the “newbie” card to allow them to ask as many questions as they want.

“Hey, new guy here… what is X?”

I even tell them to set a goal of one question per day if it helps.

I think it’s so important not to be passive because you absorb / understand less that way.

5 hours agoEsophagus4

A lot of this article didn't resonate with me, personally.

Reading what he wrote about remote work in particular is so strange to me, even though I am fully aware that I've got colleagues that seemingly mirror his views.

On this anonymous platform I feel comfortable pointing out that this isn't an artifact of remote work whatsoever.

If you weren't like this before, and only noticed yourself becoming like that... I'm afraid you've just changed. Accepting people/coworkers along with their flaws is a conscious decision you need to make. You likely just weren't able to see their shortcomings earlier in your life, likely because you haven't been negatively effected by actions like they're taking.

Let's say you have a colleague that always does as little as they can get away with. Everyone will know such a person. Eventually you get the ability to tell quickly when a person is like that. And then you will either start to see them as a negative or just accept this about them - because it doesn't make them into a bag person and you can still joke with them and learn from each other.

7 hours agoffsm8

> left inner join

While I do appreciate this joke (and I do hope this is a joke), I've recently had a project majorly held up because a lead dev didn't understand SQL. It's great to admit gaps but it's equally important to close those gaps.

> As a hiring manager I interviewed software engineers and tried to filter for object-oriented knowledge. Retroactively, it’s clear I was hypocritical.

As some one who has been on the other side of "rejected by an interviewer who didn't understand the thing they've interviewed you about" I, again, appreciate the transparency, but I'm not entirely feeling that the lesson has been learned in the case.

There was a time in my life where I felt ashamed that I didn't know calculus... so I learned calculus and my life has been better for it. While refusing to admit ignorance of a topic is particular problem in tech, confessing that you don't know something and gleefully stopping there is not much better. Holding people up to a standard you do not hold yourself to is a major problem in this field. The technical people I've learned the most from hold you to a high standard and hold themselves to an even higher one.

Of course not every engineer has to hold themselves to a high standard, but if you want to write a blog about a topic, then part of the requirements here is that you do hold yourself to a high standard. Yes, we all have gaps, and we shouldn't let shame get in the way of learning, but we shouldn't let shamelessness about what we don't know limit us either.

18 hours agocrystal_revenge

I am indeed learning, working to close those gaps.

For automated testing, I'm in the middle of reading Developer Testing by Alexander Tarlinder, with xUnit Test Patterns by Gerard Meszaros coming close behind. I'm also working through Test-Driven Development: By Example with my wife as we have time.

For SQL, I read Grokking Relational Database Design by Qiang Hao last winter, and I started SQL Queries for Mere Mortals by John Viescas this week. Sadly, my flub with "left inner join" was not a joke.

For OOP, I've been on a whirlwind tour: OOA&D With Applications by Booch et al., Object Thinking by David West, POODR and 99 Bottles of OOP by Sandi Metz, Domain-Driven Design by Eric Evans, IDDD and DDDD by Vaughn Vernon, Design Patterns in Ruby by Russ Olsen, Clean Architecture by Robert C. Martin, and Smalltalk Best Practice Patterns by Kent Beck. Still on the docket are Design Patterns by the Gang of Four, PoEAA by Martin Fowler, Smalltalk, Objects, and Design by Chamond Liu, and Object Design by Rebecca Wirfs-Brock.

> confessing that you don't know something and gleefully stopping there is not much better [...] we shouldn't let shamelessness about what we don't know limit us either

I promise you, this was not gleeful and this was not shameless. Shame and fear affected me for months on these issues. And I'm not stopping there... From the end of the article: "I’m going to continue to work on skill building, but now I feel free to write about it. If [...] you’d like to help me fill [my knowledge gaps], [...]"

> if you want to write a blog about a topic, then part of the requirements here is that you do hold yourself to a high standard

A high standard of writing, maybe. But plenty of great stories come from those who are striving for a high standard, not just those already in the upper echelon. It's what makes this place different from academic journals.

18 hours agoKerrick

I don't fully grasp whether your knowledge gaps are severe or just an impostor syndrome. Do your knowledge gaps affect you or do you just feel guilty for not being an expert of every tech?

It's easy to feel dumb on the internet, around every corner there are people pointing out your mistakes and they seem to know it all. But it's often just by chance, of course there is someone out there that know this exact thing you got wrong. You did the rare thing what no one does in tech, you said what you don't know, all the _experts_ out there simply hide that.

The other issue is also that people try to overwhelm you with their questionable knowledge. I find that quite problematic with OOP. I've smoked a lot of the OOP crack, but I feel more efficient without all the rituals and dogmas. Knowing all the bells and whistles of smart OOP stuff will just cause more shame, because with every piece of code you will think "oh I have to do it that way or people will hate me".

That being said, I usually prefer to know the essence of something. There are many ways to testing, but if you know what it's conceptually doing, then you can write your own test lib. It's not hard, neither magic. But elaborate frameworks and ritualized concepts often lead you away from the gist of things. You are supposed to do things how they've imagined it for you, if you don't, feel shame.

5 hours agoYokohiii

This is great to hear and I do appreciate the clarification. Having put lots of content out in public myself (though this account is intentionally pseudonymous) I know it's also equally difficult to comment on content like this without being on either end of the "asshole" <-> "awesome!" spectrum, and sincerely hope my comment to not fall to close the the first part.

17 hours agocrystal_revenge
[deleted]
17 hours ago

Not exactly your main point, but where’d you go to learn calculus? I did the usual classes in high school but none since, and I’d love to develop a better appreciation for it.

18 hours agoel_benhameen

I find 3blue1brown to be a great resource to build up good intuition about math topics, his videos about calculus and linear algebra are wonderful in particular. https://www.youtube.com/playlist?list=PLZHQObOWTQDMsr9K-rj53... is his essence of calculus series, I found the visualizations made it a lot easier to grok.

17 hours agoccapitalK

I can second 3blue1brown as intro, but anything practical needs practise. Get your local 12th grade or undergrad math book which has problems to solve will bring more focus and faster learning. Have a list of problems to solve in your head while learning theory has been faster for me than just learning theory.

15 hours agocosmosgenius

I got mine doing a computer engineering degree.

My suggestion is using Khan Academy if you want to better your math knowledge. It's really quiet good for that sort of thing. It was just starting to take off when I finished my degree. I wish it was available before then.

17 hours agocogman10

Calculus for Dummies is surprisingly not bad.

17 hours agojihadjihad

No offence to everyone else in this thread but the holy grail is truly The Art Of Problem Solving textbooks + mathacademy [0].

[0] https://www.mathacademy.com/

16 hours agoMarcelOlsz

Learning stuff that doesn’t help in work(calculus is not helpful for 99% of software engineering) is really hard if you don’t base it in reality I find. Maybe it’s just me but I would never read a text book for fun so suggesting learning by reading a text book seems crazy. Calculus can be fun and interesting but the teacher has to actively try to make it so. The learning will take longer but you’re more likely to see it through and I think it’s more likely to stick long term too.

I learned way more reading crafting interpreters than I did in my compiler class for example.

13 hours agoHDThoreaun

That’s interesting because I can’t imagine learning a subject without a textbook. I have a hard time believing another medium would have the depth and density to get all the points across. Although it does depend on the subject matter and one’s learning goals.

But I also do read textbooks for fun… Now that I have a few decades of experience in a lot of these subjects I get way more out of the books. And I can start to understand more of the meta information. Like, of all the things the author could’ve used as an example, why did they pick that. Also, it’s hugely interesting for me to look at the homework problems and theorize why this particular problem was picked. Especially fun for electrical engineering books. But ya, I’m weird like that.

12 hours agothrowaway31131

>Pair programming is less fruitful.

I'm surprised at this statement. My team pair a lot - at least half of the time - and the majority is remote.

We find it much more comfortable to pair remotely on our own setups than crowded around a single desk and keyboard.

I wonder why our experiences are so different.

8 hours agotomwphillips

I absolutely loathe when someone is looking over my shoulder. Additionally, the software for pairing is so good and being able to be help and annotate while the main "driver" can focus on solving the problem is immensely fruitful and I would argue objectively more engaging and helpful if you can highlight and demonstrate directly what it is you're communicating.

I work remote and wouldn't have it any other way, but I'll admit there are culture things I miss since I really love my team. As an employee? My employer gets way more value from me without the bullshit of going to an office.

8 hours agodannersy

In my opinion, the openings to pair are harder to find when remote.

In person, it's usually easy to see when a junior is struggling, and pull up a chair. That same junior, in a remote environment, might not proactively ask for help. And me sending a slack message to them asking how they're doing might get a "all good" even when they are not. And sending a huddle request to them because I suspect they're struggling is just a VERY different thing than looking over at them to read their body language, or swinging my their desk to check in.

Maybe some would say that it's on that junior to know they need to ask for help. Sure, great. That does nothing to resolve the reality of this very real situation. Of course part of coaching this junior (in person or remote) would be encouraging them to be more proactive about asking for help, but if you have fewer opportunities to offer help and coaching in the first place, their growth is slower. Significantly slower in my opinion.

This is a hard difference to convey to someone who has never experienced a good in-person culture. But I know I would not be where I am if I had spent the first decade of my career working remotely.

5 hours agoredhale

What is your setup when pairing remotely? (Full disclosure I am building an OSS app for this purpose and just want to learn what is working for people)

8 hours agoiparaskev

Not OP, but Tuple is pretty great.

7 hours agoqweiopqweiop

Indeed Tuple is a great product. The goal is to match their quality and make it the OSS alternative, it's still early though, and I am trying to get some feedback.

7 hours agoiparaskev

I dislike it in general, I want to work on my own terms and I have to interrupt my way of thinking constantly because now I have to communicate my ideas to some other person. Sometimes I like to work in the middle of the night, sometimes early in the morning. Having another person to code with me is just a blockade.

8 hours agozwnow

Also super common to simply forget stuff because you don't use it. We all knows lots of people who we think they know everything all the time, but the truth is that most of them googled that 5 minutes before a meeting.

I love software development but recently I have being doing too much data analysis and nothing too exciting.

I get afraid of getting the basics wrong when I go long streaks like that. I appreciate the fact that you showed that to others. This is healthy for everyone. We are living in a society where faking it is so common that people cannot just bear to be themselves anymore

8 hours agomotbus3

I've been doing a lot of SE interviews lately for my company and one of my favorite coding assessments is a polymorphism challenge, mainly because our codebases are full of it. I was shocked at the number of engineers with 20+ years of experience who didn't understand it.

3 hours agowwalker2112

> my favorite coding assessments is a polymorphism challenge, mainly because our codebases are full of it

mind sharing the challenge (or an analogous one so you don't give away the real one)? I'm curious how bad I'd do with it

3 hours agoDrammBA

The section on cyberharassment is really troubling, although with the current vitriol on AI I'm not surprised. Do wish the author mentioned the name of the site though, if only so I can avoid it (and not in the Always Sunny "oh no terrible! where?" way)

18 hours agoSpecialistK

I was as curious as you were. Turns out there are only so many popular threaded discussion sites in the vein of HN on the Internet, so an educated guess is all it takes.

Without making judgment on the actions of any involved party, I do wonder why the author would choose to bring up this incident and submit it as part of a story to a site where there is a significant overlap in readership.

18 hours agostriking

That incident catalyzed the fear that suppressed my desire to participate online for months. I figured that if I couldn't talk about it now, I might never participate again.

18 hours agoKerrick

Good on you.

Honestly, if there's any chance the content they posted on your profile before locking you out comes close to defamation, I'd consider talking to a lawyer about it. It could be that getting one to send them a cease-and-desist letter on your behalf could take care of the problem.

17 hours agojavawizard

Well that sucks. It's exactly the site that comes to mind when I think "most popular alternative to HN".

I've generally found conversation there to be more respectful than HN, rather than less, when discussions get heated - so I had high hopes it would be a different site, but alas.

This leaves a really bad taste in my mouth.

Edit: you know what, screw it. In the spirit of "no more self censorship", here's the link: https://lobste.rs/~7u026ne9se

17 hours agojavawizard

I don't find the conversation to be especially disrespectful. The people in the thread in question attempted to shame him, to some extent. Shame is a social measure to coerce people who are behaving contrary to society's expectations to change their behaviour. However, while shaming him, they did not especially resort to childish name-calling or ad hominem. They reasoned with him extensively as to why his behaviour was deeply undesirable. He went so far as confessing that he did not even know the language of the PR he submitted, yet intentionally withheld information about the provenance of the code. Sometimes the shame mechanism is misused for things that should not be shamed, but this seems like a clear case of shameful behaviour that deserves social repercussion.

Sadly, it seems like nothing was learned, since he settles only for diminishing his culpability in anti-social behaviour. He goes so far as to describe, in his blog post, his code as an "AI-assisted patch". When you profess that you don't even know the language of the code that the LLM generated, there is no "assistance" about it, you're at the deepest end of vibe coding. And in submitting it to an open-source project, you're making a maintainer spend more time and effort reviewing it than you did prompting it, which is not sustainable. Moreover, if the maintainer wanted a pure-LLM-generated solution, there was nothing stopping them from hopping over and typing in a prompt themselves.

In fact, most of the comments were purely a debate with no direct attacks at all. The extent of "not respectful comments" I see are something like...

  So your original comment that you "didn't want to hype up AI" was a lie, you really just wanted to pretend it was your own work and didn't want the project to be able to make a choice about it. There are good reasons why projects may not want to accept code generated by AI. They may not care. But by consciously choosing not to disclose that, you took that choice away from the project. That's pretty lousy behavior if you ask me.
"Pretty lousy behaviour if you ask me" is incredibly tame. If that's what counts for toxicity, then you're advocating for a toxicly positive carebear forum where nobody is allowed to criticise anybody else's decisions.
17 hours agoanonymous908213

I agree that the discussion doesn't seem to be toxic on the whole, though not superb, although I don't know what happened following in terms of harassment, so that's up in the air for me.

15 hours agovacuity

I don't know, I'd kind of like to see their responses before passing that much judgement on them.

> you're advocating for a toxicly positive carebear forum

Please stop putting words in my mouth.

16 hours agojavawizard
[deleted]
23 minutes ago
[deleted]
6 hours ago

Really appreciated this. It’s refreshing to see someone be this honest about their gaps and growth. A lot of us quietly deal with the same things, so thanks for putting it into words.

11 hours agoamitk2405

I can relate about OP’s comment about OOP. On a similar note, I had written about re-discovering visitor pattern:

https://ssg.dev/are-interfaces-code-smell-bd19abc266d3/

15 hours agosedatk

That blog post is a poor example. It replaced a simple straightforward if-else loop with a hard to understand abstraction spaghetti. A few unit tests and you'd be well on your way to shipping rather than messing around with beautiful patterns.

12 hours agoanother_twist

Obviously, because it was a fictional, simplified example for the post. My real use case was more complicated and involved multiple developers working on different parts of that flow.

The problem with if-else chains is it's easy for a programmer to forget to handle a case that another developer added in the called component. Unit tests can't help a spec miscommunication. But, visitor pattern can as it forces the handling logic to be complete.

Hence my example at the end using discriminated unions and exhaustive pattern matching in F#. Much, much simpler with the same benefits.

11 hours agosedatk

As a "half way" point, modern (21+) java brings pattern matching switch statements to the language, but you'd probably construct the F# version in Java using a sealed "marker" interface. Something like

    sealed interface Result permits ValidationError, SearchQuery, UserProfile {}
Along with the specific implementations of those ValidationError, SearchQuery and UserProfile classes and then a switch statement like:

    Result res = db.query(input);
    return switch(res) {
      case ValidationError ve -> context.renderError(ve);
      case SearchQuery sq -> context.redirect("Search", Map.of("q", sq));
      case UserProfile up -> context.redirect("Profile", Map.of("user", up));
    };
The sealed interface gives you compile time checks that your switch statement is exhaustive wherever you use it.

Before that pattern matching, I might have used a Function<Context, R> instead in the Result interface. This is off the top of my head without the benefit of an IDE telling me if I've done a stupid with the generics and type erasure but something like:

    interface Result<R> {
      public R handleWithContext(Context c);
    }

    class ValidationError<RenderedError> {
      public RenderedError handleWithContext(Context c) {
        return c.renderError(this);
      }
    }

    class SearchQuery<Redirect> {
      public Redirect handleWithContext(Context c) {
        return c.redirect("Search", Map.of("q", this);
      }
    }
etc. In either case though I think you're right that an empty interface is something that should be examined closer.
an hour agotpmoney

Sealed interface doesn’t look bad for some use cases. I wish C# had it too.

33 minutes agosedatk

> This incident was one of the most toxic things I’ve ever experienced, and it lasted for days.

Yet when I look at the conversation itself, I cannot find anything that seems directly hostile towards them:

https://archive.md/q8htc

https://lobste.rs/c/mejg0v

I do not see personal attacks. I see a fairly normal debate with a bit of snark, which is hardly unusual in online discussions. I may be missing something that happened out of view, but from what is available, the tone does not appear toxic. The author was later banned, which suggests there may have been more going on: https://lobste.rs/~7u026ne9se

This was a good post but the implication that the community behaved in a particularly toxic way feels at odds with what is visible and leaves the impression that parts of the account may be incomplete.

35 minutes agothrowaway150

I need to figure out how to be as open as the author is - it comes across as fricking amazing!

19 hours agotommica

I feel that many coders have a very basic understanding of SQL, don't really want to get better at it, and don't really care.

If they can get away with a query that takes 2s to return a single row, they will be quite content and will not be bothered to look at the query plan.

It's a shame, because everything could be a little better with hardly any effort.

6 hours agoforinti

> It's a shame

No, it's not. This goes against the whole thread and the article posted.

3 hours agozvmaz

> Am I suggesting 100% test coverage? No, I’m not suggesting it. I’m demanding it. Every single line of code that you write should be tested. Period.

This is from uncle bob. I hate the argument by people that 100% leads to "bad quality tests". Not doing it leads to bad quality code, people who don't care about quality of code, and hence dont write tests, suddenly start to care about quality of tests.

8 hours agoabhashanand1501

On literally every project I've seen that enforces a % threshold, that % threshold has directly led to bad quality tests. This is more true the higher the % is, with the worst being 100%.

You can argue that it _shouldn't_ be this way, and I would agree, but it is that way. Perhaps in part because developers are humans, and even humans with the best initial intentions will game metrics with a large enough sample size over a long enough time horizon.

3 hours agoredhale

100% means testing things getters and setters in Java. At some point you're testing nothing.

If you tell people that 95% is just as inadequate as 0%, they'll tend towards 0%.

6 hours agoimtringued

There are two possibilities

1. The getters and setters are not called anywhere in application logic. In that case, delete the getters / setters and get to 100%.

2. The getters and setters are called somewhere in the application logic. In that case, they should have already been covered in the test for the application.

There is really no excuse to not write tests to get to 100%.

5 hours agoabhashanand1501

> Remote Work Sucks

> Remote work eliminates a lot of problems with office work: commutes, inefficient use of real estate, and land value distortion. But software development is better when you breathe the same air as the folks you work with. Even with a camera-on policy, video calls are a low-bandwidth medium. You lose ambient awareness of coworkers’ problems, and asking for help is a bigger burden. Pair programming is less fruitful. Attempts to represent ideas spatially get mutilated by online whiteboard and sticky note software. Even conflict gets worse: it’s easy to form an enemy image of somebody at the end of video call, but difficult to keep that image when you share a room with them and sense their pain.

Buddy, that's either a you problem or a problem of the software culture around you.

I've thoroughly enjoyed remote work. I thoroughly hate being in the office.

In the office, I can't type out notes nearly as quickly. I can't read people's inquiries two or three times to understand what they were asking in the first place.

Why should I form an "enemy image" at the end of a video call? I don't. But in a conference room? That is easy. I can see their faces, see when they're lying or hiding something, and it only ever builds drama.

Attemps to represent ideas spatially doesn't get mutilated by online whiteboard and sticky note software. Unless you don't know how to use online whiteboard and sticky note software. You need integration, you need training to use the integration, and you need to keep focus on the topic. You need to identify the ancillary information and objects. You can do all of that online while someone else is leading or speaking. Everyone can. It's a hell of a lot harder to do that when everyone is sitting in a conference room staring at the speaker instead of typing in their computer screens.

Asking for help is only a bigger burden if your culture allows information silos. Encourage your team to speak up into a common chat room. Let anyone answer the question instead of just whoever was asked. It's easier to develop empathy and watch someone grow when everyone is given the shared burden of answering questions. It's easier to identify what processes are causing the biggest problems when everyone can see the amount of questions or frustration about it. It's harder when that information silo is real.

Remote work is way better than in-office work. If you disagree then you are a very different person than I am, and/or have very different experience than I have.

an hour agoinetknght

The majority of these hidden truths are due to senior engineering management in their 40s and 50s who have not coded in decades, and yet pick up the latest trend or fashion and impose that on their teams.

The monolith to microservices trend was one great example of this.

12 hours agoanshulbhide

> I Didn’t Understand Polymorphism For a Decade

> And yet, my lack of awareness of polymorphism showed me I’ve been writing little more than structured programs. That I could replace conditionals and case staments with specialized classes had never crossed my mind.

> Polymorphism is covered in every college OO course.

Consider yourself blessed then because you're in for one hell of a ride if you pursue that path to its extreme. For me, it was the opposite: been taught OOP, I had to unlearn most of it to be able to better structure my mind and how I think about programs.

You should know what polymorphism is (also, there's static, dynamic, ad hoc, single dispatch, multiple dispatch), but I don't think it's a weakness if you have not been using it that much (the real weakness is over-using it and making a clusterfuck out of your code.)

Which is a long-winded way of saying that you could be doing much worse, if that makes you feel any better, lol.

14 hours agocanyp

Like the post overall, but the last section is a bit weird for "confessions" as it's all HIGHLY subjective. For example, I worked at a company where no one worked from home and we paired 100% of the time. When COVID hit, we started pairing over Tuple and I found it to be a superior experience to pairing in person (Tuple's drawing and attention drawing tools are far more accurate than my finger, I can use my own keyboard the odd time I want to control my pair's computer, and there are no office distractions of other pairs in the same room are benefits that come to mind). I continued to enjoy (and prefer) it for the 1.5 years I stayed after lockdown.

18 hours agosodapopcan

All the confessions are highly subjective. If someone tried a refactor like the one at https://refactoring.com/catalog/replaceConditionalWithPolymo... there is a decent chance it should get picked up and reverted on code review.

Taking a switch statement and spreading it out over 3x classes is not a general improvement, it is very context specific. It makes the code difficult to navigate because what used to all be in one spot and easy to read is now spread out who-knows-where and there might be a special case lurking somewhere.

18 hours agoroenxi

It's not as subjective as it is more of a case by case decision. This example is quite misleading but polymorphic classes are sometimes useful when the domain grows, when you have have to update new behaviors all the time.. In that case then the switch becomes harder to maintain. Classes isolate behavior so new types don't modify existing code. I'd stick with switch statements in all the other cases. Sure, this could be abused and make simple things unnecessarily complicated but am just pointing out that there's a use-case for it.

11 hours agotartoran

Yeah, the problem is when people create extra classes just to avoid the switch statement.

an hour agozephen

I suppose I included the last section as a "confession" because I spent years pre-pandemic wishing I could go remote, talking loudly about how open office spaces were bad, etc. That, plus it's embarrassing to admit that I dislike remote work even though I am a remote worker. And not just a remote worker, but an enfranchised remote worker living 3 hours away from the nearest city with an international airport. I made the mistake of rebuilding my life around remote work before I had experienced it long-term.

18 hours agoKerrick

Awfully nice, isn't it? You get all the privileges of being a remote worker, while "confessing" that remote work sucks to upper management who read your blog, giving them justification to deny other people the same opportunity you have. If you genuinely believe remote work sucks, you should own up to it, sell your property, and move to a city rather than reaping the benefits of it to the extent of your entire life being dependent on it while talking about how bad it is. The fact that you haven't done that indicates to me that you actually quite enjoy the benefits more than you suffer the drawbacks, but aren't acknowledging it, instead choosing to denigrate remote work for having any drawbacks at all.

18 hours agoanonymous908213

> giving them justification to deny other people the same opportunity you have

I don't fear they'll deny others the opportunity for remote work. The company is "headquartered" in California, but I don't know if they even lease an office anymore. The CTO lives in the upper midwest, the architect lives on the east coast, my manager lives along the Mississippi River, and I live in the Ozarks.

> enjoy the benefits more than you suffer the drawbacks

Yes. I'm sorry, I thought I made that clear in the post. The benefits of remote work include, but are not limited to: no stress or time from commuting, an opportunity for geographic arbitrage, and the ability to build a better lifestyle around the lack of a commute. Beyond just the remote worker themself, a society that transitioned all office work to remote would also gain more benefits: more efficient use of real estate with entire office buildings rendered unnecessary, less chance of land value distortion due to centralization of workers, and less pollution due to fewer commutes.

I'm glad to also criticize in-office work for having other drawbacks. For example, I was rear-ended commuting to work more than once, the family needed the expense of two cars, we spent more on clothing, and the ambient level of noise being above 35 dBA was annoying.

17 hours agoKerrick

Pretty sure that the comment "upper management who reads your blog" wasn't discussing your upper management.

Would upper management from other companies read your blog?

Sure, maybe not organically, but certainly via a google search, looking for support for motivated reasoning for why all the plebs should be brought back to the office.

> Yes. I'm sorry, I thought I made that clear in the post.

Maybe for someone doing a close read. Honestly, with the discussion about the cost and the mortgage, it reads more like you are stuck there.

an hour agozephen

I think that eating meat is immoral, I still do it most days. Remote work sucks mostly for the employer, not the employee.

13 hours agoHDThoreaun

20 years in and I still have to look up basic SQL syntax sometimes. The longer I do this the more I realize how much I don't know. At some point you just accept it and focus on knowing where to find answers fast instead of memorising everything.

9 hours agovictorbuilds

I admit I still don't understand Kotlin generic types. Or most of SOLID.

4 hours agoFruitmaniac

I really appreciate public vulnerability.

And I want to offer some contrast—not as a rebuttal, but just as a reminder that there’s lots of different ways to navigate this strange field.

The _majority_ of the paid code delivery I’ve done for a decade+ has been in Ruby. (The balance has been a mix of mostly devops and some TS/JS and Elixir.)

Remote work has been an utter boon. Admittedly, I do feel like it’s got worse since Covid. But I’ve been able to work with people all across the globe without uprooting my family and leaving my community, and conversely can travel without having to leave my job or clientele.

And I do find that some places benefit from thinking hard about their process. Small senior teams do great with Shape Up. Projects where you have a non-negotiable scope (replatforms) and work streams that are more reactive than planned do better with kanban than something involving estimates.

That’s not to say the author’s wrong! Again, just that the world is wide and experiences differ.

Some context here: I’ve consulted full time almost continuously since 2018, which certainly colors my experience.

15 hours agoArubis

Loved your post! I've been feeling the same way (currently feeling crushed by work+master's)... hope to work the courage to break the dam as well.

18 hours agorolandog

I think Uncle Bobs advice is mostly bad and am afraid to admit it because it’s like a (cargo) cult now.

18 hours agoKon5ole

Agreed. The quote from him in the article reads like a caricature of a comically overzealous SWE.

16 hours agoseattle_spring

Add most of what Martin Fowler said to that list.

16 hours agoGiorgioG

reading uncle bob's book was the singlemost harmful thing i ever did to myself as a software engineer. wasted so much time writing such worthless tests. TDD? ughhh no way.

6 hours agoformvoltron

Here’s a great idea for a good opportunist:

A “Confessions of a Software Developer” website where devs can come in and make anonymous confessions.

18 hours agofelipelalli

It would attract the humble-braggers. ;)

18 hours agolayer8

Probably already a subreddit for it like r/programminghorror.

18 hours agovunderba
[deleted]
19 hours ago

Remote work is great (for the reasons you gave and more) and saying it "sucks" made me roll my eyes, and it's reductive in the same way as saying office work "sucks." I wouldn't have had a job if in-office was the only option. It certainly didn't suck for me.

Being bad at problem solving with people far away is just another problem you can solve with practice. Same as being bad at problem solving even when help is right next to you.

18 hours agoajs1998

> made me roll my eyes, and it's reductive in the same way as saying office work "sucks."

Yes, "remote work sucks" is reductive, but I elaborated beyond the heading. Also, I wouldn't disagree with "office work sucks." Remote work simply has its warts, too.

> just another problem you can solve with practice

Perhaps, but practice alone clearly isn't enough. I've been working remotely since 2020 and it hasn't gotten more enjoyable. I would love to solve that problem, though. I read Remote: Office Not Required by Jason Fried in the past, but that was written a long time ago. I've added more recent works (Effective Remote Work by James Stanier and The Async-First Playbook by Sumeet Gayathri Moghe) to my reading list.

18 hours agoKerrick

I’ve worked remote for at least 16 of the past 22 years including my first job out college. It’s always been friggin awesome. The only downside was when I was contracting and I’d get calls in the middle of dinner and I didn’t have the self-discipline to ignore the call. A few times a year I have to travel to work, it’s nice to see folks, but it’s not required to get the work done, I put my big boy pants on and figure it out, or ask for help when I can’t.

16 hours agoGiorgioG

Refreshing to read, I bet it was cathartic to write. I hope your fears don't come true. I think they won't. Many people do genuinely appreciate this kind of honesty, even when directed against them, but it is a gamble.

A good reminder that everything we say/hear/write/read exists in the unseen context of all the things we believe we should not say.

19 hours agoakoboldfrying

I'm retired for health reasons. When I was working, I hated dealing with 2 overlapping categories of people:

0. anti-excellence:

0.a. slobs/jerks who didn't care about system or code entropy, or the effects of their carelessness on other developers, users, or other stakeholders

0.b. uncurious people who lacked knowledge and didn't care about learning because it was "just a job to them"

1. "competitive" egotists who sought to exert force, control, or domination of "their way" rather than collaborative experimentation

Furthermore, environments that reward impact and achievement to maximize credit for performance review seldom reward refactoring, training, or any sort of deep problem solving or presentation of tools, methodology, or experience.

7 hours agoburnt-resistor
[deleted]
an hour ago

> it’s easy to form an enemy image of somebody at the end of video call, but difficult to keep that image when you share a room with them and sense their pain.

I'm honestly so confused by this. Has the author never worked in an office before? Building a grudge for someone that you are forced to work with and sit next to all day is one of the classic office dilemmas. Being forced to be around them all day can really build resentment to people

17 hours agoTrasmatta

> Remote work sucks

Work sucks in general. Remote work is of course not perfect, but its problems need to be compared against non-remote work problems..

18 hours agozb3

Remote work isn’t for everyone. Their point of view is just as valid as your point of view.

And this is my biggest complaint about arguments about remote working. People turn it into something that’s evidence-based when actually it’s a deeply subjective topic and thus different personality types thrive in different working environments.

18 hours agohnlmorg
[deleted]
an hour ago

People have painted themselves in a corner re: remote work and get wacky in discussions about it. Lots of emo, not much fact.

18 hours agoSpooky23

My point is you cannot have any fact based discussions because statistics are generalised whereas people’s ability to thrive in office or remote work depends deeply on both the company culture and the individual.

Thus it is always going to be an emotional argument rather than a fact-based discussion.

It’s like asking someone what their favourite food is. They might be able to explain why they like the dish, but that doesn’t translate to that meal being everyone’s favourite.

9 hours agohnlmorg

It’s a little more than that, because people generally won’t go to war over pizza vs tacos.

4 hours agoSpooky23

If you ever feel bad about yourself as a programmer you can go read some Rasmus Lerdorf quotes to cheer up :)

19 hours agomberning

Or work with a random programmer at a random company for a bit. We had to do some audit/estimate for a company with huge tech issues (race conditions causing data corruption, huge slowdowns with just small usage spikes etc) costing them clients/money. The company runs around $50m/year or so selling software to enterprises. Anyway; software backend written with Java/Spring, deployed/updated on EC2 manually, no automated tests (zilch). Frontends with Vaadin. Almost no processes are used, just Jira + tasks and then 'start at the top every morning'. No one knows sql anymore (Hibernate), no one knows html/js (Vaadin) and, even though most people are senior and there since the beginning, no-one has done anything high level on the job in the past 20 years or so. They have just been inside this 'ecosystem' writing code and it works. Old Java with some modern updates just to satisfy the compiler/linter (but not fully understanding why that nonsense is needed). None of the core seniors I interviewed touches computers outside of work, they had 0 tech courses since working there etc. They are all 9-5 code producing robots. I want to bet they can mostly/all be replaced today by Claude Code, of which existence, of course, they are not aware (they did chatgpt but not Codex or Copilot). We have since found so many issues in the code. Yeah, I do feel very much uplifted about my own skills after encounters like this, and these are by no means rare, i would rather say; extremely common.

Unlike OP though, I cannot be as open about these companies as we would definitely not have any clients left after.

18 hours agoanonzzzies

That sounds amazing, what you can get away with while still shipping a product and getting paid. In some way probably the engineers there are unwilling to do any automation in fear of becoming redundant, and the company is still fine with that.

Also, I am not sure how not touching computers after work is a bad thing; people can have families and other hobbies?

16 hours agospaqin

> computers after work is a bad thing; people can have families and other hobbies?

No not bad per se, but it did clearly show that, without on the job courses, why all of them are stuck in the early 2000s tech wise.

Some people start with a company and get lucky with early success and then get restricted because of that success: get new clients via existing, everyone likes it and asks for new features and without noticing it you might find yourself 15 years down the road with ancient tech and no one understanding anything current. Then you can still thrive if your clients like it... we have similar clients: a 1980s factory, another 1980s factory, a logistics app from the 1990s etc. Things deeply ingrained in some vertical, expensive but better priced than the SAPs etc of this world so it keeps going and going.

14 hours agoanonzzzies

> software development is better when you breathe the same air as the folks you work with

Ever heard of flu season? What if you have a family and don't want to bring diseases home?

> Attempts to represent ideas spatially get mutilated by online whiteboard and sticky note software.

Right... like, the Linux kernel team? Or any of the major open source key pieces of technology you use? Built by large teams that worked remotely for decades even when tools where orders of magnitude worse than the current state of the art? Some of them never meeting each other in person?

---

Remote work DOESN'T suck. YOU make it suck.

Remote work is great if you care about shipping.

Want to go for coffee or want to talk about our weekends? No thanks.

Did you see the distracting thing outside the building? No, I didn't because I don't have to go there anymore.

Is the heat too high or too low? It's your own home, just adjust it to YOUR convenience.

Worried about your pets being alone? Just be next to them. I care more about my pets than some stranger from work.

Want to be loud and flex about random stuff? Log into LinkedIn and talk to the other geniuses like you while I focus on doing my job.

Most people SUCK at drawing, suck at calligraphy and their whiteboard diagrams SUCK. Therefore, whiteboards SUCK. Unless you have great calligraphy and drawing skills, whiteboards are not helpful. You are just sad because you are not getting attention by being in front of other people looking at you.

16 hours ago29athrowaway
[deleted]
an hour ago

> Remote work eliminates a lot of problems with office work: commutes, inefficient use of real estate, and land value distortion. But software development is better when you breathe the same air as the folks you work with. Even with a camera-on policy, video calls are a low-bandwidth medium. You lose ambient awareness of coworkers’ problems, and asking for help is a bigger burden. Pair programming is less fruitful. Attempts to represent ideas spatially get mutilated by online whiteboard and sticky note software. Even conflict gets worse: it’s easy to form an enemy image of somebody at the end of video call, but difficult to keep that image when you share a room with them and sense their pain.

Every ounce of data proves this statement wrong. If you feel like you work better non-remote then do it. Don’t shill it as a panacea. I’ve been remote for 11 years now and if I wasn’t I wouldn’t have been able to take care of my family, go back to school part time, work on my health with better meals and reasonable gym hours, etc. even IF in office was better for the employer (even though all data says it’s not in terms of productivity) it is unequivocally better for the employees life to work remote as much as humanly possible.

This hot take is just simply insane. Humanity had no problem coordinating massive projects over IRC and mailing lists. It’s clear the author is a “nu-coder”.

12 hours agostuffn
[deleted]
an hour ago

> Remote work eliminates a lot of problems with office work: commutes

> Every ounce of data proves this statement wrong

There is no need for hyperbole. Because one thing we can all agree on is that remote work eliminates commutes, by definition.

10 hours agomejutoco

[dead]

6 hours agoproduktive

[dead]

19 hours agob0Ring

[dead]

14 hours agokhana

[flagged]

16 hours agoGiorgioG

[flagged]

18 hours agodeadbabe

I don't know that it is necessarily sick ... I suppose it depends what you do, how the people respond, and if you are playing a useful role in the interview process for your organization.

Tell us more?

On the positive side... Seeing how people respond to pressure (done within some bounds) might be useful information. Watching people dig deeper into their problem-solving toolkit (and even their determination and resolve) might be informative. But I have not recently reviewed interviewing research, so I don't know how strong the causal connections are between observing these things in an interview and on-the-job performance.

On the negative side: If one is primarily interested in finding flaws as some sort of intrinsically valuable thing or to boost one's own ego, these are probably hints to look closely at oneself and reflect and make sense of what is going on inside.

17 hours agoxpe

It saddens me that despite making a confession and making myself vulnerable to a wider audience, I am downvoted and flagged to hell. I won’t be discussing this any further.

2 hours agodeadbabe

[dead]