code school

When mom called for her daily phone call a couple of weeks ago, I told my mom I finally found a job.

"Good, because I was praying for you,” she says.

Mom usually isn’t the type to pray for anyone; none of us has ever since Angela, who was always super religious, stopped going to church because “she was mechanically stuck,” her words. “God failed her” is how I chose to interpret that, just like He failed mom and dad and I. But mom’s new friend Kathleen has been taking her to church, and it sounds like she’s has been turning to religion more and more, probably as a way to find answers to problems that have no easy solutions. I’d protest, but I’m just glad she’s interacting with other people.


So yeah, I’m teaching at an eleven-week instructional course on web development at a local coding school.

People have told me that “makes sense” as a next career move, and I don’t disagree — I am big about empathy, I want to see local folks succeed. I’m warned that teaching the first cohort is the hardest. So far, that’s pretty accurate, trying to adapt the curriculum of previous instructors in my voice. I’m trying to be as eyes-open and purposeful in this position as I can, more so than I have at jobs previous.

I never thought to teach would ever be part of my career plan, but let’s be honest, I never thought I’d be moving to Miami, either.

This section was supposed to be about my last four months, searching for a job. I’ve re-written this section about five times.

I wrote about my resentment and depression, the low-key identity and career crisis, about simultaneously being proud of my partner hitting an apex of his creative career while accepting I will probably never hit the benchmarks I’ve set for myself.

All of it revisited pretty dark mental spaces, and given the first half of 2019 was also an emotional tailspin, I’m cool with not being in that headspace for a while.

But I’d be lying in saying there was nothing positive to be gained from that either. I learned a bunch about all the technologies I fell behind in the past three years. I was reminded that humans are social creatures. I tried to write a screenplay based on what happened this spring and realized that maybe that subject, in particular, was still a little too raw to write. I created this newsletter, the one you’re reading now.

“I started teaching at a code school,” I say to mom on the phone. The phrase “code school” is in English. I legitimately don’t know if she knows what a code school is, and I don’t know how to say the word “vocational.” I debate whether to use “for-profit.” I veto myself.

There is silence on the phone. Maybe she thinks I entered multi-level marketing.

“Computers,” I say in Chinese. “I teach computers.”

Mom pauses a couple of beats. “Well, I’ll continue praying for you,” she replies. “Just in case you want to find something better.”


Translation: Losing Face

Mom doesn’t know I’m going to Taiwan with my boyfriend next week.

For anyone who is the child of Asian immigrants, that’s a big fucking deal. First, friends of Asian immigrants would ask, what are you doing not traveling without your parents? What do you mean, you’re not going to visit relatives? What’s it like to not pack an extra suitcase full of jumbo-sized multivitamins and tins of Danish cookies?

And the answer to all of that is, “eh, it’s complicated.”

“Once you get into Hong Kong, you're having dinner with Miao Ai-Yi,” mom told me in 2007. “She has two children, slightly older than you. I called her, and she will be coordinating with you to meet at a restaurant.”

I am meeting an aunt and two cousins I have never met before. I remember my mom saying offhand that she has a sister who lives in Hong Kong. I don’t ever remember them communicating directly.

“And there’s something else,” Mom says. “You must pay for dinner.”

Why have I never met them before?

“I know, Ma —”

Why doesn’t mom talk to any of her siblings? She’s supposed to be the youngest of eleven or twelve siblings. Wouldn’t she communicate regularly with at least one of them?

Mom looks at me, dead in the eyes. “I’m serious. Pay for the bill.

I’m going to assume this is the part of the story where all the Asian folks are like, “well, duh,” and the Miami folks be like “bro it’s a bill what the fuck lol.”

Essentially it boils down to something we call “losing face,” and it boils down to this: you can’t owe someone else a favor. If someone owes you a favor, you must repay the favor, or else you look bad. And when you look bad, it gives the other person leeway to talk massive amounts of shit about you.

Like paying for a check at dinner, for example. You fight — FIGHT — to pay the bill at dinner because you’re showing how gracious you are. Nevermind every single person at the table rather not spend USD 300 for the five-course dinner for a meal of seven.

