Five Myths About Software Engineers that Hollywood Gets Wrong

Software engineers are weirdos in the media. On screen, we’re either eccentric geniuses or socially awkward losers.

In the movies, programmers have magic powers, like they can hack the CIA in an instant. Or people see the stereotypes and think, “That’s not me, I can’t be a software engineer.”

But that’s simply not true.

Let’s debunk some common myths about software engineers we see in movies and TV shows. It’s okay to laugh about them–a lot of tropes have a kernel of truth.

#1 Software engineers use a lot of math

I honestly haven’t used calculus since freshman year of college…

The first myth is that software engineers use a lot of math. People think that programming takes trigonometry or calculus.

Programmers use logic, yes, but we rarely do advanced math.

Some domains like graphics or machine learning might use advanced equations. But if you’re just building a webpage, you want to make it as simple as possible. There’s no need to use calculus to measure the position of the “send” button on the user’s screen.

In reality, most software engineers use very little math.

#2 Software engineers are all nerdy loners who live in the basement

Ok, I’ll admit: this guy was hilarious!

Hollywood has created his trope of the solo hacker who wears a dark hoodie, plays World of Warcraft for 12 hours a day, and drinks copious amounts of mountain dew.

Nothing could be further from the truth.

Real software engineers are ordinary people. Moms and dads. Charismatic people, outdoorsy people, social people. They come from every continent and connect through terminals and whiteboard meetings.

Some programmers are the stereotypical white male loner type who can’t get a girlfriend. But that’s a fraction of every profession. You don’t have to be a dork to be a programmer (to be fair, I’m a pretty dorky guy myself).

#3 Software engineers never need to talk to people

“Why would I need friends when I have a digital waifu?”

There’s this idea that software engineers stare at computer screens all day and do nothing else. They never talk to other people, and if they tried, they wouldn’t know how.

Unfortunately, developers do have to talk with other people.

At the start of your career, it’s mostly your manager, teammates, and product owner. You write emails and design docs. You ask for advice choosing between solutions A and B.

Later, you talk with people on other teams, users, and customers. Junior engineers come to you for advice. Maybe you become a people manager.

Eventually, you’re not limited by your technical knowledge. Instead, you have to learn how to communicate better to coordinate with other engineers. After all, communication is a superpower.

#4 A single software engineer can build an app in a day

The movie got a lot of details wrong, but they still captured the spirit of Google in the 2010s.

I remember watching The Internship and one of the characters got an idea for a mobile app. Another one of the interns said “I’ll code it up on the bus ride back”.

Hold up. You’re telling me you can code the model, the view, the view controller, the networking classes, and add in the system API calls, all in 1 hour? I’m guessing you’re going to skip UX design, architecture, the settings page, accessibility, color blind mode, privacy, security, authentication, error messages, low-connectivity edge cases, on-device storage, cloud storage, and bugfixes. And don’t even think about unit tests.

Oh, and if you want it for both Android and iOS, double the time commitment.

So, no, it’s not possible to build a full app on the bus ride between San Francisco and Mountain View. Once the app gets big enough, it’ll take one hour just to compile. (I wish I was joking.)

It is possible to program a simple app in a weekend. But it has to be simple. Building a high quality piece of code takes effort. If you rush, you’ll end up with the a buggy product that no one wants to use. To build something more complex, you’ll need more people or more time.

#5 All software engineers know how to hack the government

All CS students are given a mandatory hoodie and Guy Fawkes mask upon graduation /s

In every movie with a hacker, there’s a scene where the action hero tells a programmer to “hack” the government. It happens instantly and flawlessly.

Pardon my language, but that’s a load of baloney.

First, you have to be specific about what you’re trying to do. Are you trying to modify some rows in a database table? Are you trying to read from a file you don’t have permission to? Are you trying to take down a website?

Additionally, if you really want to hack a well-defended system, the job would take weeks. Governments and corporations spend billions of dollars securing their data with professional engineers who know the tricks of the trade. The hack might take longer than expected, or it might not succeed at all.

Being a real hacker is hard. But if you want to pretend like you’re in a movie, there’s always hackertyper.net.

Posted in Software | Tagged | Leave a comment

Stop Having Sucky 1:1s with Your Manager

One-on-ones… Everyone has them. Sometimes they feel like a waste of time. But it doesn’t have to be that way.

