Jaymin Kessler




if( strcmp(your_name, “Jaymin Kessler”) )



Seriously, I’m writing this one for me and if you read it, I won’t be responsible for the 10 minutes of your life that you can never get back.  You know that thing they do on some gaming news sites where instead of posting an interesting game-related article, some guy writes some other guy a letter about how he had to go out and buy ランドセル that day because the school year was starting? Yeah, well its kinda like that but the guy writing the letter is me and the intended recipient is me 7 years from now.  Again, last warning, unless you want to read a summary of the life of some guy you never met and really don’t care about, click on over to Wolfgang Engel’s excellent article (/2011/06/13/screen-space-rules-for-designing-graphics-sub-systems-part-i/)


Side note: I am also writing this because Mike Acton challenged the AltDegBlogADay authors to try writing about what we suck at.  Sometimes I suck at life.  Not sure if this is what he meant…


Background, or more specifically, ZZZZZZZZZZZZZZZZ

kinda looked like this, but different

I started programming in Kindergarten or 1st grade when my mom bought me a Commodore 64 and made me sit with her and type in programs out of the manual.  My first program ever was the hot air balloon sprite animation, and I remember it vividly for two reasons:  First because it was the exact moment that I completely and totally fell in love with programming, and second because its the last time I ever wrote any graphics code until 2009.  Shortly after my mom became quite aware that she had probably done a bad thing when I stopped hanging out outside with friends (or having friends), and so she sent me to Camp Ramaquois for nature re-education.  Luckily for me, Ramaquois had a computer lab in which I spent precisely 100% of my time teaching the other kids C64 BASIC. (side note, my mom _wished_ I was sitting back at home programming in the basement once I got into phone phreaking)


In 5th grade a classmate called Monsoor Zaidi and his cousin Ursil Kidwai mentioned to me that there was a language called C that magically allowed you to just make up your own commands and the computer would run them.  I’m still to this day not 100% sure what they were talking about but right around then I became a C programmer.  Assembly, PASCAL, and Lisp followed.


College, or more specifically the first and last time in my life I thought I was talented

uhhh yeah, I was /that/ guy in college

True story: I actually went to film school for 2 years because I wasn’t aware that programming could be a job that people did professionally.  Undergrad was a weird time for me.  Many of the people I went to school with just started programming when they got to school, which I found quite unbelievable.  Of course working with people so new to programming, I started to wonder if maybe I was pretty good at this programming stuff.  I had been doing assembly for years and kids in my class were really struggling with it, so maybe that was somehow indicative of natural talent (spoiler alert: no, no it wasn’t!)


I did my masters degree in AI because I was so cyberpunk and thats what people who read William Gibson books and want to live in computers do.  You know who else goes to school for AI? People who design optical systems for recognizing flaws in chicken eggs.  In other words, it was fun but not exactly what I imagined.  Grad school is a world where people spend very little time writing code and a lot of time writing reports and papers.  F-that.


Skip here for crap about working in the industry

both a screenshot from the first game I worked on, and an approximation of what I used to look like

Jon Sterman, an old friend from 2600 was working at Hypnotix when I was graduating, and got me hired by recommending me.  I had some PS2 Linux VU1 assembly demos but nothing too too insane.  I remember 2 things about my first day of work (2004 June 1st @ 10:14AM).  First of all, Andrew Grabish (programmer and dress wearer) picked up on my excitement and enthusiasm and told me that in 7 years I wouldn’t be so damn excited and enthusiastic.  Those of you who follow me on twitter may have noticed my tweet from 2011 June 1st @ 10:14AM when I finally after all these years got my revenge and got to tell Andrew how I am even more enthusiastic and passionate than ever, and that he was wrong.


The other thing I remember about my first day is that its the first time in my life that I realized just how much I sucked.  Exchange with lead programmer is as follows:


Josh: do you… enjoy… working in the game industry?

me: oh yes, of course I do!

Josh: do you intend to… oh, I don’t know… /stay/ in the game industry?


To this day, I still get really excited on the 1st and depressed around E3, since I sat on my couch watching the coverage thinking how jealous I’ll be of all those game makers when I am forcibly ejected from the industry.  So I had a choice: get better or continue sucking.  I thought I chose the former but I’m sure it looked like I went with the latter.  Maybe I sucked too much to know how to suck less?  It sure didn’t help that I often went into panic loops where I would try something that didn’t work, start to panic, as a result try the same thing again which didn’t work again, and that made me panic even more.


