New job: Week 1

I started a new job on Monday, November 15 – one that involves learning a lot about a very different kind of software workflow that diverges along several axes: tools, languages, and concepts to name a few. It’s the most disoriented I’ve felt in more than 15 years.


An Analogy

Imagine an accomplished athlete – but someone who has never before seen ice or snow. Take that person, and teleport him into the middle of a professional hockey team’s practice scrimmage. Try to visualize the stream of wtf thought bubbles flying out of that guy’s orbital sockets. That’s me at the end of week 1.

Them: Hey new guy, what’s up?

Me: Uh, I’ver never seen ice before. And this game… it’s got a lot of weird rules. Also, why are there knives coming out of my shoes?

Them: Dude, those are BLADES. For skating! Don’t worry though, you’ll get the hang of it soon enough!

Me: If you say so! I’m pretty good at running you know… it’s similar I think.

Them: Totally! Do not worry about a thing. You’ll be fine!

Me: You guys are cool!

Them: Don’t sweat it. Why don’t you just drive the Zamboni for the time being and read the playbook?

Me: What the fuck is a Zamboni?


Key Differences (that are confusing my little brain)

1. They ship content, not software

More specifically, they ship data sets for machine learning pipelines. This notion – that software isn’t the output of a build – is really weird to me. It’ll just need a bit of time to cure and set, but I’m confident it won’t be long before it becomes second nature.

2. They compile software (with C++ [on windows!])

I’m a web guy who uses JavaScript and Python. The compiling thing is a big mental model shift for me. I’m used to web application development with tools like git, npm, gulp, eslint, webpack, babel, mocha, etc. – and doing Docker-based development on a mac.

3. They use Perforce 😢

This is something that will take time. Perforce is totally new to me, and to be honest, evokes the imagery of robe-wearing wizards, incantations, and impenetrable conventions. In my first week, working with p4v has given me the impression that it was specifically made to create a Sisyphean spiral of ever-expanding invisible boobytraps and snafus… just for me. But I swear… by Dumbledore’s beard, I will figure out how the shit works.

4. Their file processing steps are steeped in games development

I’m not a game developer. I used to work on web-based asset management/production tracking software. Game studios were one of our main customers, so Im aware of (some of) the tools and terminology in use. But I don’t work inside the dcc’s that make the game artifacts: things like materials, lighting, textures, geometry, camera rigs, etc. My unfamiliarity with this stuff at a detailed level just means I need to get smarter on a lot of that stuff. Here are just a few examples…

  • Level cooking – what does this even mean? Really? Like, step by step, explain it to me!

  • Loading up your sims – ditto ☝🏽

  • DCP files – I get the concept, but… huh?

  • Lidar sensors – I’ve never seen one, never worked on one, don’t understand what they do, where/how they’re used, and don’t understand how they’re germane to the output of the data sets … 🧐


Week 1 was exactly what I thought it would be like – with one exception

The only thing I underestimated was my sense of disappointment in myself. But when I think about it rationally, of course I’m going to feel like a fish out of water.

But I’m not a complete dummy. I’ve started figuring out and identifying the things I didn’t know I didn’t know (on day 1). Now, I have a better sense of the total surface area of my ignorance. And that’s a good starting point for week 2. I’ve also managed to get some small victories in…

  • 👍🏽 I read a bunch of documentation, updated a few wiki pages, and managed to set up all my accounts

  • 👍🏽👍🏽 I got a windows ec2 instance configured (a remote dev environment)

  • 👍🏽👍🏽👍🏽 I completed a code build

  • 👍🏽👍🏽👍🏽👍🏽 I created my first Perforce changelist, and got my first swarm code review approved

I’m OK with that.

The exception

I got to attend a meeting where this ML paper was presented and discussed by a couple of badasses I get to work with. The topic of the paper was kernel point convolution, and even though I didn’t understand any of the equations, I could follow along just enough to get the drift: the paper was demonstrating that in specific cases (maybe even in the general case) KPV is computationally more efficient at processing image data than alternative methods (eg: point pillars). I’ll reiterate, these are not things I understand – yet – but my takeaway was twofold:

  • It is really f***ing cool to have experts like this on staff, and work next to them

  • It is absolutely inspiring to know that my work will be of some benefit to that work