What if 1:1s could be a tool to further your career? What if they could be more enjoyable to both you and your manager?

1:1s are more important than most people realize. Your manager is not responsible for your career, so you need to take the initiative.

A manager is like a raid leader trying to shepherd a party through a dungeon. They are trying to communicate to a lot of people under pressure. Their attention is divided. They have many party members with distinct talents and personalities.

Yet if you want to get promoted, your manager is the most important person in the world to get on your side.

No one really teaches you how to have good 1:1s, so this is where I come in. I’ve been in plenty of meetings, both good and bad. I want to share my secrets of how I have awesome 1:1s, and how I used these golden meetings to get promoted faster and easier than my peers.

Let’s get started.

What do you want?

The place to begin is the end. What do you want?

  • Do you want to get a raise?
  • Do you want to get promoted?
  • Do you want to work fewer hours?
  • Do you want to change projects?
  • Are you looking to leave the company with a new skill?

Decide what you want. Then, structure your 1:1s to further your goals.

Structure

Most people don’t think about the structure of their 1:1s (nor their presentations). They mumble and ramble and give a 30 minutes status update. Status is fine, but you don’t need 30 minutes to talk about status.

Instead, we’re going to use our time wisely. 1:1s are a time for you get the attention of your manager.

That means we’re going to put the most important thing first.

Write down what you want to talk about ahead of the meeting. My manager and I have a shared Google Doc. You can use paper or attach notes to the digital calendar event. Find something that works well for collecting your thoughts.

Then, make a list of the things you want to talk about. For me, this usually looks like

  1. Perf (performance reviews)
  2. Strategic questions
  3. Project A
  4. Project B
  5. Project C
  6. Low-priority questions

To me, perf is the first thing because it is the most important thing. Every week, I ask my manager questions like:

  • What is my expected rating for this cycle?
  • What do I need to do to get to the next level?
  • What evidence do I need to prove that I’m performing at the next level?

I wanted to get promoted so I could get a raise. That was the first thing I talked about in each 1:1. This reminded my manager every week that promotion and a raise were my goals and I needed his help to achieve it. After each meeting, I would take the answers to these questions and implement them, and report my progress in our next 1:1.

Second, I asked strategic questions. These are high level questions about our team, our projects, and how my work fits in with the big picture. Some weeks, I don’t have any strategic questions.

Next, I had bullet points for the major projects and features I’m working on. I mentioned difficult bugs, recently completed work, and blockers. My manager usually has a few questions about specific tasks.

Note: I tend to report very few new blockers in 1:1s. If I see a problem, I aim to resolve it without a meeting. I send an e-mail, ping my manager, and generally use my common sense to figure out "How do we move the project along?" I don't wait until our 1:1 to get an answer.

Finally, I ask low priority questions. This could be questions about new teammates or smaller bugs that don’t need to be urgently fixed. Also, here’s where I ask general, open ended questions like:

  • What am I doing well?
  • What can I do to improve?
  • What else can I do to help the team?

I write down the answers to all these questions in our shared Google Doc. Then I cause these action items to get done over the following week. The cycle repeats again.

Having a structured agenda keeps the conversation on track. We are more likely to cover the important stuff than if we had no plan.

You might not like this structure. Your manager might not like this structure. That’s OK. The point is to intentionally find a format that works for you.

How Often?

1:1s are valuable time to develop your career. I have a recurring calendar event with my manager every week.

I recommend meeting at least once every two weeks. Anything less and your manager will forget about you.

Sometimes, we have very little to talk about, so we can cancel the meeting or end early. Other times, my manager and I have high level career discussions where we spend most of the time on the bigger picture.

The important part is to have a recurring block on your calendar dedicated to your career development. Without an automatic reminder, you’re likely to forget.

You might be worried that you’re annoying your manager with frequent 1:1s. You’re not. If they say you’re meeting too often, then reduce the frequency. Otherwise, you’re fine.

Good managers want to help develop their team members’ careers. Bad managers are indifferent (or downright hostile).

What if my manager is the problem?

Your manager might not be supportive of your career development. In that case, I would ask, “What do you want to do?”

I can’t recommend what to do for your particular situation. However, I can brainstorm a naive list:

  • Find a new manager, a new team, or a new company
  • Try to change your manager
  • Accept it and stay in your current position (sad!)

