garote: (zelda letter stamping)

Two months ago I ended the longest stretch of unemployment - by far - that I've experienced in 30 years.

Some of that time was voluntary. I had a huge backlog of stuff to go through from my father's passing, including hundreds of 35mm slides that needed to be carefully digitized and catalogued, along with notes and other corroborating stuff. I spent almost two months bent over a scanner with a dustcloth and canned air, and wrote custom Python code to add descriptions and EXIF tags with approximate timestamps and locations. The project would have dragged out for years if I'd been working, and I had savings to sustain me, so it felt like the right move.

When that was done I began applying for jobs. I assumed it would go just like the last four times: I'd send my resume to a few places that seemed compelling, then get snapped up after only a handful of interviews. Instead, I was in job hunt purgatory for eight months.

Here's the breakdown:

About 200 applications made in total, with about 30 of those being for additional positions in the same company.

About 60 of those applications received a response, politely declining me.

About 15 of those led to some kind of interview sequence, over the phone or in person.

All the rest - about 125 - got zero response of any kind.

This wasn't some shotgun approach. I curated, and only applied for things I that seemed like an excellent match. I wrote cover letters for every position, briefly calling out the most relevant parts of my resume to help recruiters do their work. This was the approach I used in 2011 and it got a steady stream of results back then. Not this time.

Four of the applications led to a second round of interviews. That's the true gauntlet, where you meet with six to ten people, usually all on the same day, and they all hit you with different questions or code tests.

Of those, two made offers. I declined one, then accepted the other.

I was very relieved to be employed again, but the larger question remained: What happened? Even during rocky times in the industry I've always been a good candidate. I've had to regularly decline or ignore offers to recruit me away from the place I'm at, since I tend to dig in thoroughly and be happy where I am. It turns out 2024 was a terrible time to be looking for tech work, even for me, for multiple reasons.

First, for all of 2024 the specter of generative AI haunted my search for employment. Companies began using AI tools to screen resumes, and applicants began using AI tools to mass-apply for positions indiscriminately, creating a caucus race straight out of Wonderland. Data churned and electricity burned, moving documents around that nobody wrote, and nobody read. At the same time, people on both sides of this mess didn't know how AI-assisted coding tools would change the industry. Were programmers vestigial now? Was there any point to even hiring them? Would a junior developer work just as well as a senior one with 20 years of experience, with ChatGPT at their side? There was too much noise and speculation, and very little data.

At the same time, the remote work exodus triggered by COVID was in a new phase. Since it was now expected that a remote-first worker would be living in a low-rent area, having moved there to exploit the difference in cost of living, employers in an uncertain market could offer them lower salaries that they would be forced to accept, trapping them there. They leveraged the uncertainty created by AI tech: Better take this job, since it's all you're worth from here on out, and even that will be gone soon. Sorry but your skills are garbage now.

I'd followed the rise of generative tools with interest, but had not developed my hands-on skills with machine learning beyond the basics. As this unfolded around me I began to believe that writing code - a core part of my work - was about to stop being a thing, and we would all just describe the program we needed to an AI and it would cook everything for us. So the only remaining money would be in further refining these AI models and tools, and that meant I would have to walk away from almost everything I knew about software development - including any specific language skills - and re-learn a career from scratch. That felt like a journey directly into burnout. Since that would take a long time, I began to feel like I should take any offer at all, even one for almost nothing, just to close the gap in my resume and keep the lights on while I re-trained on my own time. Perhaps if I aimed low enough I could stand out against recent college graduates - who in my past experience were barely employable at all - before my savings were totally gone. Perhaps I should strip 15 years off the tail of my resume so I didn't look overqualified. Perhaps that wouldn't work anyway, since there were white hairs in my beard, and age discrimination is definitely a thing in my industry.

An eight month search makes one ask all kinds of scary questions. "Is my kind of work just gone, and not coming back? Am I a terrible candidate? Do I interview badly? Do I even like this kind of work anymore? Am I asking too much, even when I ask for the same salary and inflation has hollowed it out?" As the process wore on for me, the questioning got worse, and I tried to adapt.

I broadened my range of applications, took endless coding tests, reworked my resume and portfolio multiple times, and eventually started calling in favors from people I knew. One of the screening interviews I did was when my confidence was at a low ebb, and I clearly blew it, which was humiliating. In the worst cases, interviewers half my age were asking me questions that felt inane, and I no longer had the confidence to push back. I just wanted to stay on their good side and pass the gauntlet, so I would nod when they told me things like "JavaScript and Java are basically the same thing," and "Everyone uses Tailwind for CSS. There's nothing else like it." They were all so confident. They were employed, and I wasn't. They held the keys, and I was locked out.

A lot of those applications - about a third of them - were through LinkedIn. Zero of those led to even a first round. The only interest I got from LinkedIn was in the form of recruiters, three of which had lengthy phone interviews with me, promising they were setting me up for an interview with a specific company which then never materialized. That's right: The alleged clearing house for tech jobs, with the allegedly buzzing social media realm wired into the application process for the industry, sucked up days of my time and gave me jack shit in return. It was especially gross when their service began to barrage me with clearly AI-generated "show your expertise" questions, like, "You're faced with complex coding challenges. How can you sharpen your problem-solving skills?" ... Which I saw other users respond to with, of course, their own AI-generated pablum. LinkedIn was taking people desperate to find work, with limited energy and confidence, shoving them all onto a digital hamster wheel together, and running them to exhaustion for the sake of ad traffic. Meanwhile, the jobs they competed for ... were as fake as the "expert" questions in their forums.

During my second round at Amazon, the HR person straight-up told me that all the postings I'd applied for in California were fake. Amazon was required by law to post them publicly, but the truth was they were moving all those positions out of state, to areas with a lower cost of living, so they could cut salaries. Apple did the same thing, making a huge round of layoffs in late 2023 and then posting hundreds of open positions, and directing every application quietly into the garbage while they interviewed displaced internal candidates.

It took months of spinning my wheels before I understood what was going on. I banished LinkedIn from my browser and inbox, turned away from the big tech companies, and went searching around on - of all things - Google Maps, for companies within commute distance of my home. I made a huge list, then went directly to their websites and applied to what I found there, unless they redirected me to LinkedIn. I went through about 70 applications in this manner, day by day, and slowly made progress. That process was what led to the offers, and to the position I'm currently in.

And here's the kicker:

After two months at this present job, I am finding that software development is subject to exactly the same constraints and problems, and is serving the same needs, that it has for the last decade. Generative AI coding tools do make a lot of helpful suggestions, especially in self-contained projects, but they do not make junior developers into senior ones, let alone make us obsolete.

I thought everything was different now? I thought this was all solved problems, hand-waved away by the magic of chatbots telling us all what to do and write?

Machine learning and generative AI are being leveraged here, to optimize and automatically control extremely complex systems and do previously impractical things like examine 2d and 3d imagery for details and patterns that humans would never see. But that's what I would have expected two years ago, before the massive buzz clouded everyone's judgement. Where's the real industry-shattering stuff? I was told that AI coding would actually end software development as a discipline, the way the car ended the horse-drawn carriage. But the people I'm working for are still in desperate need of progress on the same two fronts - infrastructure and interface - as always, and the problems they need solved still require the same legwork and dialogue they did ten years ago. Someone needs to be there, needs to know what questions to ask and which to skip, needs to find the edges of the gap in a process and decide what goes there, and yes, someone needs to sit down and actually write code that fills the gap. Someone still needs to design the thing, build it, install it, test it, document it, and then redesign it as the needs change.

AI can help with most of those things but there's an absolute world of difference between "can help with" and "can do the whole thing unassisted". And there's a limit to that help, because the human needs training just as much as the AI does. A really really great set of tactical gear purchased from The Man Store will make an anarchist look like a marine, but he ain't gonna act like one, because he ain't got the training.

Of course, I am fully prepared to eat my own words ten years from now, when I can potentially have a conversation with a robot that has been trained in all of the problem-solving skills I have, and is smart enough to schedule its own follow-up meetings with myself and other stakeholders, and is interconnected with enough networks and data sources and other hardware to just write and deploy software by itself. That'll be cool. It doesn't scare me because by then I'll either be retired or doing something different.

But for now, after ten months of unemployment, I'm apparently back in the same industry I left, which kind of surprises me. I'm not sure how the industry is going to solve its problems with remote work, fake AI screening and applications, bait-and-switch employees, espionage, deliberately wasted effort, and the ongoing explosion and implosion of AI technology, but at least now it's not existential for me personally. I can learn on the clock, and there's some truly amazing stuff happening at my workplace. In the meantime, to anyone else still trapped on the wrong side of the door, trying to impress young self-important punks in the interview gauntlet, you have my sympathy.

A postscript:

Just before I accepted that offer in September, it was as though a tide had turned in the industry, and three other companies contacted me asking to schedule a second round of interviews.