This is ingrained in every Chinese person, every child of Chinese immigrants. Imagine my surprise when I was at a Chinese restaurant with eight non-Asian friends the first year living in Miami. “I got this,” I exclaimed, flashing my credit card once we got the bill for dinner.

“Sweet! Thanks, Ernie!” said the table.

Twenty minutes later, I’m fuming in the passenger seat as we’re driving home. “I don’t get why you’re so pissed off,” Kareem said as I pouted. “You offered to pay for the meal.”


Miami took some adjusting.

I take my friend Bel with me to the restaurant in Hong Kong. Bringing Bel to dinner makes sense: she speaks Cantonese, I speak broken Mandarin. She is female, hopefully minimizing the “why aren’t you single?” questions.

The dinner goes mostly okay. I speak in English to my newly discovered cousins, Simon and Carol. One is an architect. They seem nice, and I wonder what life would have been like if I had a relationship with them growing up. I speak Mandarin to my aunt. I tell her my mother, father, and sister are well. I do not bring up that my sister is severely mentally ill. I try my best not to ask about what my maternal grandmother is like, merely mentioning offhand that I never met her. They do not take the bait, and my curiosity grows.

When we are wrapping up the dinner, I present to them my gift: a box of Ghirardelli chocolates bought at SFO. They thank me. We all know they will not eat said chocolates, and there’s a 75% chance they’re handed off to the next people who need spur-of-the-moment gifts. I know this because my parents did this with the boxes of Almond Roca they received from their friends and stored in a back cupboard in the kitchen.

Bel leans over and whispers to me. “Give me the card; I’ll cut the waiter off at the pass.” I micro-nod, hand my card to her, and she excuses herself to the restroom.

It is time.

By the time the waiter comes and announces that a card has been accepted, the ritual has started. There is feigned shock, mock outrage. A literal tug of war over the credit card. It is a whooping crane dance of pouting and negotiations. Someone may have fainted; I don’t remember the details in the commotion. I don’t know who actually paid for the bill, but does it matter? There are promises that debts will be repaid, the next time someone is in Hong Kong or America.

I look over at the group of ten, three tables over. They are doing the same thing.

Now multiply that by all the number of relatives I have in Taiwan unknown to me. All the visits, the boxes of Ghirardelli, the saving of faces instead of being a tourist. All the issues, bubbling to the surface: no, seriously, why doesn’t Mom communicate with anyone from her side of the family? Why does she refuse to visit Taiwan, unless I specifically go with her? What are those things that are so unspoken in the first place?

What if everything dad said about mom was right all along?

My American buddy TC who has lived in Taiwan for decades and knows the scoop knows that telling Mom about my upcoming trip is probably not the wisest choice. “If and when she finds out, feign concern for her health or something. Long flights. High crime. Rabid DPP members, that kind of thing.”

None of that will explain not answering the phone as she calls every day. The best solution I’ve come up with is telling her I will be traveling, but to Japan. I’m hoping to lean in on some of that internalized racism.

The future I deserve

You don't post much to this newsletter, because there aren't really that many new things to report.

You didn’t apply to any jobs last week. You also know those job openings slow to a crawl this time of year, so it’s gonna be rough for the next couple of weeks.

You’ve stopped counting the rejection emails you’ve gotten. In one recent video interview, an interviewer says, “I love your enthusiasm,” and there’s just enough of a backhanded tone in there to know that you fucked up your chances at that company. That position was for an engineering manager. The general read you’re getting applying for manager positions is that the professional experience you have isn’t enough; the team you managed wasn’t large enough. Ditto for Project or Product Managers. So maybe it’s back to development or design. But that requires a portfolio.

So it goes when you’re having a bit of a career identity crisis.

You’ve been catching up on all the technology you fell behind on. The same way people catch up with The Great British Bake-Off, except your livelihood is on the line.