You have common sense. You can solve problems. You have people you can talk to for advice. At the end of the day, you can think about the pros and cons, decide, and put your plan into action. I’m just an ordinary software engineer that’s been working in tech for awhile.

And when you put it all together, you realize that you have the power to make your next 1:1 better than before.

Posted in Software | Tagged , , , , , | Leave a comment

You Are an Engineer at Big Tech Co. During Coronavirus (Humor)

You are an engineer at Big Tech Co.

It is March 2020 and The Company has just sent you to work from home. You live in California with two other engineers. Each of you makes multiple six figures but can’t afford your own apartment.

You wonder if you will survive.

“We’ll be back in two weeks” says your roommate. You have never met him since he is always out of the apartment.

Your other roommate is busy watching anime. You have never met him because he is always in his room.

You do not feel optimistic. You struggle to fall asleep. Maybe things will be better tomorrow.

You log into your first remote meeting. Your manager pretends that everything is fine. No one believes him.

Your roommate interrupts you by taking work meetings in the living room. You had also set up your workspace in the living room. You ask him to do meetings somewhere else. He gives a lame excuse. You sigh and turn up the noise cancellation on your headphones to max. It doesn’t work very well.

You worry about your parents. You worry about your grandparents. This accomplishes nothing and you know it. You continue worrying anyway.

You turn off your work computer. You finally have time to watch Netflix and play video games.

You feel anxious. There’s a lot of work to do, but not for you—your job is not important enough. Your team does not directly generate revenue anyway.

You read the news. Things are happening and you do not know why.

Another online meeting. You discover your co-worker loves remote work. He lives in a large house with his wife, kids and two dogs. You are jealous.

You feel anxious again. You drink some coffee. You feel even more anxious. You know you shouldn’t drink so much caffeine, but you’ve always had a coffee break at the office, and now’s not the time to break routines.

You feel tired. This is strange because you’ve done nothing today. You do not understand.

You worry that you will be laid off. Your manager tries to lift the team’s spirits with a fun online activity. Everyone pretends to have a good time. No one believes it.­

Your friends try hosting some virtual events. They are OK. You miss your friends.

It is 3:00 AM. You hear your weeabo roommate shouting at his monitor. You knock on his door and politely ask him to keep his voice down—he nods and smiles sheepishly. The next night, you repeat the ritual like clockwork.

You hear about some more news. Even more things are happening and you still do not know why. You delete Twitter from your phone. You know even less.

You need a hug. You cannot get one because hugs are illegal right now.

Your director congratulates the team on all the hard work they’ve been doing by giving out $1000 bonuses to everyone. You have written 10 lines of code in the last week. You feel you do not deserve it.

Your weeabo roommate makes ramen for dinner for the fourth time this week. “Maybe we can try a new recipe next time?” You suggest. Your roommate gives a lame excuse. You sigh and eat another bowl of the same ramen.

You hear about protests. You want to help. You try to learn. Still, you do not understand.

You do not sleep well. You wake up and feel more exhausted. Every day feels like a new level of hell. You tell no one. Someone on a work call asks if you’re OK. You say, “I’m fine.” They do not believe you.

You and your non-weeabo roommate have a drink together. He makes cocktails with extra gin. Suddenly, the bottle is empty. You do not remember how this happened.

Your friend cajoles you into playing Among Us. It turns out to be a lot of fun. You log 15 hours in one week.

There are wildfires outside. The sky turns orange. You are not surprised. Nothing can surprise you anymore.

You have a new project at work related to the director’s grand vision. You wish you had a whiteboard.

Your weeabo roommate talks enthusiastically about v-tubers. He tips hundreds of dollars to these virtual anime characters every month. You think this is unhealthy but you say nothing. Somehow, you have not seen your other roommate in weeks.

Suddenly, you feel bored of Netflix and video games.

It is dark outside.

Your eyes are tired. After you do work on a computer, you look at a different computer screen for fun. This is probably why. You realize this but do not change anything.

You do not have a romantic partner. You used to have one. You think about that. That was at the beginning of the pandemic. You try to remember when that was. Time is an illusion now.

At dinner, you suggest doing an activity with your roommates. They both say no. They are too busy, and you do not understand. You nod as if you did. Somehow, you are also incredibly busy despite having infinite time on your hands.

You are promoted. You are unsure how this happened.

“How are you?” Your new manager asks on a video call. “I’m fine,” you say, but you are not fine. She does not believe you but does not say anything.

