23 ms·
Confessions of a Software Developer: No More Self-Censorship
- zb3 11mo ago> 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..
- hnlmorg 11mo agoRemote 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.
- Spooky23 11mo agoPeople have painted themselves in a corner re: remote work and get wacky in discussions about it. Lots of emo, not much fact.
- hnlmorg 11mo agoMy 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.
- Spooky23 11mo agoIt’s a little more than that, because people generally won’t go to war over pizza vs tacos.
- hnlmorg 11mo agoThey probably might if they spent 40+ hours a week eating it and their bills, home, and family’s wellbeing, all depended on how well they eat pizza vs tacos. But comparisons aside, some people will just argue over anything. Such as the meta debate we’re having right now over the stuff people will argue about. ;)
- Spooky23 11mo agoTouche!
- zb3 11mo ago> Lots of emo, not much fact. People not wanting others to indirectly force them to relocate, work additional unpaid commute hours and pay for it is not "emo". It's a critical fight.
- tpmoney 11mo agoAnd people not wanting others to indirectly force them to subsidize their employers by devoting unpaid portions of their limited living space, utility bills and personal equipment to their work is also a "critical fight". Remote work inherently blurs the line between "company property" and "personal property" in ways that can impose heavy burdens on employees. Confidentiality and privacy requirements might require employees to allow spyware laden devices on their personal home networks. It might require them to create secure, isolated parts of their house that lock out other family members. It might require them to allow surveillance devices into their homes. Even if your employer buys you a secure safe or locking cabinet to keep confidential materials in, you still have to devote some of your limited floor space to having that item in your space, and you become liable for ensuring that item is secured in ways that you don't have to worry about when confidential materials are stored at a central office. Everything in life is a trade off and remote work is no different in that respect.
- iteria 11mo agoThat sounds like a "them" problem. The cost of gas and the time I don't have because of commuting is material. I used to lose 2-3 hours of every. Single. Day. To commuting. All because the places where I can find jobs were either too expensive for me to afford to live in or, get this, I didn't want to uproot my family every single time I got a new job. The cost of my utilities? Listen, I don't know know much electricity costs where you are, but the cost or running an extra computer is pennies a day. The cost of internet is set for me. We might talk about the increased cost of heating and cooling, but I was never one of those people who turned their system off when gone because that doesn't make literally any sense with my utility's time based pricing. It's literally cheaper to let it run as it is than than do that. As for space and confidential items. I'm not sure ahat to say. I don't have thieves coming in and out of my house and I have a password good enough to defend the casual nosy child or relative. I have an office now because I have a house, but I have worked remotely in smaller spaces and it was never any problem. At least not compared to commuting 1 hour being, although I have commuted up to 2 hours on bad traffic days which were not particularly rare occurrences. And this is just have it is in all the cities I have lived. Perhaps not all cities, but the two metropolitan areas I have lived within and in the suburbs of. Living within the city didn't even guarantee me a reasonable commute. If the trade off is a company getting a corner or a room I wasn't using anyway plus a few dollars of electricity subsidy and I get several hundred dollars in my time measure by my pay rate not commuting plus a couple dollar in not spending it on gas, I am happy to trade that. I'm also capable of putting my computer away and safely like literally anything else I own. I also don't worry about the isolation that people mention (although not you here) because I have a vibrant social life. As someone who was never the typical demographic of the field, I have neve depending on socializing with my coworkers in office for social fulfillment. I still somehow maintain the correct level of social comraderie via digital means. Remote work doesn't mean not interacting with your coworkers at all.
- deleted 11mo ago[deleted]
- b0Ring 11mo ago[dead]
- NikxDa 11mo agoI 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.
- gblargg 11mo agoThe "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.
- cortesoft 11mo agoI 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.
- tommica 11mo agoI need to figure out how to be as open as the author is - it comes across as fricking amazing!
- akoboldfrying 11mo agoRefreshing 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.
- mberning 11mo agoIf you ever feel bad about yourself as a programmer you can go read some Rasmus Lerdorf quotes to cheer up :)
- anonzzzies 11mo agoOr 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.
- spaqin 11mo agoThat 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?
- 11mo ago
- kens 11mo agoMy 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.
- mulquin 11mo agoContinuing the confessions: I do php.net/<function_name> at least twice a day
- 1718627440 11mo agoIs 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.
- nicoburns 11mo agoIt's the main benefit of Rust ;) (obviously it's not but it is super nice that main in Rust is just:) fn main() { }
- stavros 11mo agoWhat, `def main():`? Or do you mean the __name__ == "__main__" thing for distinguishing whether the code was imported?
- kens 11mo agoI 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.
- stavros 11mo agoI 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.
- deleted 11mo ago[deleted]
- felipelalli 11mo agoHere’s a great idea for a good opportunist: A “Confessions of a Software Developer” website where devs can come in and make anonymous confessions.
- SpecialistK 11mo agoThe 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)
- striking 11mo agoI 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.
- Kerrick 11mo agoThat 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.
- javawizard 11mo agoGood 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.
- javawizard 11mo agoWell 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 https://lobste.rs/~7u026ne9se
- rolandog 11mo agoLoved 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.
- deadbabe 11mo ago[flagged]
- cindyllm 11mo ago[dead]
- xpe 11mo agoI 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.
- deadbabe 11mo agoIt 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.
- xpe 11mo agoI personally appreciated your comment. I'd guess that enough people flagged it to get moderator attention, but I'm guessing it was a small number. If so, I think this reflects a strong negative preference of a few. One guess would be that the word 'torture' triggers people, even when it has nothing to do with error-prone medieval-style confession optimization. But anyway, I think your take-away makes sense. Different venues offer different kinds of community and support (or brow-beating). Hopefully you find other places for that -- or, if this is a big enough problem for you and you have constructive ideas, write 'em up.
- ajs1998 11mo agoRemote 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.
- Kerrick 11mo ago> 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.
- GiorgioG 11mo agoI’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.
- _ea1k 11mo agoEvery 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.
- deleted 11mo ago[deleted]
- layer8 11mo agoElectronic chat is really not the same as face-to-face communication. Neither are video calls.
- sodapopcan 11mo agoFor me, electronic chat is better most of the time.
- layer8 11mo agoEveryone is different. I vastly prefer email over chat, but also wouldn't want to live without the occasional face-to-face.
- sodapopcan 11mo ago"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.
- theshrike79 11mo agoThe difference between email and chat is 100% psychological. It's just text over a transport method. Some people consider email something you MUST answer ASAP, others can have 9000 unanswered emails without an issue. They'll get around to it. And with chat, some think it's real-time and expect an answer in seconds, others will check $chat_app a few times a day like email and reply. I personally prefer chat, because you can use it asynchronously, BUT you can escalate to near real-time if everyone is present at the same time. You can have an actual "conversation" via chat - you can't do that with email.
- sodapopcan 11mo agoLike 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.
- Kerrick 11mo agoI 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.
- anonymous908213 11mo agoAwfully 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.
- Kerrick 11mo ago> 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.
- crystal_revenge 11mo ago> 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.
- el_benhameen 11mo agoNot 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.
- Kon5ole 11mo agoI think Uncle Bobs advice is mostly bad and am afraid to admit it because it’s like a (cargo) cult now.
- GiorgioG 11mo agoAdd most of what Martin Fowler said to that list.
- seattle_spring 11mo agoAgreed. The quote from him in the article reads like a caricature of a comically overzealous SWE.
- formvoltron 11mo agoreading 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.
- Trasmatta 11mo 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
- cedws 11mo agoI 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.
- TheRoque 11mo agoMy 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.
- Kerrick 11mo agoFor 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.
- onjectic 11mo agoWhere are you conversing online that this is a concern?
- Kerrick 11mo agoMy 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.
- deleted 11mo ago[deleted]
- 11mo ago
- GiorgioG 11mo ago[flagged]
- threecheese 11mo agoWhat 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?
- bigstrat2003 11mo ago> 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.
- pickpuck 11mo agoThe 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.
- deleted 11mo ago[deleted]
- ryanjshaw 11mo agoWe’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.
- Aeolun 11mo ago
- 29athrowaway 11mo ago> 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.
- deleted 11mo ago[deleted]
- sedatk 11mo agoI 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/ https://ssg.dev/are-interfaces-code-smell-bd19abc266d3/
- another_twist 11mo agoThat 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.
- sedatk 11mo agoObviously, 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.
- tpmoney 11mo agoAs 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.
- nirui 11mo ago> 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.
- satvikpendem 11mo agoThat sounds akin to like body doubling, a method used by those who have ADHD.
- card_zero 11mo agoIs there also an opposite effect? I concentrate best in solitude, preferably somewhere like an abandoned lighthouse.
- bigiain 11mo agoI'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".
- Arubis 11mo agoI 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.
- khana 11mo ago[dead]
- canyp 11mo ago> 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.
- tomyedwab 11mo agoWell 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.
- socalgal2 11mo ago> 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.
- embedding-shape 11mo agoAlternatively, 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.
- begueradj 11mo agoUnlike the author, Youtube and such are full of coding gurus who know everything and whatever you do is never the right way.
- 11mo ago
- senderista 11mo agoIt’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.
- deleted 11mo ago[deleted]
- optymizer 11mo agoI 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.
- vict7 11mo agoI 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.
- 000ooo000 11mo agoI 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..
- imetatroll 11mo agoI 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.
- anshulbhide 11mo agoThe 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.
- stuffn 11mo 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”.
- mejutoco 11mo 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.
- deleted 11mo ago[deleted]
- tpmoney 11mo ago> Humanity had no problem coordinating massive projects over IRC and mailing lists. Humanity has plenty of problems coordinating over IRC and mailing lists. That we have succeeded some of the time does not imply we would succeed all the time or that there aren't significant downsides. These discussions often bring up Linux as an example and sure, the remote development of the Linux kernel is indeed a testament to what you can accomplish with remote teams and strong coordination. On the other hand, we could note that despite how successful that remote coordination has been, the (arguably) most successful Linux OS business (Red Hat) decided they needed offices and in person work long before they were owned by IBM. Likewise the SuSE Linux folks have offices around the world. There must be some benefit they're getting from that to have decided to take what was a fully remotely coordinated project and centralize some of it. > 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. That might be true for some people, but it is not true for all. If you'd asked me before COVID if I wanted a 100% remote job, I would have told you yes. I'd even applied for a number of (the far more limited at the time) remote jobs like Gitlab. And then COVID hit and I spent 2-3 years working from the single spare 10x10 space in my home. In that time I lost precious living and hobby space to having a dedicated working location (approximately 20% of my home). I increased my personal utility costs without compensation. My mental state deteriorated due to a lack of mental and physical separation from work and home. I found it far more difficult to accomplish my work due to a number of at home distractions. I struggled heavily to keep up with things happening across my team as it was difficult to both keep up with the async chat discussions without also burning massive amounts of time and energy context switching. I found that I personally need some form of a "commute" in order to switch my mental state from home to work and back again. I had to allow corporate devices filled with corporate spyware on my personal network. I had to isolate parts of my house from my spouse at various times. I had to allow strangers and colleagues a video view into my personal and private home. Working 100% remote was unequivocally worse for me as an employee. By contrast, now that I'm back in the office most days, I have an employer provided dedicated working space. I have free coffee, tea and fruit. I have a space where I can be focused on working on something and still keep an ear on other things happening within my team, allowing me to context switch when my attention is needed without needing to switch just to find out if my attention is needed. I have a free gym on site that allows me to exercise with equipment that I don't have at home and wouldn't have the space for even if I could afford it. I don't have to allow corporate devices on my home network anymore. I have a cafeteria which serves reasonable and healthy food at reasonable prices when I don't feel like making my own lunches. I have access to high quality and private video conferencing systems when I need to coordinate with other remote individuals and I no longer have to allow strangers visibility into my home in order to conduct interviews. I get to eat meals with co-workers and colleagues and have social engagement during my breaks. I can get away from home distractions and more easily focus on the work I have at hand. I have a reasonable commute that's just long enough to allow me a mental switch without being oppressively long, and takes me past a number of locations that I would have needed to go to any way each week. Which isn't to say it was 100% bad. To this day I have a hybrid situation which affords me benefits that I would not have with a 100% in office position, and for which I am eternally grateful and fortunate. I also recognize that I work for a very good company that provides a number of perks that aren't available to everyone who works in an office. But that's the point. In office work doesn't mean just one thing, and neither does remote work. Both are highly subjective experiences and to say that remote work is "unequivocally" better for everyone is just wrong.
- amitk2405 11mo agoReally 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.
- victorbuilds 11mo ago20 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.
- devnull3 11mo agoThe 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.
- Esophagus4 11mo agoAbsolutely. 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.
- aDyslecticCrow 11mo agoAfter 2 months working at a new department, i awkwardly asked my boss what the department acronym stood for. He stared at me confused, and couldn't figure it out; hes worked there for 30 years. Technology isn't intuitive and there ares loads of things to remember. Sometimes the dumb question is needed by more than the person that asked.
- tomwphillips 11mo ago>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.
- zwnow 11mo agoI 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.
- dannersy 11mo agoI 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.
- iparaskev 11mo agoWhat 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)
- qweiopqweiop 11mo agoNot OP, but Tuple is pretty great.
- iparaskev 11mo agoIndeed 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.
- motbus3 11mo agoAlso 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
- abhashanand1501 11mo ago> 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.
- imtringued 11mo ago100% 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%.
- abhashanand1501 11mo agoThere 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%.
- mystifyingpoi 11mo ago> The getters and setters are not called anywhere in application logic It's common that getters and setters will be called by serialization library. The fact that they are "grey" in IntelliJ doesn't matter.
- redhale 11mo agoOn 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.
- dannersy 11mo agoI 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.
- ffsm8 11mo agoA 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.
- burnt-resistor 11mo agoI'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.
- deleted 11mo ago[deleted]
- deleted 11mo ago[deleted]
- produktive 11mo agoThere is a weird pressure in our industry to pretend we are walking encyclopedias. I’ve been doing this for years and I still have to look up basic SQL syntax or regex patterns if I haven't used them in a month. The skill isn't memorization; it’s knowing what is possible and how to find the solution quickly.
- forinti 11mo agoI 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.
- zvmaz 11mo ago> It's a shame No, it's not. This goes against the whole thread and the article posted.
- TonyAlicea10 11mo agoThis 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”.
- time4tea 11mo ago100% 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.
- localhostinger 11mo agoI 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.
- Fruitmaniac 11mo agoI admit I still don't understand Kotlin generic types. Or most of SOLID.
- wwalker2112 11mo agoI'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.
- DrammBA 11mo ago> 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
- ozim 11mo agoThere 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.
- snovv_crash 11mo agoPutting 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.
- inetknght 11mo ago> 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.
- tpmoney 11mo ago> Remote work is way better than in-office work. Remote work is different than in-office. And it's better for some people and worse for others. For example, while I personally find it useful to be able to type out an example when talking to someone about things, I also find that in order to get things done effectively at home, I have to ignore the notifications (or will ignore even if they're not explicitly ignored) when I'm "in the zone" as it were. The problem with this is that someone might have asked a question that I have the answer to, or even asked me a question directly, or someone else on my team may have been going down a rabbit hole that I could have stopped them from going down. But because using a chat system inherently requires context switching and your full attention, the only way to be in the loop is to be continually breaking out of where you are to go look at chat. By comparison, in the office with my team around me, I can keep one ear open to the conversation that's happening in the air around me. My screen, my literally single focus within the computer and my fingers can all be occupied working on something, and I can use my additional sense of hearing to keep up with other things going on. When someone needs me specifically, they can (with varying degrees of forcefulness) grab my attention, where as online they have one and only one way, and it has the same priority as any other notification both in my conscious and unconscious mind unless I specifically read the notification (and again, context switch). Video calls still to this day suffer from latency issues. We all, continually have the "What about - sorry - what if - sorry you go - do you want me to go?" conversation in video calls. That's objectively a worse experience than just having everyone in the same room. Even when people in the room start talking over each other, that can be resolved much faster in person than on the video call. It's also really easy to get into the habit of not paying attention in conference calls/video calls. Because of the scheduling issues, remote work tends to include a lot more "just in case" invitations to meetings and discussions. Sometimes you really do need to be there, other times you don't. So you often get courtesy invites, and you might go, and while you're listening you might do that "identifying the ancillary information", or just keep trucking on whatever you were doing before the call started because you can just listen in. And slowly over time you and everyone else starts to build up the habit of not paying attention at all. It takes conscious effort and specific behaviors to not let yourself get distracted by the big distraction box sitting in front of you while you're having your meetings. There's a reason we generally consider it rude to be on your phone or computer in an in person meeting without specific need. Perhaps more telling though is the fact that even remote work people acknowledge the importance of having dedicated working space. Even if you don't have other people in the space with you, almost everyone can agree that having dedicated space for working is important. But remote work puts the burden of paying for and subsidizing that space on each individual employee. For some of us, that's not a significant burden and for others, it's quite significant. I'd also ask if 100% remote work was objectively better for all people and all things, I'd ask why co-working spaces exist? Why do remote workers congregate in coffee shops? Why, even though the internet and online communities are "remote first" groups, do we still have conferences, meet-ups and conventions? Why do we bother with these expensive and difficult to coordinate in person gatherings if everything we would do with them we could do better remotely? In the end, remote work isn't one thing, it's many different things for each individual person and how you experience it is highly subject to your personal circumstances and your work environment as a whole. It should be entirely unsurprising that people are different and experience remote work differently and that as a result, plenty of people will genuinely prefer working in office to working remotely.
- throwaway150 11mo ago> 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://archive.md/q8htc https://lobste.rs/c/mejg0v https://lobste.rs/c/mejg0v I do not see personal attacks from either side. I see a normal debate with some snark now and then, 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. It looks like a normal debate, very prolonged, but a normal debate until the author gets banned: https://lobste.rs/~7u026ne9se https://lobste.rs/~7u026ne9se I don't understand why they get banned though. I see no bad interaction from either side. A moderator rebukes the OP for starting a fight: https://lobste.rs/s/gkpmli#c_mejg0v https://lobste.rs/s/gkpmli#c_mejg0v I don't understand this either. Both sides were equally forceful in the debate. But the debate was always civil. Yet only one side receives a rebuke. The whole incident seems strange to me. More weirdness: https://github.com/standardebooks/tools/pull/828 https://github.com/standardebooks/tools/pull/828 https://github.com/standardebooks/tools/pull/829 https://github.com/standardebooks/tools/pull/829
- vacuity 11mo agoYeah, I'm honestly quite confused about the whole situation. There probably was some toxicity behind-the-scenes (maybe after the initial thread), but from who, I don't know. I think maybe the thread seemed polarized in everyone's minds and so it became so in their actions.
- ipsento606 11mo agoI would say something like 95% of the code I have been paid to write as a software engineer has 0% test coverage. Like, literally, not a single test on the entire project. Across many different companies and several countries, frontend and backend. I wonder if I'm an anomaly, or if it's actually more common that one might assume?
- tcdent 11mo agoOnce you realize that automated testing gives you a level of confidence throughout iteration that you can't replicate through manual interaction (nor would you want to), you never go back.
- ReptileMan 11mo agoWay more common. Tests are at best overrated. And doing them properly is big PITA. The first thing is that the person writing the tests and the person writing the code should be different. And our languages are not really suited for the requirements of testing. They can and do save your ass in certain situation, but the false security they provide is probably more dangerous.
- almost 11mo agoThis sounds very "the perfect is the enemy of good". Tests don't need to be perfect, they don't need to be written by different people (!!!), they don't need to cover 100% of the code. As long as they're not flakey (tests which fail randomly really can he worse than nothing) it really helps in development and maintenence to have some tests. It's really nice when the (frequent) mistakes I make show up on my machine or on the CI server rather than in production, and my (very imperfect, not 100% "done properly") tests account for a lot of those catches. Obviously pragmatism is always important and no advice applies to 100% of features/projects/people/companies. Sometimes the test is more trouble to write than it's worth and TDD never worked for me with the exception of specific types of work (good when writing parsers I find!).
- ReptileMan 11mo ago
- lisbbb 11mo ago[flagged]
- tomhow 11mo agoIt's understandable to feel aggrieved about your career, but this comment seems like a broad-ranging speech about a whole lot of different things that have annoyed you over the years, only loosely relevant to the content of the article, and with multiple instances of flamebait woven through. Please avoid commenting like this on HN. We need comments to be on-topic and to avoid inflammatory rhetoric. We've asked you before to follow the guidelines. Please remind yourself of them and make an effort to observe them if you want to keep participating here. We have to ban accounts that break the guidelines repeatedly. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- bibimsz 11mo agonothing about h1bs and outsourcing to india?
- standarditem 11mo agoI work with a very smart guy who opened my eyes to digging until you understand. He is unafraid to look like he doesn't understand something and always willing to just ask the next clarifying question. It takes a lot of self-confidence and patience to keep asking questions and learn in public.
- venturecruelty 11mo agoI thought this was going to be, like: "here's why my manager sucks", and not "I wish I wrote more Ruby". Also, I'm sorry, but broad statements like "remote work sucks" are not confessions, they're statements of a preference specific to the author. I love remote work, personally. I love being able to do laundry during the day, or run an errand. I love not breathing in the same COVID air as other people, or having to listen to them have no social grace while they scream into a microphone in a room with no walls.
- fud101 11mo agoI got distracted and viewed the author's other posts, especially the .NET and Blazor posts. Imagine my surprise when I got through both, didn't see an update since March when he wrote them and then finally finished the confession post. That explains it. I was really interested in how he'd find the Lock book and Blazor itself.