AI and Programming Jobs

I recently argued with someone about whether the Great Recession or the current time is a worse period for people trying to enter the job market as software developers. She was positive that the Great Recession was worse, citing the overall unemployment rate of 9% compared to the current unemployment rate of 5.8%. However, that says nothing about tech specifically or new grads. At the height of the recession, workers with a degree (any degree) working in computer/math occupations had an unemployment rate of only around 5%. 

Given the gap between new grad unemployment and unemployment overall was about 1.7% in new grads', I'd extrapolate that it was likely around 3.3% for new grads. 

Let's come to today! Computer science has the 7th highest unemployment rate for new graduates at 6.1%, with computer engineering at 7.5% (sometimes this major is similar to computer science, sometimes it's more akin to electrical engineering, depending on the school). Clearly, new grads are faring worse!

Why

Here's a quick story time: I graduated in the spring of 2010, but I actually interviewed for jobs in the fall of 2009, which was a particularly challenging time to be job searching. I was about to earn an industrial engineering degree, had approximately 1.5 years of work experience, and had a very middling GPA. Even with that, I was able to go up to Home Depot in the career fair, ask what they were open to hiring ISyEs for, and, when they said "IT Developer," say "I don't know how to code very well," and have the response be "we'll teach you!" I got the job after a single conversational interview with a director, during which we just talked about running (I had just completed my first marathon). Getting a job after a single interview is not something that happens today. First, coding boot camps began to appear around February 2012. While I'm not a fan of many boot camps for several reasons, I'm pleased that people who thought they weren't capable have entered the market. However, the number of boot camps (and their graduates) grew at a pace that didn't match the growth of entry-level jobs. And they were now competing with CS students. Suddenly, getting an entry-level job becomes much harder for everyone. The status quo continued in this manner (with increasing numbers of entry-level candidates) until very recently. Even before the rise of AI, companies were finding it easier to hire senior developers due to constant layoffs. Because of this, many companies adopted the attitude of "Why hire someone I have to train when I could hire someone who knows what they are doing?" which I understand entirely from an individual perspective. However, it will lead to the long-term decline of the industry if people can't enter. So, even before the rise of AI, getting a job as a new graduate was becoming increasingly difficult.

The Rise of AI

Then, here comes AI. Reading any report about how great AI will be for developers and how easy it will make our jobs ignores how we started. Consider the post My AI Skeptic Friends Are Nuts. The author talks about how anyone talking about how AI code going straight to production is wild because, OF COURSE, you'd still be responsible for reviewing it! Valid. But how do you get to that point? An entry-level developer can't just look at code and tell whether it's production-ready. That takes time to build up that skill, and plenty of us miss errors when reviewing, even with years of experience.