Somehow, it has been one year since the pandemic started. You are still anxious, but in a different way.

Someone tells you that you will be eligible for a vaccine soon. You are excited to receive it. You check eight different websites every day, looking for appointment slots. The anticipation builds every hour. You cannot wait any longer.

Finally, the magic day arrives and you are eligible to book an appointment! You wait for another 12 days and 7 more hours. When you arrive at the clinic, you are excited and confident, as if ready to meet your destiny, incredibly grateful to all the nurses and scientists that helped get you there. You feel the momentousness of the day with every step. You are charged with power. You will defeat the virus and everything will return to normal.

And then… getting the shot takes mere seconds. You thank the nurse and sit for 15 minutes in the waiting area.

“Coronavirus is over,” you triumphantly declare as you arrive back at your apartment. Though you know this is a lie, you believe it, because you have no intention of living through another unprecedented time like this.

After all, you are still an engineer at Big Tech Co.

Posted in Other | Tagged , , | Leave a comment

CS Internship Guide #18: Five Things CS Professors Won’t Tell You About the Real World

Part of the CS Internship Guide


Professors are smart people. It takes a lot of effort to become a professor, and generally speaking, you should listen to them.

However, there are five things that all CS majors need to know that your professors won’t tell you.

Some of it is ignorance—they don’t know any better. And some of it is, they won’t admit they spent half their life working in the wrong field.

So before you decide on your next destination, read this.

University is often the start of your journey.

Don’t go to grad school

The main purpose of college is to prepare you for your career. With a CS degree, there are tons of jobs where you can do interesting work and make six figures in your first year.

Grad school doesn’t make a difference. If you have an internship, you’re qualified for entry level CS jobs. You can even get a full-time job even without an internship. Practice interviewing and you’ll eventually pass an interview.

Some people use graduate school as a way of “delaying” their entry into the real world. If you’re scared of working in software engineering, try it for a year, and if you don’t like it, find a new company or role. And if you hate programming altogether, I’d ask, “Well, why are you going to study more CS?”

Graduate school costs $40k per year. Expect to spend two years there.

Meanwhile, you can work in the industry, probably have less stress, and earn money.

Which would you rather have: a good life and earn money, or a terrible schedule and pay money? Going into industry is a no-brainer.

If you’re an international student, or didn’t pick CS as your undergraduate major, graduate school might make sense. But for most US-based students, you’ll do just fine without a master’s degree.

“But I want to do research!” You say. That brings me to my next point…

I feel less stressed working in the industry than I did in university.

Work in the industry, not academia

Don’t go into academia. Professors like to say, “We’re pushing the boundaries of science! We’re changing the world!” They’re over-hyping it.

In the industry, you’re creating features for hundreds of millions of users and actually having an impact on people’s lives. The life of a professor is spent writing obscure papers that no one will read in the hopes of impressing a committee.

Meanwhile, real life software development is fun. You’re building things and solving problems. The humble fullstack developer is developing a website that makes scheduling vet appointments easy. It sounds like boring work, but it’s technically satisfying to craft a responsive website, and it’s genuinely making the lives of pet owners and veterinarians a little better. Multiply this humble developer by a million and you have a million little ways that the world is improving.

“Alright,”You say, “What kind of company should I work at?” Well, I’ll tell you one industry to avoid to narrow down your search.

StarCraft: Brood War

Avoid working at in game development

I used to want to be a video game developer. “I like playing video games, so why not make video games for a living?”

It turns out, game developers work longer hours for less pay than other engineers. Oftentimes, when a project is complete, the studio lays off many of their employees.

Don’t get me wrong, it’s really cool to work on video games. But I want to have a good work-life balance. I want stability. My job is a major part of my life, but it’s not the only thing in my life.

I talked to multiple ex-game devs and their sentiment was the same.

If you want to make video games, try out working at a game dev company. Maybe you’ll really like it. Or maybe you’ll decide it’s not for you. Either way, when you’re first getting the job, remember to do this next thing.

Yes, I’m going keep using this image.

You can negotiate your salary

You might wonder, “Can I ask for more money?” The answer is YES!

Salary negotiations are a weird part of your career. They are tiny conversations that have an outsized impact on your compensation.

I would rather spend 2 hours doing a bit of prep up front than spending the next five years with an embarrassingly low salary.