In 2005 EA Tiburon bought Hypnotix and we were all off to the magical world of Orlando.  Tom Kirchner had me convinced that everyone at EA, even their herbs, were powerful wizards capable of amazing feats of engineering that normal mortals could never comprehend.  It was right about then that I decided it was time to work my ass off, and really step up my game.  I probably haven’t rested since.  Never underestimate the power of someone with minimal talent, an inferiority complex with something to prove, and an insane obsession with programming and learning new stuff.

you never really fully get over your cyberpunk phase

In 2008 I applied at Q-Games.  I was a fan of Monsters, but that had nothing to do with it.  I learned at EA that I could have fun working on stuff that I didn’t play if I was learning new things.  My primary reasons for wanting to go to Q were


  1. Wanted to work with the guy who did the PS2 duck in a bath demo
  2. Wanted to work on PS3 OS projects like the XMB and gaia earth visualizer
  3. Wanted to live in Japan
  4. Wanted to avoid writing cross platform code like the plague that it is


I remember thinking how fun the programming test was, and taking days off from work to work on it.  I really worked my ass off, trying to find different approaches to the problems.  In the end, they were nice enough to hire me, but 3 years later I checked my programming test again and there is no way I would have hired me.  I hope that means I suck a little less than I did 3 years ago.  Q gives me a lot of interesting problems to work on and affords me a lot of time to do free research, so for someone like me whose only goal in the world is to learn new stuff and improve, its an ideal place for me.


Factsheet for later comparison, aka time capsule of embarrassment

To future me, I just want to talk about where I am currently at, because its probably amusing how much my perspective will change in 7 years.  Also, I am really looking forward to looking back at how ridiculously little I knew back in 2011


  1. making games is nice and all, but I am in it for the interesting hardware and the chance to work on really cool problems.  Luckily I can do that in such a way as to maintain the illusion of usefulness to a game company :) If I ever get kicked out of the industry, I am becoming an embedded programmer
  2. Because for me, most of the fun of programming is finding interesting uses for weird instructions, I tend to focus a little too much on the low level.  I’m starting to get better  about that and improve my lateral thinking, but I still tend to immediately think low level
  3. I used to suck at math, but I have now made my way through the khan academy series on Calculus and Differential Equations.  I still know nothing about Linear Algebra (you know, the math thats actually useful at work) but I just can’t get into it
  4. I am physically unable to do stuff in a non-optimal way if I can think of a better way, and when I start obsessing over a problem I forget to eat, can’t sleep, and can’t think of anything else.  Its useful but it can also be a little destructive.
  5. three things that would mean the end of my life: having kids, becoming a manager-type, not being able to code anymore
  6. I am still strongly atheist, and this is unlikely to change because I am not an idiot.
  7. I’m not saying that good data design and optimal code means having to give up readability or ease of understanding, but if I had to choose then nothing is more important than performance.  Thats one of the reasons I’m not a C# fan.  You sacrifice too much performance for a little syntactic sugar.
  8. the main purpose of programming is not really to actually make stuff, but rather to improve as a programmer, learn new things, and challenge myself
  9. I spoke at GDC (which I didn’t deserve), and I’ll be speaking at SIGGRAPH (which I really don’t deserve) and through that I have learned that I really suck at, and am really really terrified of public speaking.  Although anything that helps me get 永住権 is good, right?
  10. Embarrassment provides a strong motivation to improve, and so here I am saying embarrassing stuff about lack of talent
  11. Finally, related to point 8, the most important thing in life is being keenly aware of your weaknesses and the things you suck at, and being able to take concrete steps to obliterate them.  There is no shame in not understanding something or not being good at it, as long as you have a plan to remedy the situation


So thats where I am at in 2011 with a mere 7 years experience.  Seven years *sounds* like a long time to be doing something, but compared to some of the people I follow on twitter 7 years puts me squarely in n00b territory.  Honestly, I should probably be better than I am by now, but I’m sure I’d say the exact same thing no matter what my current skill level.  Anyway, I promise I won’t do another one of these until 2018, possibly by which I will have learned to write coherently, but probably not.