The kind of company I want to be a part of

(dvsj.in)

77 points | by ctxc 6 days ago ago

66 comments

  • jordanb an hour ago

    This is the Californian Ideology in a blog post. The implication that title and intro mean to imply is working for companies that build products that are not evil and hostile to their users.

    But the call to action is to.. embed logic in the programs to pluralize properly (in English).

    It's possible to write evil software that pluralizes words. It's possible to write beneficial software that does not pluralize words. This blog post is about the color of the bikeshed next to the torment nexus.

    • canes123456 an hour ago

      I am baffled why you are inserting good and evil into this. He just seems to want to work at companies that value craft and attention to detail. It just like the jobs quote about the back of the furniture also being attractive.

      • cj 34 minutes ago

        Ironically, I could see the author's logic being used as a justifcation to build more "evil" features:

        > Talk to me like I’m used to. Be familiar, be approachable. I want to feel like you care about helping me. Not “me” as in “all the prospective 99,99,999 users”, but “me” specifically. Users shouldn’t feel like they’ve been dropped into a cookie cutter template - a cold, hard reminder that this is clunky, soulless machinery removed from their world.

        In other words, the author wants a personalized experience. A personalized news feed. An experience that is tailored to them. (Isn't that what everyone is complaining ruined Facebook, insta, youtube, etc?)

        I don't think that's what the author actually wants. I think it's just poor framing / unclear writing.

        If the idea is "I want to work at a company that cares about its craft" -- the example they picked to illustrate that point is just odd. Whether or not a company uses a combined singular/plural form like "Uploading File(s)" is not a very good indicator of whether that company values its craft, IMO.

      • commandlinefan 18 minutes ago

        I was honestly expecting the link to be somebody's quixotic rant about software that does "good" in the world rather than serves ads and I was pleasantly surprised to see something I can actually relate to.

    • ivape 4 minutes ago

      It seems like a douchey post but it’s not. Just browsing the internet makes me regularly question how difficult it is keeping the tech industry full of people that give a shit. Software ate the world and along with it came a contingent that don’t care enough about it. The choppy first page loading, the non-smooth scrolling, the ads janking in, shifting layout and content in unpredictable ways, and finally the bombarding of intrusive ads and popups where the dev didn’t even take a few minutes to construct a sensible UI compromise (yes, we need to show ads, but can we show the ads without anal fucking the user’s eyes? Yes possibly).

      So yes, we have a real IDGAF issue in tech, and I can’t imagine this getting better because Gen Z all have a drug dealer “this just my side hustle” attitude, and Millennials will not a give a fuck because they are still pissed about the GFC. The Leetcode people don’t give a fuck because they are burnt out on Leetcode and their entire identity is based on salary and very little to do with quality of their actual work.

      There’s literally … and I mean this, there’s literally no one left to care.

  • Cthulhu_ a minute ago

    [delayed]

  • tyleo an hour ago

    I’d say overreaction.

    The real world is full of tradeoffs and I’ve seen people try to get minutia like this correct in convoluted contexts which actually broke the core application logic.

    Given the limited time we can spend on things, supporting proper plurality falls below some of my other UI priorities like proper accessibility settings.

    I don’t think plurality is bad, just low in the stack rank of things that matter.

    • jon-wood an hour ago

      If pluralisation of a status message in the UI is breaking core application logic then you've got bigger problems than the pluralisation code.

      • jordanb an hour ago

        Every code path is an opportunity for a bug that escapes validation. Plus this particular example doesn't work with i18n. It would be more complicated in that case.

        • wavemode 37 minutes ago

          The (s) alternative that the article is arguing against is even worse for i18n, so what's your point?

          • jordanb 33 minutes ago

            You'll have to look up the way i18n frameworks work, but no the "(s)" is not worse. It is far better because it's a simple string that the framework can substitute without embedded business logic trying to manipulate the individual characters in a way that only works in one language.

            • tyleo 24 minutes ago

              Yeah, I'm with you. I've worked on several i18n frameworks, including ones for AAA game titles at Microsoft.

              You can make pluralization work but the "(s)" is going to tend to work better.

              And localization isn't just an opportunity for development bugs, localizers get things wrong too. Some non-English speakers mentioned to me that some translations are so bad, it's better to use the English version anyways.

            • wavemode 13 minutes ago

              Huh? "(s)", itself, only works in one language! Other languages (and even English, sometimes) don't always pluralize by appending lettters to the end of words, so the parenthesized suffix thing very regularly doesn't even work.

              And who exactly is talking about "embedding" business logic in the i18n framework? Every serious framework I've used has supported placeholders, so at the application level you just select between singular and plural form and then the translation framework can handle arranging the words.

              e.g. `items.length == 1 ? _t("%d item", items.length) : _t("%d items", items.length)` and then within your translation files you can specify translations that rearrange the phrase, like "<noun> %d" for languages where they are reversed.

              (though usually of course, you would use much longer phrases, so that the translation is done in-context.)

    • skeeter2020 an hour ago

      I agree; there's probably higher value UI work, or something that should be more important to you above this. Examples: Have you ever run your app at 500% in high contrast with no mouse or with a screen reader? What's the happy path for most popular workflows? How many layers bury them with options and edge cases? What language support are you missing?

    • BrtByte 30 minutes ago

      Sure, not every edge case deserves top billing, but when the little things stack up, they subtly signal whether anyone cared. It's a vibe thing

    • ghosty141 an hour ago

      Especially once you get into i18n this becomes increasingly more complex for various reasons like different formats for translation programs etc.

    • clickety_clack an hour ago

      I’d like to think I do pluralization right, but sometimes it’s just that bit too time consuming because of an awkward internationalization issue or something so I don’t. There’s only so much polishing you can (or should) do before you ship. If I found that my team suddenly had a lot of time for cleaning up this kind of thing, I’d start worrying about job security tbh.

  • jasode 37 minutes ago

    >You can’t have your UI disrespecting [...] and I care too much!

    I think it just highlights that people care about different things. I've seen the "(s)" placeholder for decades in computer UIs and it's never bothered me. On the other hand, blog article characteristics that bug me is a having a title be a non-descriptive teaser with ellipsis (...) that doesn't describe the main point and not having a publication date at the top.

    But I'm not going to complain about blog articles that "disrespect" readers that way because apparently, it's ok with some writers and some readers.

    Likewise, someone using the Comic Sans font never bothers me -- but on the other hand, displaying big numbers without any thousands separators is very annoying.

    I code a lot of utilities for myself and I always avoid the "(s)" problem by re-ordering the text. Instead of:

      Uploading 3 image(s)
    
    The UI is:

      Number of images uploaded:  3
    
    That looks ok for all quantities and doesn't require tedious ternary logic everywhere :

      Number of images uploaded:  0
      Number of images uploaded:  1
      Number of images uploaded:  2
  • shermantanktop an hour ago

    This is the brown m&m theory. https://www.smithsonianmag.com/arts-culture/why-did-van-hale...

    A trivial, superficial fact is assumed to be indicative of a much more substantial concern. For Van Halen, the candy dish indicated adherence to contract terms; here, pluralization indicates the integrity and values of an entire company.

    It’s a cute idea that suggests an easy way to understand something complex. But there’s no free lunch. If you want a free lunch, you’re asking to be taken for a ride.

    • skeeter2020 an hour ago

      Van Halen was playing giant stadium shows that were massive logistical and coordination challenges and used this contract language as a canary for more important aspects like the scafolding setup. If they didn't read the catering closely, did they also skim the electrical schematics? Their concerts were perfect scenarios for heavy-weight process, defined procedures and scientific management. A lot of software is punk rock DIY; get something of value out there asap and then iterate. If you don't release until your pluralization is perfect you've waited too long.

      I think we're in agreement, just highlighting these are very different approaches to essentially management at different phases of the project lifecycle. Van Halen probably didn't have that rider in their contract at their first show.

      • jordanb 38 minutes ago

        This is the excuse Van Halen used much later after to explain his extreme princess behavior.

        I have never bought it.

        If you want to make sure the venue is set up right you probably need to send an electrician to check on it before your tour arrives. The M&M thing may show if the venue operator read your contract not if they bothered fulfilling the parts that would be expensive (upgrading a building's electrical is expensive, making an intern pick the brown M&Ms out is not).

        It probably didn't even prove that the venue operator read your contract. More likely the first time Eddie stormed out after seeing a brown M&M word would get around to everyone that "Eddie will flip his shit if there's a brown M&M so get rid of them. Yes, Seriously."

    • codelikeawolf 39 minutes ago

      My sister has worked as the operations manager for a large concert venue for several years and she has some great stories about contract riders. She regularly needs clarification on whether she needs to provide what preposterous thing they ask for. I think Lady Gaga asked for a goat, which ended up being in there to verify she read the whole thing, so no goat procurement was necessary. However, Sharon Osbourne (i.e., Ozzy's wife) didn't want to see walls. My sister needed to have production hang up curtains everywhere in the dressing room. Some of these people have become completely detached from reality.

      As a result of this, over the course of her career, my sister has accumulated the weirdest contact list I could imagine. If I needed a bouncy house, chainsaw juggler, Russian interpreter, and a blimp, she could probably set that up in 30 minutes without ever needing to search online.

      • flatline 9 minutes ago

        Missed opportunity to procure a goat. When I’m doing project management like this, if I ever have a minute to come up for air between getting all the essentials in place, I will absolutely prioritize little things like that for my own amusement and, hopefully, that of the client. I would at least have gone as far as lining up a supplier, getting a quote, and letting the client know we’re locked and loaded with a goat if they really want to pull the trigger.

  • zkmon an hour ago

    Not for me. Exccessive customer obsession puts me off as customer. Don't try to read too much into me. Don't try to sell too much. Don't try to please me too much. Don't think about me too much.

    Instead, think about the stuff you are offering. Treat it as if you are building it for yourself, and not for selling. Build it the way your like most. Sound as if you don't care about selling. Be proud of it. Get off of the sales pitch and pleasing talk.

    Stay equal with your customer regarding who should please whom. It's an exchange of value between equals. No need of one pleasing the other too much. Customer need not have the upper hand. They should be just as desperate to buy, as you are for selling.

    If selling is seen as a win for the seller, then it should always be a loss for the buyer, which is not true. Once you stop seeing it as win, you will stop this overreaction.

    • nickelcitymario 29 minutes ago

      I feel like I'd agree with your comment if it was in reply to an entirely different article.

      As in: I agree with your sentiment and ideas. Out of context, you're bang on correct.

      But I don't think paying attention to details (like pluralization) is an indication of obsession with the customer, at least not for me. It's about caring about the craft.

      When I'm building something for my own use, I care about every aspect of it. I care about the unseen parts. I care about the process. It brings me satisfaction. And when I'm buying something, I like to know that the person who made it cared as much about their craft as I do.

      I don't consider than pandering. It's respect: Respect for the craft, for the craftsperson, and for the end recipient/customer.

      But maybe I missed something. What was it about the original post that felt like excessive customer obsession? Genuinely curious and open to being mistaken here.

    • robofanatic an hour ago

      > Instead, think about the stuff you are offering.

      This is exactly what the author is doing. Paying attention to detail. Not upselling you anything. He is not getting any direct ROI for doing that.

      I recently hired a contractor to clean ducts in my house. He was really nice guy, while his partner was working, he chatted with me about how their carpet cleaning service could make my carpets look like new, and even pointed out a few spots in the kitchen where grout cleaning might help. He was a great salesperson and very personable but when they finished the duct cleaning, they left a bit of debris behind. It wasn’t a big deal, but was enough to make me forget all the upselling he did before. Just goes to show that a little attention to detail can make a big difference. Next time I might shop around or may hire them again only if they give me a much better price.

    • BrtByte 28 minutes ago

      Still, I think the original article was less about salesmanship and more about craftsmanship

  • abraxas an hour ago

    Number "two" in Polish (depending on context): dwa, dwoje, dwie, dwóch, dwiema, dwom, dwojga, dwojgu, dwójka, dwójki, dwójkę, dwójką, dwójce, dwójko

    So that's just my mother tongue. It think your problem is a bit more complex than (s).

    • maratc an hour ago

      I think it's more about inclination of the words that can't be replaced with a number.

      In English, it's easy:

         * 1 *file* sent
      
      But:

         * 2 *files* sent
      
         * 12 *files* sent
       
         * 21 *files* sent 
      
         * 16,777,221 *files* sent.
      
      How does Polish go about that?
      • abraxas 19 minutes ago

        1 plik wysłany

        2 pliki wysłane

        12 plików wysłanych

        21 plików wysłanych

        BUT

        22 or 23 or 24 pliki wysłane

        BUT again

        25 plików wysłanych

        16'777'221 plików wysłanych

        • maratc 13 minutes ago

          Is it still "16'777'222 pliki wysłane"?

          • abraxas 4 minutes ago

            yeah, the last digit matters. But sometimes the second last as well because of teen numbers:

            22 pliki wysłane 12 plków wysłąnych

    • nickelcitymario 25 minutes ago

      Holy moly, and I thought French (my mother tongue) was complicated due to conjugation. I'm fascinated by what possible context could call for this many variations on how you spell/pronounce a number.

      Any chance you know of a good article on this? (I could ask ChatGPT, but I'm trying to let go of that crutch.)

      • abraxas 7 minutes ago

        I'm not a linguist so I can't send any articles that explain the origins of this mess. But here are actual examples of usage. Of course I don't consciously think about when to use the right conjugation. I just know it by heart and it's second nature but I can only give coherent rules to some of them:

        dwa ptaki (two birds)

        dwoje ludzi (two persons)

        dwie dziewczyny (two girls)

        idę z dwiema dziewczynami (I'm walking with two girls)

        dałem kwiaty dwom dziewczynom (I gave flowers to two girls)

        kanapa dla dwojga (a sofa for two - gender unspecified)

        dałem śniadanie dwojgu (I made breakfast for two others)

        dwójka to słaba ocena (two is a poor grade)

        dwie dwójki to razem czwórka (two twos are four altogether)

        dostałem dwójkę z Fizyki (I got a two in physics)

        z dwójką przyjaciół poszliśmy do klubu (we went to the club with two friends)

        w autobusie dwójce siedział pijany facet (on bus number two there was a drunk fella)

        O, dwójko, nie wracaj już do mojego dziennika (Oh, two, don’t come back to my gradebook again)

    • kachnuv_ocasek an hour ago

      Same argument applies. You, as the developer, always know in what context the text appears. Whether it's "dwa zdjęcia przesłane" or "dodano tagi do dwóch zdjęć".

      • abpavel an hour ago

        > You, as the developer, always know

        Definetely not "always".

  • blux an hour ago

    Could not agree more.

    As a child in the 80s I read a programming book (can't remember the name anymore unfortunately) where the reader was encouraged to write software that is always friendly and human when it comes to communicating with the user. For example, 'Please input a number:' instead of 'Input a number:'. But also exactly the thing the writer talks about in the article; do not be lazy when it comes to pluralization.

    I get nostalgic remembering that era in computing.

    • lowercased an hour ago

      When you interacted with a 'computer' once or twice a week, perhaps... seeing "please" is ... neat? A 'wow' factor ("wow! It knows English!")?

      Peppering input fields and forms and folksy welcoming language scattered thoughout might be useful now and then, but for systems where people are using it repeatedly hourly/daily/weekly... it's (at best) clutter and noise.

  • cjs_ac an hour ago

    For non-technical users, the user interface is the program. To them, there's nothing beneath the shell. My last boss didn't like Macs because his PowerPoint presentations rendered differently on them compared to Windows. There are millions of real people with consequential positions in important organisations who think like this.

    • sevensor 39 minutes ago

      Getting your program to render the same on different platforms takes a lot of work the user will never see, and that goes double if you actually want it to behave the same. There are some very deep problems you have to work through, like what behaving the same and rendering the same even mean. Same window decorations? Same menu layout? Same dialog boxes? How are you doing font rendering? How much do you embrace platform defaults versus steamrolling over them in the name of uniformity?

      • cjs_ac 23 minutes ago

        You're not wrong, but making these sorts of arguments was the start of me being managed out of that company.

  • commandlinefan 20 minutes ago

    I feel the same way about wasteful software. I've spent most of my career working for people who would rather I sit idle and do nothing at all than "waste" valuable programmer time trying to optimize our software. We have websites that load slowly, downloading gigabytes of unused and useless scripts that nobody has the courage to remove because nobody remembers why it was put there in the first place.

  • barumrho 22 minutes ago

    “이/가” is the Korean version of this. It depends on the sound of the word that precedes.

    I still remember seeing it when I first started using Windows 95. As a kid, I was amused that it didn’t know which one to use. Really, I didn’t even know that I was making that choice (and couldn’t say what the rule was).

    If anyone is interested about it, this page explains https://www.90daykorean.com/i-ga-grammar/

  • shaan7 an hour ago

    Qt has provided a solution for this since its early days: https://doc.qt.io/qt-6/i18n-source-translation.html#handle-p...

  • angiolillo 38 minutes ago

    It's a tradeoff, like all things.

    As a UX craftsman I love projects where I can "sweat the details" and refine not just wording but typography, padding, visual alignment, layout, edge cases, colors, workflow, etc. And where the back-end, QA, doc teams are similarly able to hone their work to perfection. Products like that are a delight to create and to use.

    But as a UX professional I know that this isn't always Pareto optimal. Sometimes your user, customer, and business are better off if you swallow your pride and deliver an imperfect solution now instead of a better solution in the future, and knowing when and where to strike that balance is a sign of maturity, not disrespect.

  • m_w_ an hour ago

    Glad the snippet is == 1, this problem drives me extra insane when it doesn't handle the zero case. Not only has my upload failed for some mysterious reason, I have successfully uploaded zero item!

  • 1dom an hour ago

    There's so, so many different reasons in the real world as to why/how details like that end up in front of the customer.

    Is OP happy to work for Satan as long as he appears grammatically accurate, polite and concise?

    Alternatively, OP is a nightmare to work with because every single other role in the company has to do things in exactly the way the engineers want, otherwise they're careless morons.

    • mattlutze an hour ago

      OP is not being literal. Satire and the interpretation of it are important for a healthy and nuanced world view and discourse.

      • 1dom an hour ago

        Sorry, I'm being dumb then. Could you please spell out what I'm supposed to take away from the article? I really can't see any satire in here.

    • cluckindan an hour ago

      Satan is very underappreciated as an employer.

      • 1dom an hour ago

        I'm sure he pays well too!

        • rkomorn an hour ago

          Doesn't he always barter for your soul?

          • 1dom 43 minutes ago

            I'd guess he barters for soul(s).

  • Blackarea an hour ago

    I literally couldn't care less. You can call it '1th of April' for all that i care if the actual functionality you offer is clean and fast I'll gladly accept!

    • commandlinefan 12 minutes ago

      I get where the author is coming from, but having grown up in the 80's, I always thought "1 item(s)" looked slightly _more_ professional since it followed the way printed documents were usually produced.

  • strickjb9 31 minutes ago

    I know this is besides the point but translation libraries are perfect for this even if you aren't creating a multilingual site. You define your singular/plural forms in one place.

  • thewisenerd an hour ago

    given the image in the post is specifically of the azure portal, the following is a very real notification message from the same:

    Deleting load balancer '[object Object]'

  • lionkor an hour ago

    > a cold, hard reminder that this is clunky, soulless machinery

    This is where my view differs fundamentally. If I get another "let's set up your account!" text in a soulless, cold software, I am throwing my laptop out the next window.

    It's a machine. It needs to communicate information to me. A large part of the AI boom is that we can now pretend that it's not a machine by using enough compute power to probably solve every problem ever, just to say "Of course -- you're so right!".

    We made sure to write software so inefficiently and badly that you can barely tell how powerful modern computers are.

    Just another little layer, one more branch, one more step between the user and the hardware -- just buy more ram. Buy a better CPU. They now have double the cores, you hear?

  • SirensOfTitan 31 minutes ago

    While I don’t think proper pluralization is indicative of anything outside of real world time constraints, I am a fan of these kinds of tacit signals.

    Last week, my wife and I toured a school for our daughter. The school gave us these pretty notebooks with a blackwing pencil, saying that they “take writing seriously here.” I noticed that the students, however, did not use blackwings but cheap low quality yellow pencils. This signal prompted me to pay closer attention, and I found half a dozen things that affirmed the bad feeling I had about the place.

    It’s a simple rule, but in the era where everyone is trying to sell me, I use Bill Hamilton’s Say Mean Do rule from his “Saints and Psychopaths” about finding real spiritual mentors. Broadly: saints say what they mean and do what they say. Unfortunately it’s probably just as hard to find tech companies who are honest as it is to find a true spiritual mentor. B2B SaaS sales cycle is usually just checkbox hunting and CYA.

  • codegeek 33 minutes ago

        (minutes == 1) ? "minute" : "minutes"
    
    I really care about this one. One option I suggest is to use minute(s) etc that can take care of both 1 and higher numbers.

        1 minute(s) works
  • BrtByte 33 minutes ago

    The quiet tragedy of "almost good" software

  • mantas an hour ago

    Wait before author finds out there're languages with more forms than singular and plural...

  • techblueberry an hour ago

    +1! I really appreciated this post(s)

  • annodomini2019 an hour ago

    Always thought you kinda have to do this to create a product that can even be translated considering languages like French where plurals take many forms.

    • ebiester 40 minutes ago

      That was my first thought as well, but interfaces that take care of pluralization with an i18n framework can handle all of these.

      It just takes longer and is at the expense of another feature. In truth, it mostly takes more skill - once you have that skill, it's another 5 minutes. There are a few edge cases, but you largely have the necessary context to translate a string. You have to translate the string in its entirety instead of relying on composition of translated chunks. (This is already best practice.)

  • cynicalsecurity an hour ago

    False title.