Out of curiosity, I went in for one of those. The company was 23andMe. I went down to Sunnyvale and interviewed for about four hours. Afterwards I drove home, and heard ... nothing from them. Not even an email declining me. In retrospect that wasn't surprising: Two days later their board of directors resigned, and a few months after that the company laid off half its workforce. So ... they were distracted.

QA

Oct. 29th, 2024 10:34 pm
garote: (programming)
A QA engineer walks into a bar.

Orders a beer.
Orders 0 beers.
Orders 999999999 beers.
Orders a parrot.
Orders -1 beers.
Orders a ˆ¨ºø¨´.
Orders "minus zero" beers.
Orders a beer from a customer.
Orders a bar.
Pays for a beer in doubloons.
Leaves a -$500 tip.
Walks in and out of the bar 5000 times in one second.
Attempts to pay a tab without ordering.
Attempts to sell a beer.
Opens a tab for Bobby “; DROP TABLES;.

The QA engineer walks out.

The first real customer walks in and asks where the bathroom is. The bar bursts into flames, killing everyone.
garote: (programming)
  1. Cleaning up the dining area means getting the fast food bags out of the back seat of your car.
  2. You keep trying to open your front door with the key to the office.
  3. You think a "half-day" means leaving at 5 o'clock.
  4. Anything under an hour each way is not a "real" commute.
  5. Your reason for not staying in touch with family is that they do not use your preferred messaging app.
  6. You normally eat out of vending machines and at the most expensive restaurant in town within the same week.
  7. Your grocery list has been on your refrigerator so long some of the products don't exist any more.
  8. You're using packed moving boxes as furniture.
  9. You cannot remember the last time someone told you a joke in-person, rather than forwarding you a link.
  10. When you're at the office, you dream about catching up on sleep. When you sleep, you dream you're at the office.
  11. Every now and then you remember a friend, and think about reaching out to them when work is not so busy ... only to remember a moment later that you recently went on social media and read that friend's obituary.

Adapted from a similar list I gathered 13 years ago.

garote: (conan what)
From lucas.jiang.itdev@gmail.com:

I hope you're doing well. This is Lucas, a full-stack developer from Malaysia. I wanted to propose collaborations - either non-technical or technical.

To keep it short, I'm looking to get well-paid jobs with companies or clients in the US. While this is feasible from Malaysia, they tend to prefer hiring developers from similar time zones. Especially for full-time jobs at companies, they typically don't hire developers outside of the US.

So, I believe the best way to get US jobs is to "impersonate" someone who resides in the US. It might sound risky, but it won't be risky as long as we keep this 100% confidential. I have the following two options in my mind.

Option #1

Have you heard of Upwork.com or Toptal? There's no easy way to get well-paid jobs, and Upwork or Toptal has a lot of competitive freelancers. However, I'm very confident that I can get great jobs to make decent money. I would suggest a split of 20% ~ 25% for you and 75% ~ 80% for me.

Here's how it would work:
- You open an Upwork or Toptal account if you don't have accounts, and log in to it on your secondary laptop.
- I connect to your secondary laptop via the AnyDesk app, and I search for jobs.
- You receive money into your bank account when I finish jobs with clients.
- You take your commission and send me the remaining.

Option #2

For full-time jobs at US companies, which obviously makes us way more money than freelancing jobs. I would suggest a split of 30% ~ 35% for you and 65% ~ 70% for me.

Here's how it would work:
- I apply for company jobs on LinkedIn using your LinkedIn account and get you scheduled with interviews on your calendar.
- You crack the interviews and get job offers.
- I perform day-to-day work on those jobs while you only attend the daily/scrum meetings. (I can also join the meetings if team members usually turn off cameras.)
- You get paid into your bank account bi-weekly or monthly, and you send me my portion after deducting your commission.

Please reply to this email if you want to schedule a call to discuss this further or if you have any other opinion for the collaboration.

Best,
Lucas




I'm pretty sure this is just a strangely-dressed version of the usual "give us your banking details" identity theft scam. But the boldness of the proposition surprises me. This is what people go for? This sounds like a good idea ... to anyone?
garote: (Default)
I'm a bit concerned at how we're throwing around the term "AI" to describe the process of mimicking intelligence starting from random noise and training data.

And at the other end of the pipeline, I'm also concerned at how we use the word "intelligent" for systems that read and visually examine data and recognize various things in it. There is "classification", and there is "curation". These things do the former but not the latter. It still takes a human to do the second.

This is not "intelligence". Whatever intelligence is active in this system is the intelligence that a human is bringing to the table as they manipulate a prompt in a generative tool to get some result, or change the way it classifies subsequent information.

Most of our current concerns are about how a human can - and often does - bring almost no intelligence to this process, and then uses the result to try and fool others.

This is a huge problem in higher education currently. Reforms are needed. And I think we have to frame any reforms by asking, "what’s the goal?" If it’s to make students employable, that suggests one approach... If it’s to give them a liberal-arts-style understanding of themselves, society, and the world, maybe that suggests a different approach. I don't have answers here.

I keep asking myself how these tools can enhance my own work. And mostly what they can do, so far, is make suggestions to scaffold parts of a codebase that aren’t written yet, based on the existing codebase, and a huge library of examples. This is pretty handy, though you still need to rewrite large chunks of it and of course you have to understand all of it.

In less than a year I suspect this is going to be formalized into a process where a software developer has the option of explaining, in writing or out loud, what they want a function to take in, what they want to do with it, and what to return, and the computer will spit out a really high quality first draft of that function. Like, to the point where it might not even need any editing at all. That could be very useful to a person like me, who has enough experience to know what I want, and the ability to describe what I want in reasonably clear human language.

But then, let's take that a step further: Imagine that we now preserve the description - nay, the entire dialogue - that I, the developer, had with the generative tool to create that function. Now imagine that dialogue is preserved for all the functions in the codebase. Now imagine that that dialogue is what we feed into a "compiler" to generate code, in whatever language is appropriate for a platform. And computers run that, and we roll with it, until something goes sideways and only then do we break out debugging and forensics tools.

That’s awfully plausible, and it will change the nature of software development. My resume will no longer list "Python, C, C++, Javascript, Typescript". It will look more like an academic's resume: "I authored this, I was on the development committee for this, I co-authored the spec for that..."

Far from making people like me obsolete, it will make people like me more useful, because I can spend a lot more time looking at overall systems, consulting with people to nail down requirements, and drilling down into code with fancy tools to find bugs only when something goes wrong... All things that require long-term expertise.

But we’re not there yet, of course. Maybe another 2 or 3 years?
garote: (Default)

Fellow Dork:

"Metal command buffer 'out of memory' policy."

Me:

Let me guess. That's a scroll labeled "Policy" that catches fire as soon as you unroll it, a la Nethack?

Fellow Dork:

It's a cursed scroll of "confuse programmer."

Me:

Of course. And reading a blessed one makes you mess up a bunch of commits, confusing others.

There should be a shop in Nethack for scrolls like this.

"Hello Sir, welcome to Asidonhopo's QA emporium!" (You enter an 8x10 room filled with scrolls labeled "Bug Report".)

Fellow Dork:

Right. And then every interaction - picking things up, dropping, trying to pay, trying to fight, trying to leave - doesn't work.

You can still chat to the shopkeeper, but he just spews stuff like "Did you try turning it off and back on?"

Me:

Well, you can always attack Asidonhopo, yes?

Fellow Dork:

"Your fist waves ineffectually in the air."

Me:

Dammit! ... Okay, I zap wand of polymorph at the scrolls!

Fellow Dork:

They transform into Death, and/or War, and/or Pestilence, and/or Famine.

Me:

#pray

Fellow Dork:

<deity> just laughs

Me:

Hmmm... I throw a cockatrice egg at Asidonhopo!

Fellow Dork:

Asidonhopo catches the egg in mid-air and eats it. "Yum!" he says, while rubbing his tummy.

Me:

#quit

Fellow Dork:

"Nice Try."

Really the only thing you can do after entering this hellhole is to "kill -9 nethack".

Me:

Error: Connection refused. "You do have another terminal open already, right? Right??"

"Dammit now the whole university mainframe needs a power cut. Nice going. Never go into that shop!"

Fellow Dork:

It's the Room Where Everything Is Broken.

Actually I had a dream like this recently. I'm pretty sure it's because I've been applying for jobs. It's like the adult software engineer version of "that school dream" we're all familiar with.

You know the one: You're wandering the halls, naked, looking for a classroom where a final exam is already halfway done, and when you find it and sit down the whole document is made of gibberish and diagrams you can't fathom...

In this version, I'm sitting at a desk, which is placed in the middle of a living room, and my family members are all crowded into the room talking and eating and playing music, so I can't concentrate at all. There's a big box next to the desk full of computer gear, sent to me by a prospective employer, and I've set some of the equipment up on the desk and am trying to complete a coding challenge.

The hardware is unfamiliar, and operating system is glitchy, all the keyboard shortcuts are different, and the sample code in the editor is in a language that looks like a cross between two other languages, which makes interpreting it almost impossible. Somewhere in the layers of buttons and tabs is a document explaining what the coding task actually is, but I can't find it, no matter how much I click around, and in the background is a voice, trying to get my attention and ask if I need more time, because the interviewer is connected to the machine remotely and can see every fumbling move I make on the machine in real-time.