I want to be well prepared for my negotiations. I walk in knowing what I’m worth, knowing that companies want to hire quality people, and they are willing to pay big money for top performers.

I’m not a professional negotiator, but you can learn a fair amount of the negotiation tactics from board games. You can also read books and practice with friends.

Negotiation is just one way you can use communication to your advantage. Which brings me to my last point.

Talking in person is just one way of communicating.

Learn how to communicate well

Communication is a superpower.

You might be the smartest person in the room, but if you can’t communicate your ideas, you haven’t done squat.

Fortunately, communication is a superpower that can be learned. I’m a recovering awkward person, and if I can get better at talking to people, so can you.

There are lots of ways to communicate: Emails, design docs, presentations, and even real life conversations. To get better at communicating, there are a lot of things you could do.

You’ll never be an expert in every domain. But, if you can get smart and talented people on your side, there’s no limit to what you can accomplish together.

And that will truly take your career to new heights.

Posted in CS Internship Guide | Tagged , , , | Leave a comment

Tetris Zombies: The Craziest and Funnest Way to Move

Moving to a new state is a headache. I spent many hours researching moving companies, calling them, and determining most of them were scams.

One night, I was having dinner with a friend. Both of us are organizers for Silicon Valley Offbeat Fun, an awesome group that put on wacky events like real life Mario kart, a mystery water tasting, One-Hour Bachelorette, and Collaborative NaNoWriMo.

“Moving is such a hassle,” I complained. “I should just post a meetup event and let random people help me move.”

It started out as a joke, but we kept building on it. We started to get serious. What’s the event’s theme? How are you going to attract people to sign up? How is this going to work? Will random people be willing to help carry boxes around? Excited, I ran home, got permission from the group’s senior organizers, and posted an event. (And yes, the event’s description mentioned that this was part of a move.)

I spent the next few days planning the big event. It was called “Escape the Zombies from Tetris Island”. It would be like an escape room with a story and puzzles. I wrote a script about how the inventor of Tetris was trapped on an island where he discovers zombies. Then, I made puzzles and hid clues around the apartment. Each of the clues was a diary entry describing how the inventor was bit by a zombie and descended into madness. It was going to be legit.

After all this preparation, I wondered, “Would anyone actually come?”

When the big day arrived, I was pleasantly surprised by 10 friendly faces. A few were my friends, others were occasional offbeat attendees, and a few were complete strangers. With the crew together, my co-organizer and I started “Escape the Zombies from Tetris Island”.

Sherlock Holmes: Tetris Style

“Team, the inventor of Tetris has gone missing,” I announced. “Your mission is to find what happened to him. Let’s search his base for clues.”

The team started looking throughout the apartment. Eventually, they found all the envelopes and scraps of paper I hid around the place. Then they put together the Tetris puzzle. It alluded to a zombie infestation and rumors of an experimental cure.

The completed tetris puzzle reveals “balcony closet”.

Escort Mission

“Team, it’s too dangerous to stay here,” I announced. “We need to evacuate the base and load of all the cargo into the shipping container.” This is where the fun began.

To make things exciting, we busted out the nerf guns. This was a stage like Humans vs Zombies: the humans have to escort cargo while avoiding getting tagged by the zombies. Some humans picked up boxes while others used the nerf blasters to keep the zombies away1.

“No one has to carry anything, but for the full experience, you should take an item,” I continued. Everyone except my ex-girlfriend carried one box down from the third story apartment to the shipping container in the parking lot. The group carefully carried cargo across the path, dodging dumb zombies along the way. In a short time, all the cargo was safely evacuated!

The Cure

“What’s that?” I asked and pointed to a scrap of paper in the shipping container. Someone picked it up and read it out loud. It was instructions for an experimental anti-zombie cure!

To cap off the event, the players lured a zombie into the shipping container, where he transformed back into a regular human. The grand reveal: it was the inventor of Tetris, and he’s back to normal!

After this silly finale, I bought pizza and drinks for all the attendees. I was worried that it would be a dumb event, but everyone had a blast. Even the founder of Offbeat Fun approved.

Tetris Zombies was the most fun moving I ever had.

The mission was a complete success!

1We had a bunch of safety rules like: no running, no zombies on the stairs, be quiet because the zombies have excellent hearing but terrible eyesight, etc. No one was injured.

Posted in Other | Tagged , , , | Leave a comment