Tuesday, November 25, 2014

Junior Developers and GDC

Disclaimer: This post is targeted at recent grads and people with little to no professional experience. 
So, you’re going to GDC...

If your first thought is, "But I'm not going to GDC!” re-read the first sentence and subtract two periods. You're going to GDC.

I've been asked, “What is the best way to get noticed as a programmer?” Being at GDC is certainly one of them.

Colloquially, a large part of hiring comes down to team fit. There's an old adage: "Could I see myself having a beer with this person?” If you read no further, then walk away with this: the principal benefit to GDC is that you break down the email barrier and can get straight to interpersonal interaction.

Costs


If you don’t live in the Bay Area, GDC can be expensive. And there are ways to cut down on that. First things first, buy an Expo Pass, not a student pass. You may not be able to get into all the sessions, but you can attend sponsored sessions, and recruiters often have session passes that can get you into individual talks. If you're wondering why to skip the student pass, simple, exposure. On Friday, when all the other students arrive, you'll have already made your rounds when it's significantly less crowded. That said, if you're really interested in AI programming, try to afford the summits and tutorials pass. The AI summit is a great way to interact and network.

Second, hotels. So, you're looking around the Moscone. Everything is $300 or more a night. Don't pay that. If you're willing to take a cable car, bus or walk, you can get down to under $150 a night. Or, stay in a hostel; that's even cheaper. Once you're under $300 a night, take on a roommate or two, and you're set.

Third, flights. There's not a lot of help here. Kayak has a great Meta search, but this is a hard one to work around.

Finally, you can always apply to be a conference associate for a free pass and hotel room, but that's pretty competitive and you should probably have done this earlier.

Preparation and Small Details


Be sure to print multiple resumes—a minimum 30—on decent paper stock and put them in a good-looking binder (I suggest leather bound). Don't use your home printer. Go to a print shop (such as Kinko’s) and pick something with weight and texture. The quality of the paper your resume is printed on makes an impression with the right people.

Bring a portfolio on a portable device. That’s less true for programmers, unless you've made a game for Android/iOS. If you're an artist, bring it on a tablet; it's lighter and easier to carry than a large flip binder. I don't want to have to pull out my phone and visit your website, so please don't ask me to.

Create personal, double-sided business cards on good quality material. Make them clean, easy to read, and quick to gather your profile, name, email and phone number. QR codes are OK to use for a programmer; keep it on the back and hyperlink your LinkedIn page or resume. Make a note of what the link is if you use a QR code.

What to wear? Brenda Romero has written about this before, and she's been spot on. So I won't try to elaborate here and simply restate what she has. Your best bet is a nice button-up shirt; good, modern jeans; and a comfortable, but nice pair of shoes. (Avoid new tennis shoes, while nice, in favor of something more upscale.) Google what other people wear if that's not overtly clear. One thing Brenda doesn't explicitly say, I'll add here. Iron your shirt.

Other items. Don't forget your phone/tablet charger, hand sanitizer, copies of your resume on USB, and anything else you can't survive three days without. Also, bring around 20-30 USD in one dollar bills, plus some other cash. When you're at a party or bar, regardless of whether it’s open or not, be sure to tip your bartender. Similar to what I mentioned above about the paper you print on, this is one of those little details people notice.

Finally, come with Realistic Expectations. Those last two words are the emphasis here. More on this later.

Expo Floor


If you're only on an Expo Pass, the Expo floor is a great attraction. (If you're on a Main Conference pass or better, stick to sessions.) However, the Expo floor is not your ideal place to network. That does not mean it's a time to relax and let loose. There are a lot of people on the Expo floor, and a lot of interesting people to interact with. For the most part, the people in the booths are there to sell or pitch a product. (The big booths, Sony, Valve, etc., may have developers.) The marketing, project managers and sales force on the floor aren't going to be a good use of your time when you’re trying to break in. That said, pay attention to who's talking to them and about what. When someone is asking questions intently about a product or service, listen in and learn. These can springboard intelligent questions and interactions later.

Swag: It's cool. It’s shiny. And, it’s awesome! Skip it. Seriously. It's heavy and you don't need to be hauling it around all day. I suggest not picking up anything. You're here to network, not loot the show floor.

The perk of the Expo floor is person-on-person interaction. Especially in the seating areas outside of the floor. You'll find plenty of people who are resting, taking a break or otherwise planning their next stop. Look for and make opportunities.

Career Pavilion