The box by the desk has other stuff in it too. Filing boxes, wire baskets full of paper, and a whole lot of ragged-looking clothes. It looks like a box you'd see at an estate sale. It looks suspiciously like the posessions of another developer -- one they hastily fired and frog-marched out of the building, before sweeping all of their stuff into a box and mailing it directly to me.

Or, you know, maybe the developer is dead, and this is my inheritance. If I'm hired, I'm supposed to set the rest of this stuff up, and put on the old developer's clothes.

... And thus, the curse is transferred to me.

You ever have a job like that?

Courtesy of Dall-E, here's an example of one of the diagrams from my nightmare coding challenge:

garote: (ancient art of war china)

When people visualize working remotely, they see two scenarios. It's either a quiet office space at home, or a laptop open on a series of coffee shop tables. The home office scenario looks like a dream to the introvert whose work demands focus, and the laptop seems like a dream to the adventure-hound vagabond, who wants to put in eight hours at the keyboard and then go wander the city until bedtime, from city to city across the world.

I've done variations on both of these, for different chunks of time in my career, but the vast majority of my work experience has still been in a physical office, with a real commute. And I can state with confidence: The appeal of remote work - home or abroad - diminishes quickly with time. You really should not build your life around it, because you're giving up something valuable.

If you have an office, with a reasonable commute, you not only get the physical presence of workmates as social contact, but you stand a chance of actually hanging out with them after work, because most of your social venues overlap. If you want to go to a show or throw a dinner party, your workmates can probably get there. In my workaholic country, this is a major way that adults renew their social lives. If that strategy is closed to you, you need to renew that social life by other means, or your emotional health will crumble.

If you have a home office, your social contact is restricted to your household. By itself, that's unsustainable, so you also need to have friends over, or go outside with them. Where do you find those friends? Perhaps you made some earlier in life, or perhaps you lean on your spouse to provide them. Either way you are not actually able to maintain or renew that supply of social contact. You have outsourced that task to others. If friends peel away from your life and no one else replaces them, you can't compensate. The walls close in.

If you work from a series of hotel rooms, RV spaces, campsites, or whatever, the social deficiency is worse. You have abandoned any chance of being in the same physical space with people who know you beyond a superficial level, except perhaps the person you are traveling with - friend or spouse - and it's guaranteed you will get sick of them for large chunks of time. You may be content with that for a month, six months, two years, and so on... But the changes that you push yourself through, in order to stay contented with being rootless for such large chunks of time, come with side effects. You may think you have moved beyond loneliness into something different. It has merely grown transparent and you are breathing it now.

I've met people who have cobbled together various habits and patterns to make remote work sustainable for them. Specific gear, complicated rituals, rules and limits... You can make it work, and stave off the emotional decay for a long time. People pursue it because they can save up money by living somewhere cheaper, or split their time between work and childcare, or because they can be in exotic places without taking vacations. At the same time, the company saves money by not having to provide a desk, a parking space, meeting areas, bathrooms, power, water, and so on, in the kind of costly urban area that most people would prefer to live -- not just for the weather and the clean sidewalks, but for the thriving social life.

To keep that equation fair, a person handling all those resources by working remotely should be paid at least as much money as someone driving to an office, right? More, in fact, because the missing social contact is a very expensive loss indeed, even if it's rarely acknowledged.

Instead, the white-collar world has attempted to scam people into thinking they are granted the "privilege" of going remote, based on the questionable assumption that someone who works remotely has more opportunity to hide from their obligations, since they're not physically close to a manager who could sneak up behind them at any moment and make sure they're not browsing Instagram on the office computer. Seriously; that's the logic: If you're remote, you can't be policed, so you will be lazy, so you're worth less. The more you think about it, the more insulting it becomes.

Measuring productivity can be complicated, but if your company is measuring it by how busy a person looks while sitting in a specific chair, they're definitely doing it wrong. With modern internet tools there isn't a single white-collar performance metric that can't be evaluated by digging around in some electronic documents and having a few virtual meetings with the right people. Companies have no real excuse for mistrusting you, aside from their own paranoia and incompetence perhaps, but they know remote work is appealing. So if you ask for it, it's an opportunity to renegotiate your wages down.

Meanwhile, if you're highly productive and working remotely, but accepting less money for the "privilege" of kneecapping your social life and providing your own office furniture, food, water, and power, you're not living the dream, or getting away with anything. You're being exploited. Same as usual. Why did you accept the pay cut? And now, the company can use any sense of isolation you feel from your co-workers against you, to convince you that the loneliness itself is evidence of your lack of effort, so you deserve that lower wage.

I expect it will take the workforce a while to collectively wake up to this scam. Working remotely is a win-win, not a win-lose. The last time I saw this sort of smoke-and-mirrors justification for a downward pressure on wages was in the mid-2000's, when companies were gleefully embracing the idea of outsourcing all their difficult programming and IT work to India, and shouting that domestic workers had better get used to accepting equivalent wages because there was clearly way more supply than demand now. How could a lowly domestic worker with their high mortgage and social needs possibly compete on a global scale?

People are fretting over the same question nowadays. If your job can be done from a cafe in Bangladesh, why would anyone pay you more than the cost of living there?

Here's some food for thought, leading to an answer: It's also possible to do your job really, really badly from a cafe in Bangladesh.

If you're good at what you do, insist on a decent wage. You're worth it! And, if you're remote already, you may want to explore the idea of returning to an actual workplace, so you don't go nuts. Maybe the new white-collar social contract will be "eight months here, four months remote", in some kind of staggered configuration, and the company would only need to provide two-thirds of the desks and floor space. I could honestly really go for that.

garote: (zelda letter stamping)
The Silicon Valley rat race is a certain constant size. This is because for every starry-eyed young volunteer charging into it, there is a transformed, dissatisfied veteran headed in the other direction. (Or a corpse plowed into the track.) And as they pass each other, they whisper, "you're making a mistake."

Last night I had a weird dream where I was visiting an old schoolmate at work and an ex-girlfriend appeared at the periphery working in the same room. I found this unremarkable and didn't pay much heed of her, but she was so traumatized by my appearance that she spoke quietly with some managers in the room and had them confront me. They kept asking me questions that were mumbled or garbled in the din of the office room and I tried to politely tell them that I couldn't understand, but got more and more annoyed, and they in turn got less and less polite and finally a security guard came up and escorted me from the building, doing some kind of "walk of shame". I woke up and realized that the noise in my dream was the heater in the wall getting louder and louder and then shutting off, over over. I unplugged it, used the bathroom, then went back to bed.

I've only had a handful of dreams about this ex, but this was the second I'd had in less than a week. Recounting it the next morning, it felt appropriate somehow that she had devised a way to get rid of me that involved jerking me around with poor communication. In the dream I felt degraded and worthless, as though by being career-focused and having a successful career - making more money than me even - she was part of an elite social group that I, with my only semi-serious attitude towards career, was not welcome in.

My choice to leave the super-serious career path had been a deliberate one, brought about by both need and a desire to change. But my time with her caused me to re-evaluate that choice, for a little while. So many people around me were pushing to make the maximum wage, or have the maximum impact, at almost any cost. They would have their names on more papers published, patents filed, plaques nailed to buildings. They would wander around in more extravagant chunks of beach-front property, fly on the more expensive trips, sit at the fancier tables with the sunset views, wearing classy business attire and shaping the fates of millions of people around and below them. I could be with them. I was among them, more and more often, for a number of years. I could just keep putting in more years like that, and keep climbing higher. See just how many rooms I could get my beach-front property up to. I would never call it easy - obviously it's incredibly hard work - but the choice to do it would seem easy to anyone with access and skills.

Right now the whole idea of pursuing that just makes me feel bored. Bored as hell. You want to shape your self-perception around how much power you can wield? What a fucking boring-ass way to structure your life. You want to drive yourself batty, obsessing over the exact highest impact you can have in a cause you have decided is vital to the survival of society, or even the human race itself? Bend your whole life around making that thing manifest? Well that sounds like a great distraction for you, but you go do it somewhere else because I find the arrogance that focus engenders appallingly boring. Or maybe you want to find someone who carries that same obsession, and fall into step behind them, fawning while that sociopathic megalomaniac rants and raves about quality and essence and nowness, because other people hear it and hand them astonishing amounts of money, and all that money can't possibly be wrong? Borr-r-riiing.

All that money. Here in the Silicon Valley, the money was here before you arrived, and it has already threaded into everything and everyone you see, and warped it. That sense of urgency and "disruption" you feel is not an accident, it's part of the program. It's fundamental to the cult you have joined. Your co-workers will take the place of your friends and family. Your commute will become your downtime. Your desk will become your dining table, and vice-versa. You will make more money in one day than whole families make in an entire year, and then you will hand a third of it to a landlord or a bank, and blow most of the rest on booze, jet fuel, and kale that withers in the fridge, and it will feel right because you are where the power is. Where else would you go that wouldn't be a step down? This is the only ascent that matters.

