I strongly disagree with this "both sides are the same" BS. One side has made it illegal to refer to Russia's invasion of Ukraine as a war, the other has not. Yes, it's virtually impossible to reports news without some bias affecting that presentation. But it's a disservice to the world to claim that those are even vaguely the same thing.
HN user
salixrosa
Thanks for the reading recommendation! Learning about the Cynefin framework and thinking about those kinds of problems led me to James Scott and to Hayek, but I haven't come across Sanford's work before.
Sadly, from what I've read the commission-based approach often leads to worse long-term results, especially in software engineering. It depends on the kind of work, of course. The metric I use (and in this case I have no idea how others look at the problem) is the number of decisions the person has to make, especially having long-term effects or effects on other parts of the company. It's hard to make the right choice for the org when you stand to make a bigger chunk of money right now from the other option.
I don't really have enough information on the specific's of OP's job and what they're doing with their spare time. Reading tech books sounds like learning to me, but otherwise I don't know.
I think that it's really difficult for a lot of people to see the value they're providing outside of the proper business tasks they're assigned, and once there are tasks assigned to fill up all the time, everything breaks down. It doesn't matter if your task is something as irrelevant as "provide documentation regarding this vendor relationship," once it's on the board it can't be dropped and so you're no longer available to try the new tool people are looking for feedback on, or whatever.
The other thing doesn't even have to be high-priority, but if you're at a large enough organization, there are lots of things you'll realize can't be done well because too many people need to be involved, even if it's just a little bit of time. My org can't make any movement on, for example, API clients or API documentation because there are lots of different needs, but by the time you've gotten through the initial conversations it's a six months later, because people weren't available. There are many efforts we can't get done because that effort isn't priority for the team's involved, but requires time from people on those teams.
Ideally, of course, we try to minimize those things. But I've yet to hear of a sizeable org that has none of those kinds of things.
This sounds like it might be good thing for the company. Having employees who have extra capacity is incredibly important for an organization that wants to get things done; if you're constantly hard at work on something important, when something else comes up (someone has a question, there's a bug or an outage, whatever), you either have to delay the thing you're already working on, or delay the thing that came up. This tends to have a cascade effect on most kinds of work, locking up all your people resources.
Plus, those other things you're doing sound like they overall, in the long-term, probably give you a wider range of knowledge, improving your usefulness.
Just wanted to add a voice against that sort of Taylorism perspective on work.
I think these things are important to have as tools in your life, regardless! Life can get overwhelming in all kinds of different ways; knowing how to put your head down and take care of yourself in these ways is incredibly valuable.
Unfortunately, after a while doing all the above and more, I realized my feelings towards my coworkers and company had nothing to do with burnout. Sometimes you realize everyone is miserably bad at their jobs and you don't want to keep dealing with an increasingly shitty work environment.
Another valuable thing is putting yourself in the position to be able to leave.
lol I was just sitting here thinking I miss my Python job and not having trouble with IntelliJ detecting changes in dependencies and how frustrating it is to invalidate caches and reindex the whole project multiple times before I can run tests for the dependency change. I regularly miss the testing libraries we used, too -- it was so absurdly clean and easy to build robust mocks in our DJango stack (and I set up that tooling, largely on my own iniatiative, based on my team's feedback, so it's not like I'm just like wishing other people had already done the work). Now I work with a bunch of Java devs who use to work for Amazon and somehow use that as an excuse for not caring about tests, our ci-cd tools, and all these other things I'd gotten use to thinking of as standard in my past life as a Python dev.
Code style! Hah. First day on the job I asked about that and was told nobody cared and everybody had their own preferences.
... I'm very bitter today. I'm working on it.
What I've found recently is that the thing is impossible within the scope of the bureaucracy we're working in. For example, it's impossible to get this 3rd party hardware working in another 3rd party's network because none of the people who understand the product are being given access to the system in the ways needed to figure out what's going wrong. It's impossible to build a particular feature because that part of the tech stack is officially another team's territory, or because the process to approve the new feature hasn't itself been approved yet.
Ugh.
Setting aside all the imposter syndrome, confidence, etc stuff...
The only devs I've known who I thought were legitimately bad were the ones who thought they weren't. The devs who couldn't accept that their code was overly complicated, because in that moment they had no problem reading it. Or who would come out of the end of a project without any ability or desire to think about why or how the project went wrong.
Some devs dig deep into the language and libraries, some don't. There's need for both kinds of devs out there, even if there isn't at your company. Some devs know every design pattern out there, some don't. I often prefer the devs who don't -- my goal is to quickly build software that is easy to debug and easy to add on to, and people seem to usually get caught up in putting whatever type of factory where a factory shouldn't be and...
Really, though, we all suck. I've got senior devs from Amazon and Microsoft who don't know or care about dependency management or how to write integration tests or... whatever.
What do you want to be good at? Intentionally pick a thing. Not "programming" but do you want to be the best at debugging your team's software? Do you want to know all the gotchas and tricks of your team's language & framework(s)? Do you want to own a particular bit of your company's business logic? Pick a small thing you want to be the best at, figure out what that actually means, and then master that thing. Even if "that thing" is just being able to quickly add simple, not-awful-to-maintain features. Grade yourself on that, not every single thing you might see some particular other developer do better at than you.
It's always... interesting... To look at SF on Zillow. There are a few nice-looking options in the ~1.5M range, mostly foreclosures, and it seems mostly in not-so-great areas. I don't know if there are any great areas in SF proper though.
I strongly disagree with your opinions on premed students, but that's based off my experience as a Biochemistry major at a large state school. So much partying, so little reading of assigned materials.
It's super hard for me to not respond too strongly to this, as I'm currently having trouble with a particularly junior dev who just cannot wrap his mind around maintainability issues...
But really, I feel if "you" are spending the majority of time setting up new projects and familiarizing yourself with new technologies, that doesn't leave much time to get really GOOD at anything. Sure, we live in an amazing time where the simple act of adding a new technology to a problem can grant huge business benefits in a lot of places. But that's almost never the end-all, be-all of it. You don't just get to hook up GraphQL and ring your hands of it; as the company grows and begins to rely more and more on the new technology you set up, issues like whether or not you're getting source data efficiently start to really matter. How you set it up, and the design patterns you instituted for that technology, could very well make for the success or failure of a company. And it'll definitely effect the mental well-being of the the devs you leave behind.
It's easier to hit the ceiling of how successful you're going to be when you're working on your own. If you're someone other people want to work with/for, there are a lot more opportunities that can be taken advantage of.
I've often thought that if everyone, or even a majority, said "no", then we could have better policies. As it is, I've been the only person at my last two workplaces to object, and there's no way they're going to put in the effort to work with me.
So it is that I've given permission to confiscate my personal cellphone in the case of a breach. Otherwise, I literally couldn't do my job -- not because of anything particular about our field or technology, but because it was easier to set things up the way they are. We could spend a few days changing our alert structures, etc, and no-one would have to have "sensitive" data on their personal phones. But that's not going to happen for one employee.
If you try and peel back a layer of what you think is most important, but they don't care about it at all, you won't find anything worth hearing.
I came looking for someone who'd already said this. I think you hit the nail on the head.
Even the stoners I worked with in food service could have some interesting perspectives on, say, why different video games have such different communities.
I mean, yeah, I get it. Kids make me downright uncomfortable, and that alone is often a huge chunk of what people talk about. There are quite simply differences in interests. But then the question is, what are you trying to get out of an interaction?
In this context, I'd say, find out what that person's goals / difficulties are. Are they trying to switch to a different department? Are they trying to get their kid into a particular private school? Remodeling their house? I think keeping track of this sort of information, checking back in on how their efforts are going or giving any small useful anecdotes/advice ("Yeah, I really got screwed by that moving company -- I wish I'd packed my TV more carefully,") does way more, I think, thank talking about sports.
And the great thing is, even if we were all machines, those would be great things to talk about. I've gained incredibly useful information about home ownership just from listening to my coworkers.
I don't think any amazing programmer is immune to every bug. Just imagine a programmer who, when confronted with a bug, is always like "oh, that must be X or Y, we can test that real quick!" (And is right.) What a crazy world that would be.
What I do know is that my programming style is to really dig into every new project I have to work with. Maybe not every part of an application, but everything relevant to the feature I care about. I'm an incredibly judgemental reader (this is sad for personal reasons) and as such, I come up with long lists of "I don't think this would handle that scenario." I don't have time to dig into them, but that list stays there in the back of my mind -- a vague sense that a loop wasn't accounting for a particular kind of array value, etc, etc.
Inevitably, months down the line, some of those bugs surface as actual things. I keep an eye out on tickets, or listen during stand-ups, and I only have to remember just enough of that problem to cut out the investigative time. Eventually I become the person everyone goes to to get them up to speed on any problems within any of the features I've worked in, over people with much more seniority on the team, or often even the people who are responsible for that project. This is also how people seem to always think I've been around twice as long as I have.
I'm not a 10x engineer -- I find it incredibly difficult to stay "on task" and that massively kills my productivity. But the way I approach codebases, outlined above, is just one of many tactics that can, in the right environment, make a programmer far more productive/useful than they would otherwise be.
Oh, I definitely agree, though I think the problem might even be worse than just sprawl. A lot of Americans really think cars are awesome. Not just enjoyable to drive, but the best primarily form of transportation, no matter the public transit options.
This blows my mind. How many times have I watched co-workers waiting because they decided to carpool in b/c of bad parking, but their ride isn't really yet? How many times have plans had to be rearranged because somebody left their car somewhere, or someone's car is in the shop?
Not to mention the time wasted commuting, nor, way more importantly, how many people die in car accidents.
Hopefully, technology and new transportation models will help break us out of this.
That's actually what I ended up doing most often (albeit w/o a trailer)! I was living somewhere where it wasn't too dangerous to bike to the grocery store. I've also lived places where it would be an extra two miles to get around something like a narrow main road. Still faster than the bus though...
I think I can answer #3 for you!
Preventing deforestation isn't generally (primarily) about preventing more carbon from being released. The wood probably isn't go to end up in the atmosphere any time soon regardless -- it'll go to building homes, etc. However, each tree chopped down is one less tree doing precious carbon fixing, ie, one less tree removing the atmosphere carbon that was already released.
$10 in off-brand lucky charms is breakfast for a month.
$10 in dried beans is lunch for a month, but it's damn inconvenient, and yes, difficult to make taste good.
These are both extremes but yes, I am very confident that healthy food is more expensive than less healthy food. Yes, a cucumber is "cheap". But 8 cucumbers (.50/each) isn't going to get you nearly as far as a 6pack of GV mac and cheese ($3.98). Not even the same ballpark. 5 servings of GV thin-sliced honey ham costs $2.50, a loaf of the cheapest white bread is $1.50, 8 servings of GV block cheese goes for roughly $2.22, so now I have let's say 10 shitty sandwiches for roughly $8, when I could have had easily 12 meals of mac & cheese for half that and with less prep time.
Where cheap and healthy come closer together, I see the staples of my (well, my friends', but that's another story) childhoods; lots of potatoes, scrambled eggs, beans.
"Hey, you poor people can't afford to eat healthy food! We're going to tax the cheap food, so now you can choose between unaffordable off-brand Lucky Charms and unaffordable broccoli! Now it's your fault, not the job market, if you're fat."
Taxing sugar is not an incentive to sell more nutritious food, unless we're taking those taxes and subsidizing produce with them. Those sweet, highly-processed foods are also a way better purchase for grocery stores, which don't have to worry about the food going bad before it's purchased.
I do think banning these types of stores is likely to cause more harm than good, though. To take it to extremes, there's simply never going to be a farmer's market where my closest Dollar General is.
As someone who was without a car for a while...
Have you tried using public transit for grocery shopping? Where?
Oklahoma City has 20 bus routes, which seem to run every 30 to 60 mins. Unless you're lucky enough to live right on a bus route that goes to those supermarkets, or happens to line up perfectly with a transfer to another bus that does, it's going to take forever to get to the supermarket via public transit.
I've done it (in a different, but seemingly similar city). You leave early to make sure you're not going to miss the bus, and then you wait. If you're lucky, your first bus isn't late and the second bus isn't early... If it's just one bus, you trip is hopefully only like 10-15 minutes (you've already spent at least that walking and waiting), and then you're there! You probably want to shop for about 45 minutes -- even if your bus comes every half hour, making it back to the bus stop in 20 minutes ( remember, buses can come early or late!) is probably not going to happen, especially given that this whole venture isn't something you're doing every day, and you've got to stock up! But not too much, because you've got to carry it back with you. Speaking of, easy-to-carry packages of toilet paper or paper towels are typically astronomically more expensive than the giant packs, wtf. So, you get back to the bus stop laden down with stuff, everything goes pretty well on the trip back, and it only took, let's say, an hour and a half! Yay. You're never buying ice cream again.
But, you didn't get enough for your family for the whole week. You do it all again two days later -- you could have waited a couple more days, but the restricted weekend hours don't work out, or maybe you only have two days a week where that 7pm-latest-bus-run isn't too late (assuming you're comfortable trusting the last bus to get you home). You head out again, but this time, your first bus is very late. Or your second bus never shows. Or you miss your bus home, the last bus of the night, and now you have to call a friend or Uber.
This is all if you're lucky enough to live anywhere where trying this even makes sense. This is assuming your schedule isn't entirely incompatible with the bus schedule, and you can afford to be gone for however long the ordeal takes (my grandmother is a retired nurse living with her friend, who has Parkinson's; my grandmother tries not to leave for more than about an hour without someone else to watch her friend).
The price of public transport is not the $ for the ride; that could often be accounted for simply by the price difference between convenience store milk and Walmart milk.
In many cities, public transportation is used nearly exclusively by 1) lucky people who live right on the most reliable routes, 2) unlucky people who have very little else to do with their time.
The other day, I missed a bus in downtown Seattle. I could wait 5 minutes for the next bus (different route) coming by that stop, but have to walk an extra block at the end, or wait 10 minutes for the next bus of the route I missed. I said fuck it, didn't take any bus, and instead grabbed a delicious lunch at a hole-in-the-wall place a block away. This is not an accurate representation of public transportation in most cities.
A city center isn't required for public transportation to be convenient. I've taken public transit through suburbs and tiny towns and out to the countryside.
It just so happens that most of the public transit in the states royally sucks -- even in the city centers.
Can you give me an example of the immense freedom and flexibility that cars brought?
Can you give me an example that doesn't involve driving to the middle of nowhere, that isn't solved by a good public transportation system, and doesn't involve bringing home large amounts of groceries, or furniture, etc?
To add to your list, the SeaTac area has a lot of amazingly gorgeous yards, and I'd say the majority of them are not your standard grassy yard.
Maybe it's because enough people have realized how nice their yard could be, maybe it's small spaces and hills, or maybe it's how difficult and irresponsible it would be to try to keep the grass green in the summer. Either way, I freaking love a lot of the landscaping around here, and have been extra-excited by yards massively overgrown with wildflowers, etc.
I literally had this conversation yesterday as a "why I'm not sure web development is for me, long-term."
The level of familiarity that can be achieved with a tool in the timeframe allotted before the "oh no, we're behind-the-times!" fervor strikes just doesn't seem sufficient to me. I'll have co-workers coming to me with the tool-specific roadblocks they're hitting, and have reached the point where I can easily say "yeah, I've been there, you'd never guess but the problem is with [X], just do [Y]." And just as I'm getting really efficient, I've got to throw it all out because that tool isn't cool anymore, and nobody wants to work with not-cool tools, and we've all got our resumes to worry about.
I wonder if there are some cultural changes that could help mitigate this. If there really is an endorphin rush when working with a fancy new tool, why is that there and what can we do to replace that? Is it resume-building, is it enjoyment of that stage of knowing-nothing, is it happiness when you easily do that one thing that was annoying the shit out of you with the old tool?
Can you pick apart why you were excited about and wanted to adopt Go?
You and I must have worked for the same company.
Did the owner's wife also get "employee of the year" at the annual Christmas party?
I recently spent a day in Vancouver, unfortunately in / near what I guess is "Downtown Eastside." There were blocks of major streets we just did not go down, but even skirting the edge of it was incredibly unpleasant.
Did I feel unsafe? Yes. These streets were also filled with seemingly average-joe locals who did not give a damn about any of the things I saw that freaked me out, though, and I saw cops a few times that day (not just the ones who showed up for what I'm assuming was an OD a few blocks from me), so I figured statistically, at least during the day, it probably wasn't that unsafe...
Yes, I saw people setting up to smoke crack on the sidewalk of a busy street. Yes, I saw a man making sure there weren't air bubbles in his needle. Yes, the detritus if drug paraphernalia was everywhere. Yes, I walked right past the front door of a crack den blaring music, with trash (largely composed of burnt foil) piling up around doors and windows. Yes, there were used needles all over the place.
The blatant drug use shocked me, but it's not what had me on edge that whole goddamn day.
That day, I saw dozens and dozens of people who, if I'd met in other situations, I'd think should be in a hospital. It was, to me at least, some serious post-apocalyptic shit. I'm not new to the appearance of long-term addicts, but this was another level.
I watched a band playing music in a park for a few minutes, before an unhinged man started screaming and yelling all kinds of nonsense. I watched a woman weaving all over the sidewalk, tearing at her clothes, crying. I watched a man covered in scrapes and cuts shuffle down the sidewalk, take off a shoe, then continue shuffling, and I can't even begin to figure out how to explain how wrong he looked. I walked by so many frail, disease-ridden bodies, and so many people acting terrifyingly _wrong_, I don't have words to describe how I feel about it.
There were times my brain said "oh shit, do we need to call an ambulance?" in the middle of a busy sidewalk, but everyone acted like nothing was happening.
I'm not sure what to do about this. I live in the SeaTac area, and am also concerned that Seattle will become as bad as Vancouver. I'm worried that policies like this result in an influx of vagrant drugusers. I'm worried that both this policy and resultant increase in users will make it even easier for dealers, who will flourish with the more stable user base. I'm worried that between easier availability, more obvious useage, and a dozen other factors, it will be even easier for people who find themselves homeless in Seattle to try crack or heroin (etc), and even harder for them to come back from that.
No, I don't think people's chance of livelihood should be harmed by a drug record. I'm just not certain this is the solution.
A few years back, I had a job which required me to write up science-sounding short articles to support my employer's prescription-only supplements. I have a background in biochemistry, and an absurd desire to do a job the Right Way, so of course I looked at a lot of research before writing those articles. Some of what I wrote up was just essentially copy / social media nonsense, but some of it was also handouts for doctors and talking points for our reps.
It's been a few years, but I remember 1) hating the whole freaking industry, with it's unwillingness to fund good research, inability to conduct good research, and willingness to adopt bad research as gospel, and 2) thinking there could actually be something interesting to DHA.
So every now and then I consider doing fishoil supplements. But then I remember how absurdly unregulated OTC supplements are, and think about the issues with commercial fishing, and that's that.
I have to point out something that I haven't seen anybody say here -- there is a huge amount of variety in the difficulty of these sorts of interviews.
I assume that all FAANG interviews for entry-level software devs are akin to the standard Google interview, for which you are expected to study your ass off. I have not interviewed for one of those companies, but of course I know how much people study for them, and it disgusts me. However, I have had plenty of interviews which did have an algorithm-type section (the majority of interviews I've had have had something like that), and I no longer hate on companies for doing _that_. Plenty of the problems are relatively easy, once you figure out how to talk about them -- and being able to talk through your work is a legitimately valuable skill.
But, companies that expect applicants to put in the kind of work Google expects in order to stand a chance truly are not companies I want to work for. To some extent, it's just shitty; this "game" is mostly a test of how much time you have to spend. That cost is a lot higher for people who are less well off, which irks me, but that's true of most things in life.
The thing is, you talk about being "willing to play" the game. I don't want to work in a company of people who played that game.
First -- Playing the game means sacrificing important things; you can't spend all your free time studying which data structures to use for esoteric string manipulation problems, etc. AND spend all your free time learning the fine point weaknesses of different databases, good programming patterns, etc. By the time I started interviewing for my second job, I'd nearly burned myself out making certain I was learning how to do things right, learning how to be a good programmer. My free time was spent polishing the things I was working on and endlessly reading about how to do it even better. And then I was able to go into interviews for the jobs I was interested in and do what you're suppose to be able to do in most other interviews (programming or otherwise); actually talk about the company, their pain points, possible solutions they hadn't thought of but I had experience with, etc. At that time, I could not identify anything but the simplest algorithmic complexities... but to learn more than that would have been to choose studying useless information over useful information.
Second -- What makes a person willing to play the game, when there are plenty of other companies with interesting problems to solve and good salaries (maybe not AS good)? I can't help but feel there is a cult-like love of these big companies (or maybe it's the desire to prove oneself, since only RealProgrammers work for Amazon). And I don't want to work with a bunch of people who are extra excited about something I just don't value.
Maybe I haven't been reading the right stuff, but I just don't see the appeal. I don't particularly care for any of them as companies. Sure, if Amazon decided to pursue a pilot project aimed at providing its customers with low-carbon-footprint foods, I might want on board that project -- but not just to Amazon as a whole. Yes, these companies are large and well-known, but I don't particularly care if it's one million or one billion people who download an app I worked on. I know that getting a job in one of those companies doesn't mean you're going to do something interesting or big. I've had classmates get jobs at Google and I've worked with Google employees on certain projects, giving feedback etc. There's nothing I've seen about their jobs or projects that were particularly amazing or wonderful, except for the part where you then get to say you work(ed) for Google.