While building said portfolio, you learn about the web app version of Photoshop, stumble upon a Twitch stream of a guy talking about Web Assembly, but with a radio DJ voice. He’s streaming from his empty office for a major tech company. The first thing you think is that that’s a really niche video stream. The second thing you notice is that he’s at his office on a Sunday at 7 pm, which means he easily spends 60-70 hours a week. Also, he’s most definitely younger than you.

The narrative in your head, of course, instantly goes to “you’re old.” Then it goes to, “you wouldn’t be in this position if you didn’t move to Miami seven years ago.” You suppress that thought immediately because it does no one any good.

You’re good at suppressing things.

Your mom has stopped calling every day. Things have been different ever since you reached your breaking point a couple of months back when you responded to her distress about her husband and daughter moving back in the house by saying you didn’t know how to help her anymore. Her last couple of calls weeks ago had been the polar opposite of all of this, drenched in syrupy optimism that you’ll find a job soon.

Now that she’s stopped calling, you’re not really sure if she’s stopped calling because the optimism is exhausting, or if you just don’t know what to say to each other.

You look up “how to get out of a rut” on YouTube. You stumble upon a TED talk of a psychologist who throws out the idea that the depression is in your head, something you just feel, and then your mind trying to make sense of all that nonsense tries to put a narrative on things. It would make sense, you think to yourself — your entire life, you’ve always been down on something, find a reason to be unhappy about something. You wonder to yourself how much of all of this is your mental chemistry, as opposed to having everything suck around you.

Your mind naturally goes to a thought you had when you were in your early twenties. That was when your sister had “the break” ten years ago -- a brutal, massive psychotic episode where she destroyed her possessions and ran away from home before checking herself into a hospital seven hours away. Your father “rescued” her the only way he knew how; by putting her on lockdown, a curfew, a military-style watch how he grew up. You have always wondered if you were going to turn out crazy as well, and when you didn’t hear voices in your head, you said, “thank god, I’m not as fucked up as she is,” and moved on with your life.

Except you didn’t get away scot-free, you know now.

When things are bad, really bad, you imagine yourself moving back with your parents. The family outings to McDonald’s, where someone has an outburst in the middle of a crowded fast-food restaurant, awkward silences when your sister asks a philosophical question and answers herself with a word salad. On the flip side: jobs. And friends too, sure, but friends you wouldn’t see much because you’d be living with your parents.

You know exactly what you would write, should you move back: “this is not the future I wanted, but clearly it’s the future I deserve.”

Your partner takes the leap and buys flights for the two of you to travel to Taipei over Christmas. Because of the long trip and how sitting coach in prolonged periods hurt his back, he insists on flying business class. You see how much it costs to fly business class. You protest.

“Christ,” he says, “can you just say you’re excited to go to Taipei?”

“I’m excited to go to Taipei,” you say.

“Good,” he replies.

He leaves the room to call Japan Airlines to finalize the tickets. You turn back to the laptop. There are 15 browser tabs for “budget luxury hotels,” and the paused tutorial you were watching moments before.

You’re not sure where to click next.

A fictitious, somewhat farcical conversation between me and the JavaScript programming language

Image result for michael douglas falling down

Ernie: Hey, JavaScript.

JavaScript: Oh. It’s you.

E: Yeah. So it’s been a while.

JS: Oh. It has.

E: I’m sorry I’ve been away so long. You know how it goes; it’s just been super busy the past couple of years. Being a manager at all of that.

JS: Mm-hmm.

E: Anyway, I’ve been hitting some roadblocks getting PM jobs because everyone wants more experience. So I want to get reacquainted with you because I’m applying for Frontend jobs again.

JS: (chuckles) Yeah? And how is that going?

E: Yeah, so, uh, it turns out that Frontend jobs aren’t what they were like three or four years ago. I can’t even build a static page anymore because apparently that requires JavaScript.

JS: Duh. How did you do it before?

E: Uh, with HTML? And CSS?

JS: Well, that’s pedestrian. You’re telling me you haven’t used any JS frameworks?

E: I mean, I learned backbone a couple of years ago. And Angular.