Here's a little piece of my family history, wedged in my brain, that acts as a kind of antidote to this:

Before they retired, both my parents were teachers. My father, for example, taught high school for 35 years. Roughly 30 students a class, four classes a day, two semesters a year, plus summer school. Over a career, he personally drilled math and english skills into the minds of ten thousand teenagers -- the population of a small city. It's not power, but it's a kind of influence. On a fundamental, unimpeachably positive level. And without fanfare, and with barely any recognition, and for unexceptional pay, because he was not part of an exalted power structure. He wasn't a disruptor. Nevertheless, thanks to his work, ten thousand people have been making use of those skills their entire adult lives.

Think about that, and think about how many other teachers are out there, exercising their incredibly useful and persistent influence. And you don't know jack about any of them. Sure, you know Elon Musk and Mark Zuckerberg, and you assign them a level of genius and vitality that is frankly comical, but ... even those two tastemakers had to learn basic math and english, just like everyone else, and some teacher made that happen.

Given that such a strong example of influential work can be right in front of your face and yet still invisible until you think about it, how much else could be missing from your picture? Or is something narrowing your vision; something you don't want to acknowledge? Maybe, just maaaybe, it's the status, and the power, and the money.

What if your vision has been distorted to match this landscape? What if that warm feeling of doing meaningful work that you soothe yourself with is actually a fake storefront propped up in front of something else, something more crass, like a feeling of superiority over all those people you "left behind" in your home town, or a feeling of personal security drawn straight from your bank balance? What if, in the ugliest case of the dot-com social networking company, your big important work at your big important desk is actually no more necessary than that of a drug dealer, generating short-term pleasure and long-term misery in strangers for a profit, and you left your soul on the curb years ago and didn't notice? Would you have the guts to leave? Maybe you leaned in too far and your face is in the bottom of a trough.

I know the position I'm in is not common because most people don't get the chance to be transformed by the rat race and then don't get the chance to claw their way out of it with their health still intact -- or at least in a state where it can be repaired. I consider myself very lucky. In general it's a great privilege to be able to do something you find satisfying for a sustainable wage, and I am even luckier still that I've had the chance to drop back down from the most punishing circles of the racetrack to a place that lets me have a life outside of work, while still making good money. It's a miraculous position. The people at my current place do work hard - we all do - but not so hard it kills us. The company isn't trying to take possession of our souls.

In addition to having my health and one foot planted back in the real world, this journey has left me with some insider knowledge: Many of the people running ragged in those higher circles are dangerously lacking in self-awareness, or willfully ignorant of the damage they do. The power and the access and the money are not necessary to do truly good work. They are just necessary to get the most extravagant property, the biggest lights around your name, and the most satisfying revenge on whoever doubted or wronged you long ago. If that's not your need, you really don't have to join them, ... or listen to what they say. And they obviously might not be the most fun to date either.

And now, I'm gonna go ride my bike.
garote: (ultima 7 study)
Today I went to Best Cafe and settled in with an iced mocha, and worked for a while, then organized music and did some sticker shopping for the holidays. Synced another 300GB or so of music to the new phone. 20MB a second is a real drag! They've got to move to a new protocol.

My nephew showed up, to do some studying alongside me. For a while we riffed on the idea of a startup company whose entire philosophy was built around the Goonies movie. "Company motto: Never say die!" "When you're working here, it's 'our time'." "Start every meeting with 'HEY YOU GUUUUYS!'"

Eventually he got down to studying and we listened to some technoey music together.

After a while I got annoyed by a professor sitting at the table nearby and talking to a credulous-seeming pair of people at length about capturing the "innovative genius" of Steve Jobs. Having worked in the depths of the company he founded long enough to build my own picture, I wanted to turn to the guy and start ranting. To avoid going off the rails with my work, I typed it into a document instead.

"How well did you know him? How much of your idea of who he was and what he was capable of came from exploring the mythology built up around him by the employees at the company, and then by the people who wanted to emulate him or ride on his coattails by discussing him?"

"He's not the only person in business or management with a magic crap detector. He's not the only person in business who was occasionally a rude asshole, a showboating negotiator, or a temperamental, capricious, arrogant, judgmental product manager. He also worked hard, had the right friends, was extraordinarily lucky, took his lumps and learned from his mistakes, and never promised to deliver something unless he knew it was technically possible. He was a mixture of good and bad traits. Unfortunately, that means that people who want to be as famous as he was, as rich as he was, or just want to be as much of an asshole as he was and feel justified doing it, can pick up on the bad traits he displayed and claim that those are what makes a great leader. And then other people fall for it. That's the mythology, not the man, lumbering around like a patchwork monster."

"I've known my fair share of managers, and in many cases their effectiveness was greatly enhanced by traits that were completely the opposite, or even the reverse, of the mythology of Big Steve. But you don't want to draw from those people, right? They don't have a dramatic arc, and they don't give you license to throw tantrums, keep secrets, mock the establishment, and do other 'disruptive' things that sound like fun. You want to wear that black turtleneck and blue jeans to give off a signal? Big Steve did it to express himself, not to remind people of Big Steve. But that's why you're doing it. That signal is permanently changed now -- and there could not be any better, clearer sign that you are some other kind of person. I hope those people across from you absorb every word and then go home and laugh about you. Good day sir!"

Of course I didn't say that. It would be abrasive and start an argument, and, what was the point?

After another hour or so I wrapped up and my nephew returned to campus. I rode downhill as the twilight settled over the city. Rachel described it as the "gloaming", which I thought was a really cool word.

At the house I moved sheets to the dryer and watched three hours of Midnight Mass. Interesting but slow-moving interrogation of religion, with some crowbarred scenes to let various characters act as mouthpeices for different aspects of faith. Taking a very deeply trodden path in horror:

A group of casually religious people suddenly renews their faith when outside-of-science miracles begin happening in their midst, and the skeptics among them get a weird kind of comeuppance for their doubt in God, right up to the point where it's revealed that God isn't performing the miracles but some demon, or ghost, or alien, or vampire, or zombie, or weird mutant lab experiment, or angry squirrel, or other suitably unnatural but also heretical MacGuffin. Then the religious people get their own comeuppance, and no one wins, but maybe a few people survive by weird coincidence, and that's perhaps evidence that God is around after all, just more, you know, ineffable.

The core lesson unintentionally becomes this:

Miracles, rather than being evidence of God, are evidence that something is deeply horribly wrong nearby and you should probably pack a "go bag..."
garote: (zelda minish tree)
It seems strange to consider, but I am probably approaching a point in my career - maybe less than a year from now - when I can step away from the endless treadmill of computer use that I have been on for almost all of my life.

I wonder:  what will change about me?
Will I become more outgoing?
Will my interest in people be renewed?
Will I become happier, or less happy?
Will I be more creative?

I have used computers for so many different kinds of artistic pursuits that sometimes I actually catch myself wondering what other creative people can possibly be up to if they are not parked in front of a computer.  Sure, many writers prefer physical pen and paper, but those that don’t are usually sitting in front of a keyboard just like me.  Some painters may prefer the physical brush and easel, but the rest have moved to touchscreen tablets for flexibility and to save on materials.  Musicians almost never compose on paper these days.  Same with architects and engineers, until they need to print something for a construction site.  DJs and live performers have traded their massive mixing rigs for laptops with little pads and boxes dangling off them.  Seems like if everyone is migrating towards computers for artistic expression, then me being anchored to my own just places me ahead of the curve and changing my behavior would make me a Luddite -- a cranky old man sitting on his front porch and dreaming of a simpler time that's vanished into the past while he wasn't looking.

But what can I say except the truth:  I am sick and tired of keyboards and mice and touchscreens. Even switches and knobs and blinky lights.  The fact that those things are very versatile and that I am very good at using them has changed from a proud asset into a bland annoyance.

I really do like music mixing, and writing little essays and letters, and organizing weird piles of information, and tweaking photos until they look the way I intended them to look when I pressed the shutter.  I have the soul of a filing clerk in me, and the computer makes him very happy.  But while he is humming blissfully away inside my head, my hands and feet and ass are complaining, louder and louder.  “Burnout” doesn’t really describe it anymore.  It’s an ongoing badly-controlled fire, and I count myself very lucky that I have inched my way this close to a financial situation that could allow me to take a long needed break from screens and keyboards and tablets and mice.

So now I get to think about it -- not just as a dreamy “what if” scenario but as a real possibility.  What would it be like, if I didn’t have to spend every weekday anchored to a screen, thinking in code?

Perhaps I can look at the vacations I’ve taken recently to get an idea.  Last June I spent a week at Toorcamp avoiding screens almost completely, and in July I went on a technology-light camping trip, then a trip hunting fossils in the desert with a camera, where I used the laptop only to dump videos for a few minutes each night.  How did those go?