You can also not learn that just by reading code, which, in this potential future, is all you'll be doing. An engineer I know said that he was excited about all this, and our jobs would change, but we'd just be more focused on quality. He then described the job of QA. QA is a job that companies in the tech industry have consistently devalued to a point where most companies don't have any QA and expect their devs to do that work (which really ends up amounting to writing automated tests and maybe doing some manual tests if it's a prominent feature). This magical future means I'm transitioning from a job I enjoy to something I'm not particularly skilled at (QA is a skill that most developers don't possess) and also switching to something that my company has already indicated they don't value. And also, this requires experience. I keep asking, "But how do people gain experience to be able to review AI code since all of us require boring, repetitive work to learn?" No one has answered this question, and it keeps getting deflected. Companies hire junior developers for what senior and experienced professionals generally consider "boring work." As companies increasingly push AI onto developers, the most mundane tasks are the easiest for automation. But without learning from that, how do they get to the enjoyable work?

Finding A Balance

There's a way to use AI to help us with our jobs without replacing anyone or replacing junior developers. However, it would require care, and after witnessing hundreds of mass layoffs at profitable companies, the care for people is not as strong as it once was. I'm not an AI boomer, but I use Copilot in my editor (still using DoomEmacs), and it's nice when I need scaffolding for something, and it just does it, allowing me to go back and correct it. However, it often comes up with methods that don't exist. And sometimes, they fool me because they resemble methods that do exist, and I think I must have missed something. And I've been working with Rails for 12 years. People should be more cautious than they currently are, but I don't see that happening. In the meantime, I'm starting to plan for what I'll do when my job becomes something I don't enjoy, which looks like it'll come sooner than I wish.

Why I Didn't Speak Up Earlier

My former employer is having a very bad week. I worked at Mailchimp from March 2011 to November 2012. I wrote an anonymized version of the latter part of my experience already. I talked to the reporter for the Business Insider story, and it’s likely to come out soon. I opted not to be anonymous. During this process, he asked me two questions that made me think and want to write a bit more about my own perspective.

  1. Did you talk to your coworkers about salaries?

  2. Do you have any documentation of reports you made?

The answer to both of those is no. I’m going to dig into each one by one.

I grew up being told that you should not discuss salaries. I even thought it was illegal, or I could get in trouble for it! Even a few years ago, I was onboarding for a job and the HR person said pay was something we could not talk about, other than to our manager. Just in case you don’t know: in the United States, you are legally protected when discussing salaries with coworkers. It is in your best interest to discuss salaries with coworkers. Keeping quiet about salaries increases pay inequality. However, I was 24 when I started at Mailchimp, it was my second job out of college, and I had no idea. I was the only woman in engineering and I was paid $45,000. The excuse for the low pay was that I didn’t have any experience… but the role was for a deliverability engineer, which is a role that only exists at email service providers and internet service providers. There are still not many of those and there were even fewer in 2011… especially in the Atlanta area. The other guy in my department only had one year of experience, only at Mailchimp. I had an engineering degree and almost a year working in IT at Home Depot. Given that I know know that entry-level support made $35,000, I do not doubt that I was the lowest-paid engineer by far. I wish I had talked about salaries with my coworkers then and even in later roles because it took me years to realize that I was being underpaid. I think another reason Mailchimp gets away with this is that, for many people, it’s their first professional job and it’s just great to have healthcare. But given how much money Ben and Dan have made off the backs of their poorly-treated support team, I think they could have easily paid their employees a bit more.

As far as documentation, there is no documentation from me because I never made an official report. One of my coworkers would lift his shirt a bit in meetings, scratch his stomach, and stare at me. It was unnerving and very creepy. Why didn’t I report that? Well, everyone was aware he was creepy. I was young and we were all “friends”. Why would I report a friend? Plus, everyone knew he was a creep, so obviously, he wasn’t doing anything wrong, right? Looking back, I think it felt like someone else should have come in to fix it, but there was no one else. All I felt I could do was ask my boss not to make me share an office with the guy. One day while we were all (at least 20 people) eating lunch, another guy on my team decided to start debating what makes a person. Then he posed the question, “Are people with Down’s Syndrome really people? They have an extra chromosome, so if DNA makes a human, do they count?” I was pretty dismayed, mentioned that was inappropriate, but didn’t do anything beyond that. There were managers in that room; if it could be acted on, they would surely do something. That man is now a manager at Mailchimp. He is also the person who made it so uncomfortable for me to work there that I moved up to Boston with the first job I could get and a full 6 months earlier than I planned.

So why didn’t I speak up earlier? Like many people, I felt like Mailchimp had an outsized influence on my career. I was worried that, if I said anything against them, it would be a black mark against me. Even after I moved states… twice. Even now, I was hesitant. It also felt like, on an overall scale, it wasn’t that bad, right? I was never propositioned or assaulted, A+ for that. And yet… in all the companies I have worked for, Mailchimp still stands out as the place that feels the most problematic (other than the super tiny vegan startup that shall not be named), even almost 9 years later.

When Bad Things Happen to Good Jobs

No job is perfect. This post is going to cover some types of those imperfections (from personal experience) and what you can do to fix it (or at least make your job a bit better). One piece of advice applicable across the board: if something seems off, document it. Get a weird IM? Save it. Even if something is good now, you’ve got to protect yourself in case the situation gets worse.

1. Retaliation

How to spot it

Retaliation is not acceptable at most companies. However, most people are aware of that, so the way they retaliate can be more nefarious and more difficult to prove. This is one situation in which it is definitely critical to document everything. The two things to look out for are: 1) did a triggering event happen? Example: did someone get fired and could you be blamed in any way? 2) has one of your coworkers’ behavior towards you changed dramatically? Example: did you formerly have a good relationship and now they are criticizing you and complaining about you?

How to fix it

If this person is not your boss, I would first talk to your boss. Unless you have direct proof, it doesn’t serve you to be acussatory, but you can at least clear your name. You can possibly say that you think the retaliator seems to have an issue with you and ask for advice on how to handle it, or ask if you should change teams or departments.