JS: Angular 1? Or Angular 2, where Google invited everyone to Salt Lake City for a conference and told everyone they were rewriting everything over again, all from scratch, so the year or two you spent building things was completely obsolete?

E: (sigh) Angular 1. I was at that conference.

JS: Oh, you sweet summer child. In the time you were away, trying to talk about your “feelings,” I’ve met someone. His name is React, and he’s now required for 85% of the jobs that now exist in the market.

E: But I don’t know React.

JS: Hrrm. You shouldn’t have spent those three years teaching millennials how to set SMART goals then.

React: Hey. I’m from Facebook. You look famil—

E: Yeah. I interviewed with Facebook four years ago. Some nineteen-year-old gave me an interview over video chat and I got a rejection email, like, ninety minutes after.

React: Damn shame. We offer free Segway rides between buildings.

JS: Listen, all you have to do to ever have a tech job again is to learn this completely new JavaScript library. No big deal. It’s not like your identity isn’t completely centered around web development or anything.

E: It kinda is.

JS: Well then. Get to studying, pork chop.

(Sometime later)

E: (looking through docs) What is this JSX nonsense? Like, HTML as javascript fragments? And since when has it been okay to inline CSS inside of Javascript?

JS: Since React said so.

React: Facebook offers free mango lassis in our cafeteria.

(More time passes)

E: This is insane. There are, like, two ways to write components. Half the docs on Google write them one way, the other half write them the other way. So which version do I learn?

JS: lol I dunno. Both?

E: For fuck’s sake.

React: Did you know Facebook offers an egg freezing policy? Because having a baby should never be on a product roadmap.

(Sometime after that)

E: Hold on. Your syntax has completely changed too. Did… did you get a makeover?

JS: Oh, ES6? This little thing? Do you love it?

E: I mean, I guess the ASCII arrows look good on you, I just… I knew you as someone else. I can still code with the old version of you, right?

JS: You could, in theory. But.

E: “But?”

JS: I mean, think about it. You’re doing coding interviews. People are going to be looking at your code. You could code the old way and you wouldn’t be incorrect. But you don’t want people thinking you’re outdated, do you?

E: …

JS: Do you know who’s outdated? COBOL programmers. Do you know who was a COBOL programmer? Michael Douglas in the 1993 action thriller, Falling Down.

E: Michael Douglas isn’t a COBOL programmer. That was a role. He was acting.

JS: Suicide by cop. That’s how he dies.

E: Dude.

JS: (loud whisper) You’re gonna lose your shit and a cop is gonna kill you.

(Sometime after that)

E: I think I’m getting the hang of you, React.

JS: Sweet. Now, look on the horizon.

E: What?

JS: Just look.


JS: It sure is. It’s called Redux. It’s a state manager. You get to learn 150 new terms and a whole bunch of boilerplate to match. It’s a rabbit hole. Or, you know, something a little more than a rabbit hole.

E: (screams as he’s sucked into the void) HOW DO NEW DEVELOPERS GET THIS?!

JS and React in unison: They’re all half your age.

E: Oh.


That time I completely bomb my technical whiteboard interview

Man, how bad could it have been, you ask yourself?

Last week, I had a technical interview with Google. It went badly.

And it wasn't just, like, Asian modesty badly. The last 45 minutes were a slow-motion train wreck, one of those things where the interview finishes and both parties just sit in silence, mortified and let down; a one night stand where someone gets a little too relaxed and poops the bed, or calls out the name of their mother, or bellows out "HITLERRRRRR" just as they're climaxing, and now one person has locked themselves in the bathroom and the other is checking their phone, hoping an Uber can travel by the speed of light.

Everything up to that point had been okay. My resume is pretty good, I'm great with personality, I can charm the pants off of people.

I am warned about the types of things you get tested during the Google interview. I am prepared for this as well. I download an e-book on "cracking the coding interview." Google isn't mentioned, just inferred. I study every day for at least an hour or two.