Well if I was looking for a common thread in these trips, it would be that there was a delay of a few days and then my mind started to wander in a bunch of interesting directions that it usually doesn’t reach.  At Toorcamp I really got to dig into my relationship with geek culture and see how a lot of it is just youth culture in a disguise that I can no longer comfortably wear.  On the camping trip I had a lot of interesting thoughts about structured versus unstructured time and my relationship to my work, and the way my parents and sisters influenced me.  In the desert I thought about maps and navigation, and deep time, and got to practice my cinematography.

When I’m spending most of each day repeatedly dunking my brain in database and website code, these thoughts cannot crystallize.

Another strong thread in common is that I found myself enjoying the company of other people way more often than usual.  I think this is because I didn’t need so much private time to reset my brain.  I know I’ve never been fully introverted - like most people I am a mix - but perhaps a lot of my current introversion is actually a side effect of my work.  It seems contradictory, but the evidence is telling me that an extended vacation might make me more of a people person and give me more room to think at the same time.

Kind of a weird idea.  But I can see the sense in it.

In the meantime, I build code and tend to my finances, and continue tinkering with the house, and doing all of the self-maintenance things that I need to do so that I can keep the money coming in.  It’s not like I’m in a bad position.  Middle-class life is a pretty good life.  But I do wonder, about that other half-seen version of myself, and if he will ever have a chance to emerge.

