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