I tell select friends I'm applying to Google, that I have, like, a 20% chance of getting in. Are you studying for it, they ask? Of course, I say. In the book, they give you a list of concepts to explore, things like hashes and lists and queues and computational times. There are other concepts like binary trees, breadth and depth-first searches. I know the ideas as they're pretty straight-forward. Still, I've never had to implement a binary tree in a non-academic setting, ever. It may be because I've always focused on user interfaces - what a person sees on the screen. Even the stuff behind the screen is, like, business logic. I don't bother building any of these concepts out in the programming language I know because there are 40 other concepts I am trying to study first.

I don't bother building out a binary search algorithm in the programming language I know. It's on my list of things to do, it just never becomes the next thing to do.

(Pause) Anyway.

The interviewer calls you. They are from either Australia or New Zealand. They ask if I have any questions about the company, and even though neither of us hopes I don't have any questions, I ask anyway because I don't want to look like I don't care. He asks a "what would you do in this scenario" question, and I confidently give an answer. It could be wrong as fuck, but at least I answer it confidently.

He moves onto the coding question. The legendary whiteboard interview. How do you find a range of target numbers in a sorted array?

Here you go, you think to yourself. Your research gives some strategies: the worst thing to do, they say, is not to code at all. The way to not code at all is to overthink the problem. Code it any way you can, they tell you. Brute force.

You start to code out the "brute force" answer. You type about 30 characters until he stops you. Okay, that's enough, he infers, now do it the ideal way, in O(log n) time. He is telling you to build a binary search algorithm with iterating left and right pointers to find boundary edges. You know this because you read about it in the book.

Basically, he’s telling you to skip the brute force solution and just get to the fucking point already.

It throws off your tempo.

You try to implement the thing. You know you have to find a midpoint. But you forget how the pointers move to calculate a range of numbers. Does the right pointer move to the left, only stopping when it hits the left range boundary? Or is it the right?

It's silence on the other side. A vacuum. Your interviewer is probably writing a TPS report. Maybe he's drinking one of those mango lassi drinks he gets for free.

Does the right pointer stop after it crosses the left pointer? Should the left pointer move first? What if there were infinity target numbers? What if they were zero? Goddammit, you totally remember how to do this if you were just finding one element. But a range? What if--

And it's here, around the time you've re-written that function at least four times, where your mind blanks. Blank, as in, you're completely void of thought, and you feel your chest tighten.

What comes to mind after thinking about nothing is the time Angela had that one particular psychotic break, and the police had to be called to dragged her away. She goes catatonic, and her muscles go completely limp and crumple to the floor, making it more difficult for the cops to move her to the car. You catch yourself thinking about your mentally ill sister in the middle of an interview with Google because you are freaking out.

You know how this interview is going to end.

"Can I get a time check?" you ask.

"We're already 20 minutes over," he says," but take as much time as you need, I guess." You read between the lines.

"I can't do this," you blurt out.

"What?" This is the equivalent of job interview suicide, but it's true, you’re done.

This is where the silence happens, where all those feelings of disappointment and shame all bubble up. Google's core principle is optimization and efficiency, and you just wasted everyone's time. "I appreciate your time," you say under your breath. "A recruiter will follow up with you shortly," he responds. It's a throwaway comment.

The first thing you do after it’s all over is send an email to your friend at Google thanking her for the referral and apologizing she won’t get that referral bonus you both were hoping.

The next thing you do is devour an entire fucking pizza to numb out your feelings.

Later that week, I got turned down for two other engineering positions. I am, more or less, back to square one. This time with a bullet-riddled ego.

I guess I'm at a crossroads as far as my career is concerned. I've always thought that I've been an okay developer, but maybe this is a sign I need a different strategy. Perhaps I need to learn that Javascript framework that became the hot new thing while I was taking on non-techy roles. It may mean I need to find more roles as an engineering manager or a PM, even though I've technically never interviewed for those positions before.

I have to believe I’ll find a job soon. Even if my brain chemistry is screaming at me to give up and move back home with my parents, there's a part of my brain — the one involved with logic, or farces I guess — convinced there's a position out there that I'm capable of doing while fitting my passions and making a suitable wage.

It just won't be programming at Google, I guess.

Loading more posts…