When you've been writing code for something like thirty years straight, you start to wonder about stuff like this. If you're lucky enough to go on a vacation of a month or more (I've been able to do this exactly twice in this last 30 years) you notice that after the fourth or fifth week your brain starts to change shape really alarmingly, and it feels ...

How interesting; the word I want to use is "easy." Any other mode of thinking feels incredibly easy, compared to writing code. You look all around you at other people and realize with a twinge of jealousy that their brains get to take on all kinds of fun shapes, all day long, and just about all of them are way easier and more pleasant than what you've been doing. You are reminded why so few people do your kind of work even though the pay is very high: It is very hard to do well for sustained amounts of time.

And then woe is you, because when that month is over and you're back in the temple staring at the gigantic mandala and painstakingly etching out pieces of it, your brain writhes like a fish. It wants to do anything - anything at all, please, I'm begging you, JUST ANYTHING - but write more code.

But you plant both hands on top of the fish and add your knee on top, and eventually it stops writhing, and you write more code.
garote: (Default)
Every now and then I see a news article float by from a "respectable" source, about how the working class of America has a collective distrust, even hatred, for intellectuals. The narrative usually implies that the American educational system is going down the toilet because of this attitude. Just behind that is the implication that if these hapless blue-collar people would just get off their lazy bitter asses and get an edumacation they would join the middle class and - shall we say - Make America Great Again.

But I believe that colleges, as the self-proclaimed gatekeepers of higher education, should be under pressure to make their product actually useful to the people they sell it to. As I see it, that utility can take two forms:

If a college is courting people who want to elevate their career, their product should be valuable professional skills, at a fair price.

If a college is courting people with money, their product is a classical education that helps people fit in with, and form connections to, other people with money. That's where the real value is for those people, although it flies under a different banner, a more palatable one that reads "Make you a more well-rounded and better human being."

Of course we can take the pragmatic angle and say that colleges are around to do both of these things, but the point here is this: Sometimes people with money go to college, get a classical education, and then land a job afterwards through their connections, without actually learning the professional skills very well along the way.

Or even worse, they go there without money, go into debt, work hard to learn the professional skills the college claims are important, and the college turns out to be wrong.

I've been working in my industry for a quarter of a century now. Started it right out of high school. I have seen a lot of people here who fall into these categories. People who blunder from job to job leaving things worse than they found them, bluffing their way through interviews. People who are fabulously arrogant, believing that the way they did things in their final college project is the One True Way, starting needless arguments over which tools to use (Django or Ember?), which language to write in (C# or Python?), which methodology to apply (SCRUM or Agile?) and judging others for their ignorance of the One True Way. And most often by far: People who are simply unable to do the work, full stop. Eventually you can get a sense for these people and even predict a time frame, for example, "as a recent college graduate, this person will be completely useless to the company until at least six months have passed." And possibly forever, if they don't knuckle down.

This happens. In my industry, it happens quite a lot. What is the proper response to this but skepticism of higher education?

From my point of view, people should be suspicious of a recent college graduate, until they've proven themselves. Especially when that graduate believes that being "a more well-rounded and better human being" is more important than being able to do the job. Or when they declare that they know the work better than the people who have actually been doing it for years. What is the proper response to arrogance? It sure ain't deference. "You have a degree? Oh sorry, I'll stop asking questions now." Yeah, no.

My father was the first of his family line to go to college. I dropped out after five years because my vocation - learned outside of college - was already more lucrative than almost any other the college claimed to train and be the gatekeeper for. My father was very frustrated with my apparent lack of a desire to do well in school (the undiagnosed ADD didn't help) and it soured our relationship for all of my teenage years, but eventually he had to recognize that I'd made good on my own terms, and we eventually both agreed that college was not necessarily a path to the middle class, let alone the only path.

I can tell you what did forge my path: My parents worked hard to give me time and space, and I poured almost all that into the computer. Call it an indirect version of apprenticeship. I'm incredibly grateful for that time and space.

Now I work in a small company alongside 15+ highly educated biochemists. Wonderful, smart, very hard-working people. They had to put in grueling hours to learn their trade just as I did, but they had to pay out the nose to a college for the opportunity to do so. Ask them, and they will tell you how annoying it is that a computer programmer who never took on a dime of college debt can pull down the same wage, and have higher job security. (They can't blame the college for that, at least. Supply and demand.)

I'm digressing a bit, but I'm bringing this up to say that I fully understand the frustration that people out in the world feel when someone tells them that they are ignorant, or lazy, or lower class, because they do not have a college degree, or because they are skeptical that a college degree would appreciably improve their lives relative to the many other things they could (and do) pursue outside ivy walls. ... But the only reason I don’t take personal offense along with them is that I ended up making a crapload of money. And that is really one of the best kinds of revenge.

Success isn’t all about money, but if colleges are gonna take so much of it from people who have so little, then there should be pressure on them to deliver employable skills in return. The "more well-rounded and better human being" part can come along as a bonus. (It did for me.) That pressure should apply whether the money is collected in private tuition fees, or collected invisibly as a tax on everyone.

So the next time you meet someone who distrusts higher education, remember that colleges are not perfect and their place in society is not sacrosanct. The pressure needs to be on. A big ol' pile of book-learnin' doesn't exempt you from questioning. But it does help you form answers, and you can put that to great use while you win over the skeptics.

(By the way, California’s state college system is both affordable and high-quality, and a great mix of vocational and general education. Don’t forget to factor that into the argument when someone tells you that the US educational system is spiraling down the toilet.)

Arrrrrrr!

Oct. 2nd, 2018 05:09 pm
garote: (victory)

A few years ago I read about a company that started up in San Francisco, whose mission was to create a rating system for every single person on Earth. People could go to their website and search for a name - including their own - and find a collection of reviews submitted by other people amounting to a quality score.

I don’t know how much investment money this startup managed to absorb before public outcry caught up with it, but it was clear to anyone on the outside that what they were creating was a gigantic trap door leading directly to social totalitarianism. Supposedly if a person logged in and found that their rating was low they could adjust it by paying the corporation an ongoing fee, and the implications spiraled out from there. Think about the implications for corporate-sponsored disinformation and propaganda, automated to the degree that it effortlessly reaches down into the individual daily conduct of individual lives: Vote for us and your rating will go up. Buy this and your rating will go up. Complain about a problem and watch it go down. And so on.

Meanwhile, I’m sure that the people on the inside of that company reassured each other they weren’t doing anything wrong, by saying that the product they were creating was merely a convenient way for people to "express themselves", and was natural and inevitable, and all they were doing was trying to be first to market. Perhaps they believed this system was arising within Facebook or Google and wanted to position themselves to be acquired for some huge amount of money.

And really that’s what it boiled down to. It was a cash grab, like every other internet startup. They believed they could insert themselves as intermediaries between people and their own social standing, and calculating the collective value of that position, they saw the potential to make so much money that it stopped mattering whether their goal was ethical. The amount of money was so large it overruled everything.

I bet they all worked very hard to sell this idea as “the future”, to any investor who would listen, and simultaneously tried their best to hide what they were doing from the public and the media until they had a prototype, and a way to cram it down enough people’s throats, perhaps as a free service with ginned-up data scraped from other companies. Then they'd come up with some measurable sign of acceptance - like say, a bunch of numbers crunched out of their website traffic logs - and with that, shout victory as loud as possible until some big company bought them. Even if they couldn’t sell totalitarianism to the entire world they could probably sell their company. Then they could all retire to a private island, and the monster they made would be somebody else's problem.

How ironic that under the system they invented, their own cynical conduct would drive their personal ratings so far down into the negative that they could not participate in public life at all, and they would need that private island just to avoid the protestors. On the other hand, they could use their buckets of money to erase their own ratings and clean up around the margins. Either way, the company founders would be the perfect demonstration of why the company should have never existed.

This seems really plausible to me. I’ve known for many years that information in aggregate has its own value, and that large companies such as Google and Facebook are primarily occupied with finding ways to exploit this aggregate information for financial gain. It helps me to keep my eye on the ball. Every time I look at a Facebook feed, I remember that money is changing hands as this information is presented to me, and then more money is changing hands as I interact with it, leaving my fingerprints behind. I have no power to monetize these things I’m doing, but Facebook’s position as the intermediary gives them that power. And people all over the Earth use this apparently free system and declare, “So what; it only adds value where there was none before.” At least, until some piece of information being stored and presented by Facebook interferes with a person's ability to conduct their own affairs, and they realize they can’t do a damn thing about it. Information you post is supposedly controlled by you -- but information posted by others about you is not.

So it really is no surprise to me that a bunch of startup-culture douchebags tried to take this activity to the next level. Probably independent groups of them tried it many times, and only one was unlucky enough to make the news.

The reason this is coming to my mind today, is that for the first time in my life I find myself participating in a technology startup company whose product I would never personally consume, but whose market potential is measured in tens of billions of dollars. It is compelling me and everyone around me to work very hard, and our attitude is partially fueled by a belief that our product is inevitable and the only question is whether we will occupy the market first.

There are other companies working towards the same goal, with the same visions of dollar signs dancing in their heads, buttressed by a - frankly less important - belief that this product is beneficial to society in myriad ways. Sometimes I read about them in trade publications. Several of them have made grand preemptive announcements, attempting to garner more financial support for their work, or scare away competition. But our company is not particularly worried by any of them because we have a very good team -- and some very key patents.

At a time in my life when I have been seriously considering the prospect of entirely abandoning the career I have worked in for almost 30 years, in order to broaden my horizons and renew my interest in work and life itself, this job has chucked a golden lasso around me, tethering me to this work, offering me not just the prospect of the reasonably secure retirement I have been inching towards all this time, but the prospect of instant retirement. Work a few more years, sell the company, sell my stake, and ... done. Not "private island" done, but, for the average person with a modest lifestyle, done.

And you know, if I sat down and asked myself, “what would it take to keep me in this career for another damn year,” this scenario would probably - but only just barely - be the one thing that convinced me to stay. And here I am anyway, without even asking the question.

Thankfully I am not in the same situation as the employees of that defunct “social review” startup. The product I am helping to deliver does not have a downside that I can see. But I still find myself worrying, during quiet moments, over the fact that it’s a product that I would never personally use. Essentially I am worried that I’m being a hypocrite for the sake of money. And that makes me worry that at some point, perhaps years ago, I stepped through the technology looking glass and lost sight of the real world, and I can’t trust my own sense of right or wrong - or useful, or harmful - anymore.

This creeping sense that I lack perspective has been exactly the thing compelling me to change my career - or take some other kind of drastic measure, whose details I can’t decide - and rearrange my destiny. The weight and quantity of unknowns I sense around me feels like a confinement; like blindness. I want to explore, and give myself over to this exploration with the same hours-every-day discipline that I’ve fed into my career for so much of my life. And I’m actually within reach of that, in my own shoestring way, with no need of permanent retirement. I have the means to make this change any time, and not worry overmuch about it, and not look back.

I feel like a sailor, grizzled and sore from years before the mast, ready to disembark at the very next port and walk off into the country with some reading glasses, some gardening tools, and some tidy little savings for a new start, and as I gaze out over the railing into the same old churning sea for what I’m guessing is nearly the last time, a fucking bona-fide neon-lit mermaid has jumped up from the depths, with seaweed hair and shells on her boobs and everything, and shoved a god damn treasure map into my unresisting hands, bearing a wiggly dotted line and a gigantic X with skulls and gold coins drawn all around it, and suddenly everyone on board is singing “yo ho, yo ho,” and the first mate turns to me and winks and says “what be our next course, cap’n? AAAAAAARRRRRR.”

It’s a bit much, and I can’t quite get my head around it, and meanwhile the ship is plowing back out into the deep ocean yet again as everyone dances madly around on deck doing yet another stupid hornpipe, and it’s hardtack and hemorrhoids and who knows how many more days at sea and some of us won’t make it ashore at all in the end. Here we go.

I guess I could always jump ship.

Code exams

Oct. 25th, 2017 11:08 pm
garote: (Default)
I recently stepped from one job into another. On Friday I was working for the Berkeley labs, then on Monday I was working for a startup company across the street. From my new office, I can look out the window and see the sunlit hallway in the old building, where I used to take snack breaks. My bicycle commute is exactly the same. Nice!

The old job was being cut due to lack of funding. I was going to spend a while "funemployed" after that, but with a couple weeks to go I changed my mind and hit the job market. During those few days I brushed up my interview skills. This drove me a bit bonkers.

There are a zillion companies now that claim to be able to train you for an interview -- or interview your candidate for you, with multiple-choice quizzes and in-browser code tests. These vary in quality and content, more than you can imagine. The worst of them are crowd-sourced, going for quantity so they can boast "thousands of questions" on their press material. All the questions - multiple choice, fill in the blank, whatever - are weird nit-picky crap. All of them. The ones that aren't are so few that they're within the margin of error in the measurement and don't matter.

I took a quiz on Bootstrap and the first question was:

"Which of the following classes are generated on a blue button in the UI: btn-blue, button, ui-btn, blue?"

Are you fucking kidding me? Is that knowledge absolutely essential in sorting out n00bs from rock stars?

"Does Javascript's getDay() function return the weekday starting from 0 or from 1? Does the lowest value represent Sunday, or Monday?"

Oh wow, yeah, I need to look that up at least twice a day. I should have it memorized.

"What's the default duration of a jQuery.fadeOut() call?"

Answer: Fuck you.

Then there are the sites where you actually write code. They are better, but they have their own problems. Sometimes the answer they expect is very, very specific, and if you don't follow their formatting, or put commands in the same arbitrary order, you lose. Eventually I settled on the Codility website, which didn't suck. I barreled my way through ten of their tests, picking them at random, switching between Python and Javascript. Felt pretty good! Then I hit a problem about calculating "semi-prime" numbers.

Find the number of semiprime numbers (numbers that are the product of two primes) within the range (P, Q), where 1 ≤ P ≤ Q ≤ 50000. Your program must have a worst-case run time of O(N*log(log(N))+M) or better.

There is exactly one way to solve this, and it means implementing a modified version of an algorithm called the “Sieve of Eratosthenes”. Go read about it; I'm sure you've never heard of it.

This problem is dropped in with a bunch of others about sorting arrays, walking trees, and munging lists. Guess how often the Sieve of Eratosthe-butt-ass has come up in thirty years of a very respectable programming career?  That’s right. Not once. But you either know it, or you don't. Or you're Nicomachus of Gerasa from the year 60, and you come up with it on the spot.

You know what this is? This is like qualifying a construction worker to operate heavy machinery by testing his skills with the drop-claw game at the pizza parlor.

Anyway, I quit after that. I'd gone far enough. Any interview that would ask me about the Sieve of Erazzo-poof-shart is an interview I'd be happy to flunk.

garote: (golden violin)
From an email thread with Chaz, spruced up:

At the Oakland farmer's market last weekend there was a 17-year-old kid with a full drum kit set up on the sidewalk. He sounded amazing, and I could have sat there eating my fancy-pants crepe on my paper plate and listening to him for the entire afternoon. He had a nice stack of money collected in his hat after a few hours. That's cool; he's expressing his passion, and getting paid for it. He has a bright artistic future ahead of him, but still, I know he's not going to be nearly as lucky as I was. My passion turned into a zillion-dollar industry.

As a group, us geeks have won a huge victory, wielding massive influence in culture as well as economics all over the world. There are live-televised RTS games with sports commentators now. There are video game characters on ice-skating rinks doing tricks for families. There are billion-dollar movie franchises based on comic books, on elves, on vampires, on wizards, on space exploration, being dubbed in a dozen languages. You and I personally have written code that's passed through a hundred million pieces of hardware. You and I have seen our closet hobbies become cultural touchstones. Curating a software collection and building an online persona was just for geeks - now it is for everyone in the modern world. Catchphrases we used to throw around have become the bedrock of new language. Everyone knows what a hacker is; everyone knows what spam is. We have set tastes and precedents on a scale that is hard to overstate.

Yet, you and I remember when a lot of this was just some farty little thing happening in a coffee shop, or a ratty club, or a ragtag college group, and while we loved it, everyone else ignored it or actively scorned us for it. We lived through a time when nerds were still considered a group that needed "revenge". And now, this stuff has become so widespread that it's not even "our people" doing it any more. Our victory has swept around the planet like a wave, and come back at us filled with alien creatures and wreckage. To the old timers it probably feels like cultural appropriation. (Though of course, no one would take their side in that argument.)

Drowning in a crowd of imitators is not the standard outcome when you get older. Usually, the interests of older people are plowed under and forgotten by the next generation. This crowd is an anomaly, and an honor. Having people fawn over the things we create, and say, "wow", and "if only I could do that", is great, but ... our creative skills have also directly transformed into a means to make boatloads of money ... and money is even better than praise. That's way beyond "revenge". It's no surprise that this level of victory has spawned several generations of people running in the same footprints.

Two generations of new recruits has packed itself into this industry and the physical and cultural area around us, and the competition is fierce, and the growth is still exponential. But they've mostly grown the base, and that's grown the top, and paradoxically there is more room for us than ever before, and that room is higher up, in respect and in wages.

The other day I was out at lunch with a group of people who were newly hired to the lab - 20-somethings mosty - and one of them came up to me and said, "hey, are you the guy who wrote that 'Command Line' follow-up essay with Neal Stephenson?" I recognized him as one of the people I'd interviewed, back when he applied for a job months ago. He must have dumped me into a search engine. I felt a bit panicky - does this mean that I have to be as impressive to this guy, as Neal Stephenson is impressive to me? I know that's not gonna happen. I said, "well, we didn't collaborate or anything. He just said a few things to me and approved what I wrote, and that was that." I steered the conversation as quickly as I could into some tangential topic, and cracked a few jokes.

Perhaps this is the sort of cachet you and I have, now, even if it's by accident. Things we've done are now popping up in other people's discussions. It's natural given the growth and scale of this whole computer thing.

Of course, we're not essential. The newcomers can innovate just fine on their own. They don't care for us personally; they just like the same stuff we do -- or did. We were the conduit for something that became massively powerful, but we don't need to grasp the One Ring and destroy ourselves trying to wield it; we can remain ourselves, and diminish into the west. Either way, it's amazing that we can contemplate that choice.

It's kind of great being non-essential. We don't have to worry about "legacy". If I want to spend the rest of my life messing around in my garden, riding my bicycle, and excitedly discussing science fiction, that's fine. If you want to sit in your cozy room and knit sweaters for people you love, and find the perfect cup of tea, that's a perfectly excellent way to spend time as well. Inspiration and obsession will strike soon enough - they always have - and you'll find yourself on some insane adventure again. Let the excited young people work 55 hours a week, changing the world, aiming for "disruption" -- whatever that is. There's no need to compete with them.

The spotlight was going to shift elsewhere eventually. Good thing we never needed it.
garote: (machine)
For a long time now I’ve looked down on the younger generation of programmers mainly because they use frameworks and libraries willy-nilly without understanding how they work and what exactly they do, and call it "programming", or worse yet, "hacking".

But this year I’ve been realizing that I’m the old geezer on the porch complaining that his generation was somehow different when it was not.

Sure I learned about programming by entering machine language into a console, and went up from there. But I didn’t know jack shit about circuit design, and I still don’t know jack about it. In the past I’ve claimed this was different because circuit design was hardware design, and as a software person I was in a wholly different field, and justified in ignoring what lay beneath it.

But that division only appeared in retrospect, after the messy innovation that spawned the first solid platforms had taken place.

Looking around now, what divisions are starting to take shape? What core fields of study are being placed firmly on the wrong side of those divisions, doomed to fade away into dark corners of the industry?

Here's a list off the top of my head:

* Tomorrow's programmers are going to stop worrying almost entirely about WHERE their code is actually being run. And it will be hard to figure it out in any case.

* Tomorrow's programmers are going to expect software to auto-optimize itself to a huge degree, by having an AI interactively refine their design. The very notion of optimizing something for a given platform will seem quaint.

* Tomorrow's programmers are going to rent all their development tools on a monthly basis. They will be auto-updated every 24 hours. Every keystroke they make while on the clock will be recorded, and much of it will be rewindable and branch-able like a git repository on steroids. Development in an offline state will be severely handicapped, perhaps even impossible, but it won't matter because everything will be online all the time, for almost zero energy cost.

* Tomorrow's programmers are going to expect to be able to take anyone's device anywhere, and with permission, authenticate to it with a fingerprint or iris scan or code key, and instantly start using their own personal development environment, picking up exactly where they left off. When they stand up and move more than 3 feet away from the machine it will sense this and auto-lock, and the programmer can move on to another machine. (This is almost the way it is already, for some online developers working exclusively in browsers.)

What changes do you foresee, that will render large parts of current knowledge, or process, useless or irrelevant?
garote: (maze)
To get the background, check out this blog post from a website that offers practice for STEM-area job interviews:

http://blog.interviewing.io/we-built-voice-modulation-to-mask-gender-in-technical-interviews-heres-what-happened/

The story is, the people who run the site made some aggregate statistics, and the statistics showed that women were getting much worse interview scores collectively.

They got curious as to whether their interviewers were showing some kind of bias against female applicants, so they ran a crude experiment. They used audio software to distort the voice of each candidate towards a male-sounding or female-sounding voice (the interviews are voice-only), creating four groups:

* Women distorted to sound more like men
* Women distorted to sound more like women
* Men distorted to sound more like men
* Men distorted to sound more like women

Then they conducted the interviews, and made some comparisons with a control group.

Long story short, they didn't uncover any systemic bias. They weren't willing to accept the face-value implication (that women are just worse at interviews) so they dug a little deeper and found something interesting:

Women were far more likely to get discouraged and quit the program after one or two bad interviews. Seven times more likely, in fact. 35% of all women who got a bad interview - that's one third - quit after that first bad interview, compared to 5% of men.

If the researchers removed these first-time and second-time quitters from the pool, the performance differences between men and women went away.

Now, a sample size of less than 300, on a web service that is subject to the whims of ad campaigns and selection-bias, is not definitive. But it brings up an interesting point to consider, and an even more interesting one after that.

* Is the problem here that women are too hard on themselves, relative to men?
* If so, is the solution to adapt the post-interview process so that rejections are delivered differently, to counteract the urge to quit?

I asked Kerry about this. She said she agreed with the first point. Early in her tech career she got one bad interview and it was devastating. She didn't apply for another job until a whole year had gone by, and she was much more confident in her skillset by then.

(I thought back to the beginning of my own career. The first real tech interview I remember was way back in 1993, at Atari. I was told, "you seem talented, but we're not going to hire a high-school student." The manager acted like an amused father trying to humor his over-ambitious son. It hadn't been a negative experience exactly - I knew it was a long-shot - but in retrospect, it was another three years before I actually applied for, and got, a job in tech.)

On the second point - that the post-interview process could be improved - Kerry agreed, but neither of us could figure out exactly how to change it.

But what about that first point again? Are women too hard on themselves generally? Do they tend to downplay their own talents and accomplishments, relative to men, who tend to brag and exaggerate? My gut tells me -- yes, absolutely.

Does this mean we need to make changes in the STEM universe on a broader scale, beyond the interview, in order to accommodate the more humble, deferential nature of women as a collective? Or does it mean that we should just accept this state of affairs at face-value, and let the women who can't hack it drop out into other careers, while the few that are happy in this male-dominated field stay the course? Is there actually anything we need to fix? Is the under-representation of women in this field just the result of personal preference? The cultural zeitgeist isn't calling for changes to the position of "sanitation worker" so that more women are encouraged to dump cans and clean sewers. Why is it calling for changes to the position of "software developer"?

I have some of my own answers to these navel-gazing questions. For one, I do not think the under-representation of women is due to personal preference, I think it is due to various conditions that are a legacy of the way the software industry started, making an environment that is arbitrarily hostile to women. The top two on my list are:

* A large base of eager male developers who were drawn into this career path by the gaming industry, which was heavily male-centric in marketing for decades after its inception, carrying along their own strange take on women. (Re: Lara Croft.)
* Too many brogrammers who have transitioned from college campuses directly to corporate campuses and carried along their behaviors, including hitting on women and being unprofessional with other men.

Also, I think the call to change the state of this field is legitimate, because the tech industry is a hugely important and growing one, and CEOs and hiring managers are clamoring to put more programmer asses in more seats, and keep them there. The average Joe doesn't have to care about the representation of women in tech -- the industry is what cares.

Also, there is another good reason to follow this thread. Men and women fall on a broad spectrum of temperament, and STEM fields are geeky fields where intellectual rigor and emotional perceptiveness need to go hand-in-hand. Men and women alike need to learn how to work harmoniously with people who can be a good standard deviation above the sensitivity level of the general public. We're not just talking about "apologize if you bump into them in the hall", we're on the level of "make sure you choose exactly the right words in your feedback to a comment on a pull request so you don't accidentally invoke a jihad over code formatting between your lead programmer and your project manager."

The (suspiciously) common wisdom is that men talk to prove themselves and gain dominance, and women talk to share and reach consensus. Well, I've been on a lot of teams over the years, and I can assure you that nothing is more refreshing than working with someone who admits their mistakes, owns them, and works to fix and prevent them, humbly recruiting others as needed. Is that more of a masculine trait, or a feminine one? I think the best answer is that it's a synthesis. And with too many bros strutting around, holding their egos out in front of them like squishy battering rams, that synthesis is hard to maintain.

One question to ask at this point is, how well does the ability to humbly negotiate consensus come across in the average job interview? Hah; I think it barely comes across at all. Young interviewers look for technical dexterity, since it's all they know how to judge. Older interviewers look for "fit", which can be subjective and capricious. Only if they're particularly wise, will they spend their allotted time with you judging your ability to negotiate conflict into consensus. ... But I can tell you, that is an archmage-level ability and if you find it, you hire it. With people like that you can build a team that punches out architecture like clockwork.

What this says to me is, the software industry - and perhaps all STEM fields - will function best by promoting a work environment that draws men and women towards a synthesis of their best traits. This is not a career like fire-fighting, where you need upper body strength, nor is it a career like early childhood education, where your experience as a caregiver in your own family gives you a leg up. This is a highly technical, highly articulate, highly cooperative pursuit. Neither women nor men have a monopoly here; we need to attract and retain both. And that means, we need to seek out and minimize the vestigial traits of it that are threatening to one or the other.

I went to Kerry's company's holiday party last year. They had women dressed as go-go dancers standing up on platforms along the walls, gyrating to the music. I had no idea how to interpret it, but it sure made me uncomfortable.

So yes, there are real changes worth making, and those changes are far from implemented. I haven't even mentioned the solid practical stuff, like on-site childcare, extended maternal leave, improved health insurance options, on-site charter schools, and outreach programs that mix work with recruitment and teaching efforts, for those (including myself) who would feel higher job satisfaction if they got to mentor as part of their career. Oh, and part-time or flexible month-on-month-off schedules, and better telecommuting integration.

But let's reel this back to the first major point that came up from the study:

If it is true that women in aggregate are discouraged "too easily" by negative feedback, then that presents a very real barrier.

In my last two interviews (both of which landed me jobs) I used the following line: "I believe three personality traits make me a good programmer. I am lazy, stubborn, and suspicious."

Then I waited a beat, and said (more or less) "I'm lazy so I'm constantly looking for a way to automate things. I'm stubborn, so when I hit a bizarre bug, I throw everything at it. And I'm suspicious, so I insert logging hooks, and write tests, and check configurations."

It gets a laugh and it's a good humble-brag at the same time. But the reason I bring it up is, you need stubbornness to do this job, because you have to smack your forehead against a wall most of the time you are at work. If you are not stuck, you are merely not caught up yet.

I was self-taught, and pushed ahead against an uncooperative and vexing machine to learn my trade, in a complete absence of positive feedback from any living soul. Sheer bloody-mindedness, as Sir Pratchett would call it, was at the very center of this pursuit and career from the beginning and to the present day.

My point with this little piece of autobiography is a very important one:

This is really not a fulfilling career for anyone who is easily discouraged.

Now let me say, I have met many good female developers, and they all showed that same bloody-mindedness. I'm glad they're around, and I have respect for the added level of difficulty they face. (To borrow a famous quote, they are doing this job "backwards and in high-heels.") For example, it's a lot harder for them to communicate effectively when some indistinct group of male co-workers is keeping a minimum distance out of fear or spite, and another indistinct group is constantly distracting themselves by asking "is she flirting with me?" over and over in their heads every time they stand over the same screen to look at code.

Again, real changes do need to happen. But the point here is, are these women so few in number just because they are rare in the world to begin with? Is stubborn persistence in the face of rejection or failure, for year after year without burning out, just naturally less common in women? (Leaving aside the easily questioned meaning of "natural".)

If that is the case, then do we just have to accept that women will be under-represented in the software industry? What about other STEM disciplines?

My gut is telling me -- no. But unfortunately that's as far as I can take it, because I don't have numbers for the upcoming generation, that will hopefully take the reins of a tech industry that has undergone changes in their favor. Are more young women dedicating themselves to software programming? Are those numbers reaching up to parity with men? Will they actually make careers out of it? Or will they do it for a couple of years and then cast around for something else?

Actually, it doesn't matter, does it. It doesn't change our mission -- the point of these changes: To improve the efficiency and size of this industry as a whole, and to move closer to the ideal of judging every contributor by the quality of their work.

Sounds good.
garote: (machine)
This idea feels vaguely familiar, so I'm probably being redundant, but I made up this list yesterday and I think it's cute, so here you go:

Level 1: You eat a pancake. Delicious! You realize you like pancakes a lot. Perhaps you could get a job making pancakes.

Level 2: You work really, really hard in your own kitchen, and produce one lopsided pancake. You treasure it. Soon you'll be a pro! The kitchen is a mess.

Level 3: You can make pancakes every day. You have the recipe and the ingredients memorized. The kitchen is clean. Time to get that job!

Level 4: The kitchen in the restaurant is different, but you get used to it. The customers want a variety of pancakes, so you learn different recipes. Mistakes are made. Orders get sent back. It's a struggle but you learn every day.

Level 5: You're working in a big kitchen now, coordinating with other chefs. You produce many pancakes every day. You can't treasure every pancake - in fact, you realize that pancakes are extremely disposable. Many of them end up in the trash before customers even see them. Efficiency matters. You upgrade the kitchen. Wisdom accumulates. You write a pancake recipe book. You can't tell what a pro is any more, but you know you're at least competent.

Level 6: People are trying to hire you to remodel their kitchens and train their staff in the art of pancakes. You have some ideas for really weird pancakes that would change the course of pancake cuisine. Other people start calling you a pro. You're torn between opening your own restaurant, and retiring from pancakes completely.
garote: (castlevania 3 sunset)
A while ago I realized that I can actually speak as someone who has played this role before. So when I found the above question on Quora, I wrote an answer:

Your best path to an architect position is to work your way up into it.

I say that because to really succeed in the architect position you need to know four things:
  1. What works and what doesn’t in terms of design, and how to draw out and clarify the needs of the group you are designing for.
  2. What is easy to implement and what is hard, so you can design something that fits within your customer’s timeframe, AND so you can tell who below you is bull***tting you and who’s making real progress, and actually be CORRECT on both fronts. The consequences for being wrong are ugly. You don’t want to get into an argument with a project manager about how long your design “should” take to implement - you will lose that argument, almost by definition.
  3. What components to choose for a given situation (frameworks, development workflows, what’s compatible, what’s maintainable, what has a future, what you should insist on, what you can compromise on)
  4. How to earn and keep the respect of the developers and managers whose roadmap, and work hours, you are laying out.
The best way to learn all these things at once is to take a development job that also has the need, and the room, for a good software architect. Then, if your ideas are good, and you can responsibly expand your work to contribute design ideas as well as implementation, you can change the shape of your role.

With hard work and good ideas, and a good disposition, you will find that you have become de-facto lead programmer on one or more projects, and are making major design decisions.

Whether you choose to expand that role at your current employer (if there is room), or jump to another that is explicitly looking for an architect role, is up to you. But having risen to that skillset organically, you will be very well prepared to succeed either way.
garote: (bards tale garth pc)
In a couple of job interviews I've been asked, "what makes you a good computer programmer" and I've been delighted to reply with, "well, it's basically this: I'm lazy, stubborn, and suspicious."

Then I go on to explain that being lazy motivates me to automate things so I only need to do them once, being stubborn motivates me to solve difficult problems because I hate giving up, and being suspicious motivates me to write tests and verify things, catching errors that would otherwise be totally baffling. From my worst traits emerged some of my best ones. How much time did I lose, as a young person, believing I was a lost cause? I can't tell; it's all gone a bit fuzzy now that I'm 40. But more than I needed to, I assume.

garote: (weird science)
Every couple of months, somewhere on the planet, some acolyte programmer or frustrated employer of programmers comes up with the bright idea that they could solve the problem of software development once and for all if they just built a set of software tools that management could use on their own, to describe their needs to the computer and have the computer do the work.

In the 60's it often looked like a telephone wiring panel. In the 70's the popular designs involved physical cards or cartridges that you could move around. In the 80's it was rudimentary wireframe gears and puzzle pieces, in the 90's it was drag-and-drop shapes that you connected with arrows, in the 2000's it was touch-based drag-and-drop shapes, and this decade it's the voice interface that just has a dialogue with you until it figures out what you want. Plus a zillion variations on all of these themes, drawn from contemporary sci-fi.

Despite endless attempts all over the world over the course of 50+ years, no one has managed to make programmers obsolete.

Instead, demand for them has exploded with each new leap in processing power. In the 60's computer programmers were a vague presence, somewhere in the depths of the largest buildings. Nowadays all middle-class parents nationwide worry about teaching their young children how to program so they aren't "left behind".

And that's what sets programming apart. If you want to be a programmer for any length of time, you need to keep learning. In a single season your skills could become half as useful as the next guy/girl, because you didn't notice some new advance in the field and learn how to leverage it. Programming is obsolescence-proof - because the obsolescence is built-in, and happening fast enough to shroud the whole discipline in a permanent blur. We are all like Lewis Carrol's Red Queen, running to stay in place.
Page generated May. 20th, 2025 08:12 pm