If this person is your boss, go directly to HR. Again, unless you have direct proof, I would stay away from harsh accusations. Say something like “I’m not sure what happened, but ever since [triggering event], Joe has treated me differently and I’m not sure it’s healthy for me to continue working under him.” Ask for advice, see if you can transfer to a different manager, and possibly start updating your resume. Do not be afraid to talk to HR because that is not a fireable offense. However, if it doesn’t go very well, it’s probably not the type of company you want to work for.

2. Boss Is Not a Good Manager

How to spot it

There are so many versions of this. My favorite is the super micro-manager. Or the “never there and you don’t know what to do” manager. Or the “for some reason wants to make sure you don’t grow professionally” manager. All are bad, just on different levels. Depending on how you work, the micro-manager or never-there manager might not be too bad. Or not.

How to fix it

When you have issues like this with your boss, I would go to HR directly, especially for the second two. If you aren’t getting support (because they are never there or are denying you the opportunity for advancement), that has a huge impact on your career and your productivity at the company. Most HR professionals will listen and try to find a solution. This happened to me and I was moved to a different boss within a few weeks. For the micro-manager, I would actually first try to talk to your boss directly, if they are approachable. If you frame it as you wanting the opportunity for more independence and “larger” projects, the conversation could go quite well. No one likes to be told that they are doing something wrong, so make sure it is about what you can do, not what they are doing wrong.

3. Boss Dislikes You

How to spot it

This one can be sorta hard to tell. I think that you can know, but it’s definitely hard to prove and your boss would probably never admit it. If they admit it, then I would go to HR. Otherwise…

How to fix it

If your work environment is good otherwise, I would stay and keep doing good work. Your boss may not be a good reference, but if you keep submitting excellent work, your coworkers will be. I had an experience like this (and my suspicions were confirmed after I left). I still had great work experience to add to my resume, great coworkers to add to my network, and just a man who I know I don’t want to work for again.

If your boss’ dislike of you is really affecting your work environment, I would polish up that resume and leave as soon as possible. If you have proof, take it to HR.

4. Coworkers Are Inaccessible/No Help

How to spot it

This can be a fairly common problem when you are a junior developer or a new employee. It can be especially common if a lot of people work from home and turn their IM off. This can be especially hard if you need to get a particular piece of information and the person everyone points you to is in their “dev cave”.

How to fix it

If you are in an office full of people like this, get out now. Teamwork is an important part of growing as an engineer and obviously you are in an environment that doesn’t value it. Gross.

However, this is unlikely. Most of the time it will be a small handful of people. Search out the people who are available and willing to help you and reach out to them. If you have a decent boss, request a one-on-one and discuss the situation with them. Most bosses want their team to communicate and will not be pleased if they find that quite a few of their engineers are radio silent most days.

5. Total Disrespect

How to spot it

This is luckily an uncommon problem and also can be really easy to spot. However, in my experience, it was the problem that I felt most like I could fix and yet was totally unfixable. If you are constantly getting second-guessed, but nothing you have said has been false or even inaccurate, that is a form of disrespect. If your superiors are saying negative things about you to other employees of the company, that is a form of disrespect.

Those are a bit more outright, but disrespect can also be less blatent and take the form of microagressions. For example, if your coworkers, especially your higher ups, are smiling and nodding at you, then completely ignoring your suggestions and doing the opposite of what they said they’d do (what you recommended), that can be a microagression and a form of disrespect. This can be hard to spot because it usually doesn’t happen all at once, but if you are stripped of the ability to do your job effectively, that is also a form of disrespect.

How to fix it

You probably can’t. Definitely document everything. In a situation like this, you can’t be sure what will happen. Save all your emails, save all your IMs, and, if possible (and with permission of the people in the meeting), record conversations. If this is actually happening with a company large enough to have HR, definitely go to HR. However, that is fairly unlikely. You can try to have conversations with the people or person who are/is being disrespectful, but you definitely have to be ready to quit. I’ve had one job on this level. I kept bringing things up and even coming up with solutions in meetings that were agreed upon, would think things would improve, and they never did. In the end, that was the only job I walked out on. As a human being, you should not be treated like that, but, if you are a programmer, the job market is good enough right now that you absolutely do not have to be treated like that.