Ah, the career pavilion. Bustling full of people, booths everywhere and recruiters as far as the eye can see. A job seeker’s nirvana. Step one: Don't panic. The career pavilion is a great place to get face time with recruiters; it's also not necessarily the best way to walk away with a job at GDC. Sound counter intuitive? Well, it is. A lot of the booths are inundated with people with little to no industry experience trying to break in. At one of my past employer’s, we did not take resumes from recent grads at our recruiting booth. We'd direct you to the website. Well, that's not entirely true. A really exceptional standout might get referred to the back for a chat. There are simply too many resumes to take them all. Stick to smaller studios and lines, and don't burn hours waiting to get to the front of any particular line. I often recommend this to people in general for breaking in.



Spend your time in the pavilion chatting with recruiters, and ask intelligent things about their company. Research the exhibitors in the days beforehand. It helps. Don't get frustrated when someone tells you they can't take a resume or review a portfolio. That's going to happen. Don't fanboy. Read the section on communication. One of the things to keep in mind with the pavilion is that it's a place to follow up after meeting people somewhere else. If we connect elsewhere, I'm likely to tell you to stop by our booth between X and Y times to chat more.

Parties, Bars and Events


This is a great way to interact face-to-face. Everyone is more at ease and unwinding. This lessens the social anxiety of dealing with anyone (unless it's a recruiting party, which has its own set of rules).

No matter what event you're at, know your limit and stay well ahead of it. Early on in my career I was at a recruiting party trying to get a job. I met a nice, exceptionally outgoing engineer, also on a job hunt, who drank until he became obnoxious and eventually passed out. The lead programmer I had been chatting up had to pause, excuse himself and find two recruiters to carry the intoxicated applicant to a cab. Needless to say, the outgoing engineer did not get an interview, and I got an awesome story out of it.

If you've traveled in a group, this is a good time not to cluster with them. People tend to stick to their own circles; it provides comfort. If you spend the entire night chatting with the friends you came with, you'll never meet anyone new. When you're at an event, you'll find groups of people from the same company sitting around in their familiar social circles chatting. The trick is to break into these in a non-awkward way.

At the right event or bar you can easily connect with people in a position to get you an interview. One of the best tricks I've used for making connections is chatting with people while waiting for a drink. You've already got a common purpose and connection. (You came to the same event, after all!) Engage them, grab a card and meet new people.

One big don't: If you're going to wade into a group without a good segue, don't force yourself into the conversation. Instead, join it organically. Conversely, don't sit there silently eavesdropping for too long, it's just awkward.

Communication


This is by far one of the hardest things for people, especially many programmers. “Communication is key,” they say. Yet, for an industry full of introverts, communication can be terrifying. It takes a lot of nerve for many people to walk up to a complete stranger and engage in conversation. While it is not possible In the course of a single blog post to overcome all limitations in personal soft skills or nerves in social interaction, here are some tips to avoid common mistakes many people make without even knowing it.

First things first, be mindful of where you are and be mindful of the other person. It’s GDC. During the day many people have sessions to get to, and get to in a hurry. If someone is obviously rushing to a session or anywhere for that matter, be mindful of that and don’t slow them down. I've had people approach me when I’m running to a meeting or session (more accurately speed walking). I don’t want to be late, but I’m also not going to ignore you. What ends up happening is that my first impression of you is at odds with my constantly checking my watch to see how late I am. And I won’t remember the person—you—that well.

Two final things to keep in mind when talking to people at GDC: One, not everyone is in your discipline, and, two, don’t just ask questions, actually listen. Let me expand. Assume when you’re talking to someone not in your discipline, he won’t understand the lingo. I’m not a graphics programmer; I understand a bit about it, but I won’t follow if you dive into details about shaders and pixel swizzling. It’s worse when the person you’re talking to isn’t a programmer. Second: don’t just ask a question and wait for your chance to start talking. Listen to what she has to say. If you come across like you don’t care what someone has to say, you can assume that person will feel the same about you.

Under no circumstance, should you ever…

Open with: “Are you hiring?” or “I’m looking for a job.” or “I really want to work for (insert name of company)” or “Can you introduce me to your HR?”

Instead: Ask about them; talk about common points and interactions. You’re making a connection, not trying to get a job. Sounds weird, doesn't it? You came to GDC to get a job or change jobs, right? Wrong. Trust me. I’ll get there. Seriously, stop trying to get a job from this person. Just get to know them and make a friend. I have legitimately been asked all of the above. Well, OK. The last one was asked to my wife, but the point stands.

Ask: “Could you please look at my resume?”

Instead: Exchange cards; follow up. And make the connection. If they ask for your resume, then by all means, give it.

Ask: “Can I have your business card?”

Instead: Say, “Here’s my card, let’s stay in touch.” Normally the other person will give you theirs in return. Sometimes they may tell you they don’t have any, or they’re out of cards. If that’s the case, it is what it is; don’t sweat it.

Ask: “Can I get an invite to X party?”

Instead: Just no. If they’re going to, they’re going to. This is never OK when you’re not good friends with the person being solicited.

Ask: (OK, this isn't an “ask.”) “I have this really great idea for this game because its super cool like a monkey with light sabers on his hands while riding Chuck Norris on a hover board.” (Quote partly inspired by a fan email to BioWare)

Instead: Again, just no. Everyone thinks they have a great idea. (See the section on Realistic Expectations.) If you want to be the person coming up with ideas, you've got to earn that. That’s a long ladder to climb, and in the time between now and then, you need a practical skill to build games. That practical skill is what’s going to get you hired. Focus on that.

Ask: (Again not an “ask,” but I have a theme here…) “Man that update to (insert name of game) sucked; I could have done better” or “That person’s a jerk; I've heard he (insert something or other).”

Instead: Assume the person you’re talking to is the one who designed that feature, or at a minimum is close friends with the person who did. I've had people rant to me about how they hated a boss encounter on WoW and could have designed it so much better. The designer is terrible, etc. Well, I know that designer, well and personally. And you've just ensured that I’m not going to want to chat with you. I could give you other examples that I've seen or heard of. It happens all the time. Don’t let it be you.

Ask: Anything super fan of anyone famous or semi-famous.

Instead: It’s great to express that you like their work. But everyone says that game was “the best ever.” Pick something more unique. If you really liked a mechanic, talk about that and how it was game changing. Find a jumping-off point.

Ask: Anything that assumes what the other person does in the industry.

Instead: Ask what they do, who they work for. Just because the person looks like an artist or a programmer or whatever, does not mean they are.

Ask: Anything that can come across as sexist, demeaning, racist or otherwise offensive.

Instead: I shouldn't have to explain this.

Ask: Anyone to lunch without first talking to them some.

Instead: There are some exceptions to this rule. Generally, people have fairly busy schedules during GDC week, and, depending on any number of factors, you’re usually going to be told, “No, sorry.” There are some who advise against this, and Rob Coble over at Full Sail may disagree, but it’s best to have a bit of rapport before broaching lunch. Granted if you’re chatting to someone outside a session and it’s noon, it’s probably OK to say, “Hey, I’m going to go grab a bite to eat before my 1 p.m. Do you want to walk down to (insert name of place with food) while we talk?”

Ask: For a referral to a company on a GDC meeting alone.

Instead: A referral is my vouching for you. It marks my reputation as much as yours. If I don’t know you well enough to stake my reputation on you, I’m not going to. So don’t ask.

Realistic Expectations


So, you’re at GDC. It’s important to have expectations of what you’re going to leave with. First, as I've suggested above, in all likelihood, you’re not going to fly home from GDC with a job. I won’t say it’s impossible. It happens. I did it when I first broke in. However, the most important part of GDC is the networking. You’re meeting people and making connections. Once you’re established in the industry, mobility depends largely on recruiters approaching you and referrals. Most companies I've worked at get the largest part of their long-term hires from referrals. Building relationships encourages people to think of you when they have an opening that fits you, or being willing to recommend you when the time comes.

Another important thing to understand is that while people come to GDC for a variety of reasons, we’re all here because of a common industry. I go for sessions, networking and to catch up with developers I have worked with in the past whom I only get to see at GDC each year. There are plenty of people who find GDC fun. I do, and you should, too. You also need to keep in mind that we’re there to take away something meaningful as well. After hours, in post day events, people are networking and having fun. Keep this in mind when talking with people. It’s okay to be somewhat informal at parties. You don’t have to be stiff and rigid in what you talk about.

With that in mind, when you've not been in the industry long or at all, you need to be realistic about being hired. If you’re going to ask me about getting into BioWare, it’s important to know, you've really only got a shot at BioWare Austin. That means you’re not going to work on Dragon Age or Mass Effect, because those are at the Canadian studios (and you knew that because you researched ahead of time). When people ask about getting into a Canadian studio, be it Black Tusk, Eidos MontrĂ©al, BioWare, Playtika, or others, the answer almost always is going to be that, as a junior developer, it’s not realistic unless you are Canadian. And that brings me to my point: Don’t expect to get a job in another country as a junior developer. Getting a work visa is hard and expensive. It has to be justified to immigration, and is typically reserved for more senior developers. If you really want to work in another country, get some experience and learn the language. For example, if you want to work on Mass Effect at BioWare MontrĂ©al as a non-Canadian, get a few years under your belt and learn some French.

Keep in mind where you are applying, when you walk up to a booth like Blizzard, Riot or Valve. Understand there are thousands of applicants in that line, both experienced and inexperienced. Don’t put all your eggs in one basket, or be upset when you’re handed a card with openings and a website to apply on. If they took every single resume that came by at many of those booths, they would leave with suitcases full of resumes. Don’t be discouraged when people give harsh answers. A well-known recruitment agency’s booth at GDC once told me I had no chance of breaking in. It will happen, and you can’t let it beat you down.

Be realistic about your skill set, abilities and experience when networking. Yes, you've been programming for two+ years at school. Sure, you've “shipped” games in a class. These do not count the same as two years of professional experience in the eyes of a recruiter. They are great things to see on a resume, and we like seeing them on resumes. However, be honest about academic experience, and understand that, to a recruiter or developer, you’ll still be viewed as a new grad with no industry experience until you've shipped between one and three titles. Generally it takes three to five years in industry to be considered solidly mid-level.

Be realistic about follow-ups. Not everyone you meet is going to accept your LinkedIn request or reply to your follow-up email. That’s just the nature of these things. Personally, I don’t accept LinkedIn requests for the most part from people I don’t have some form of relationship with, be it working or friendly.

Final Thoughts


I know that’s a lot. For many people looking to break in, GDC can be one of the most daunting things to consider. However, your trepidation and terror are, thankfully, not warranted. GDC is ultimately an experience. For most people, it’s a fun one. And it should be for you, too. The people you meet at GDC are taking it in just as much as you are. Even old jaded developers still enjoy GDC.

So, take in GDC for all it is worth. If you walk away having met five people and learned five things, you've come out ahead. This industry is tiny. The people you meet at each job, convention or meetup will continue to cross your path for as long as you are in it.

Do remember your follow-ups. If they tell you to also email, apply online, come by, call or whatever the case may be, do so. Every interaction can make an impact, positive or negative. So if you commit to emailing, or following up, do it. Finally, treat every interaction as a sort of interview. Even if it is not. Even if it is at a bar. Even if you don’t think it is.







Friday, October 3, 2014

Fall: The Great Pumpkining

Fall is far and wide my favorite time of year. Leaf change, Fresh Hop crops, Thanksgiving, and nice cool weather. Without fail each year fall is heralded in with fervent celebration of all things: Pumpkin. That's right. Pumpkin spice lattes, pumpkin pie, pumpkin this, pumpkin that, and most notable Pumpkin Beer. Given the sales of pumpkin ale, and the fact everyone has made one(and for good reason, in October and November Pumpkin Beer outsells IPA, the number one seller in the US) I decided it was finally time to join the foray, and brew my own Pumpkin Ale.

First, let's start with research. For Science of course.


My Untappd will tell you I was not pleased with most of the above. The standout winners being Nelson's Organic Pumpkin Ale, Rogue Farms Pumpkin Ale, Dogfish Head Punkin, and Post Road Pumpkin Ale. The more I tried, the more I realized I was gravitating towards liking the "Pumpkin Pie In A Glass" taste. Strong Pumpkin flavor, balanced spice. So that quickly brings us into style.

We can't take any strong flavours or styles. Stout is right out the window, and anything with too small of flavour or body isn't going to hold up it's malt to the spice and pumpkin. Let's toss out most lagers, blonds, and pilsners. I gravitated towards an Amber. Selecting Crystal 60 to provide color, and some caramel flavor. Victory, a Pinch of Chocolate, and American two row to round out the malt bill. Add to that a bit of dark brown sugar and maple syrup and we've got our fermentables. For the Hop schedule, Liberty on the bittering, Golding at just before flameout. Mostly to provide a nice spiciness and aroma.

And that leaves the all important part. Pumpkin and Spice. I personally like pumpkin spice, so investing in fresh spice to grind for a batch seems worth the investment. I made my batch already by combining Cinnamon, Ginger, allspice, cloves, and nutmeg. You can find plenty of recipes for this online. For the pumpkin, I prefer canned. Processing raw pumpkin is just too difficult to make worth your time. Add spice to taste, 1-2 tablespoons should be sufficient.

Personally, I'm going to route of Pumpkin into the mash. You get the profile desired, and it's one less step than trying a pre-boil. Ofcourse it adds difficulty to the Sparge. I'll ferment on WLP 060, a nice rounded yeast. That will help keep a mellow profile. Here's hoping the fermented result will be interesting.


Thursday, September 18, 2014

Changes in Attitudes, Changes in Latitudes

It's funny, once you neglect a blog, its so easy to keep putting off going back to it. It ends up festering away as, I really should do this, some day, some time. Well I guess that's today.

I suppose there is some catching up that needs to be done. In the past few years, I've managed to ship Diablo 3 for PC & Consoles. Quit Blizzard, move to Montreal, Quebec, Canada. Contributed AI to Thief 4, changed out of AI to a fully Online/Network path. (I was a generalist on Diablo 3, so I had been doing some before). My tour at Eidos Montreal lasted a brief 6 months, before a transition to BioWare Montreal. I ended up contributing a small bit of Gameplay to Mass Effect 4 before migrating to the Online Team of Battlefield 4, something still unannounced from BioWare, and Dragon Age: Inquisition. From there it was off to Microsoft to do Online Systems work for Gears of War and such. Somewhere in there I managed to find time to start home brewing again, get married, and have a son on the way. 

There's a lot to say, and I'll spread it out some. That said, I'm going to defocus this blog a bit away from just game development and into more general online, AI, security, and home brewing. Since I've had a few interesting crunches in the past, I'll take a bit of time to post mortem bringing Battlefield to Xbox One & PS4, and maybe somewhere touch on Thief. 

Thursday, August 25, 2011

Beta Woes

As most people know, we're working towards an inevitable beta. This has destroyed my sense of normal working hours. This week has been chained 12 hour days. It's actually been a wacky week. Between dividing time helping friends, getting my 12 hour days in, and trying to have a semblance of a social life.

Also apparently there was a earthquake in Virginia. Who knew they'd hit the east coast? Living out here for so long we take them for granted I suppose. Eh the grounds shaking? Go back to bed. Richmond shook from a 5.9, if you've never experienced a tremblor over 3, feeling the ground move like a sin wave is... discomforting the first time. Why people are surprised the phone lines suddenly hit capacity is beyond me. Well yes, of course they did, half the folks had not a clue what was happening. I did find it ironic, at the time, my mother called to reassure me everyone was okay. Personally I had seen the quake news already and had mostly dismissed it due to the magnitude. Granted, 5 years ago, I'd have said I'd never get used to that.

Anyhow, on the Beta front, we're plugging towards some undisclosed deadline. I'm working harder, not the least of which is to prove myself. The other is to make a badassical game.

Thursday, July 7, 2011

Subversion woes pt2

Okay, In fairness to subversion, I feel the need to amend my past statement. Subversion doesn't need to die, but all its poor implementations do. I finally got decent performance out of it, after removing Tortoise (Not even a Hoveraroud would have saved that one), Installing Ankh and a command line SVN tool. Both of which raised my times from, O(N) where N = Files in source, to O(N) where N = files checked out, or files modified since the last sync.

Which means, I ended up installing 3 tools, to get what perforce does with 1. On second thought, subversion can still diaf.

Wednesday, July 6, 2011

Yes I'm rewriting THAT system before beta

Every now and again in the natural evolution of a project. You are going to end up with 2 similar paths for doing task X. Like all good divergent paths, eventually path A != B. You end up spending days, and days making A behave like B. But A isn't B. Too many times I watch people say, duct tape it and move on. Fix it, it costs less. If you don't have a producer that can understand frontloaded time now, saves bugs later during live, I suggest practicing in a mirror, your spouse, my cat (he has plenty of experience listening to me ramble, often sober).

That's why with a beta looming in the future, I'm re-writing a major gameplay system from scratch. We really don't spend enough time as engineers paying down the technical debt we accrue in the "Just ship this milestone" mentality. For Console guys, it's not as bad, its often in the gameplay layer and we can in practice, dispose of those parts. For live teams, that debt becomes your successors thorn.

Monday, June 27, 2011

Karma

Saturday I go out and get new tires on the FZ6R, So I decide to go up and ride Santiago Canyon Rd. I'm travelling up El Toro, and pass a sport bike and 2 Harleys off the opposite side, flip around and ask if they need help. Sure enough, one of the Harely's has broken down. Apparently I was the first person to stop in the 20 minutes they had been there. Helped them get it up on the tow truck, and get under way. Nice folks, invited me to come grab dinner and a beer on them. Sitting there waiting for the tow truck, not a single other person bothered to stop slow down, heck, most didn't wave.

When did the wave stop being common courtesy amongst bikers?  Also do you wave to a Can-Am? That last one has bugged me for a bit. Anyhow, I now need to find some time to scrub these tires before Glendora Mountain Road this upcoming Saturday. Urf.