Pixotope Snapshot is our series shining a light on the many talented individuals that make the Pixotope team so great. Meet David Gross, our skilled software engineer at Pixotope. With a passion for 3D modeling and game development, David has been tinkering with technology since he was a teenager. He joined Pixotope almost three years ago and quickly fell in love with the virtual production industry. Discover what David loves about his job and how he spends his free time.
Let's start with our traditional question: can you tell us a bit about your background leading to Pixotope?
I’ve not formally studied anything in particular. I’ve gotten into 3d from virtual worlds in the mid-00s. In order to create content for those I went from making my own little tools to creating 3d models, painting the XYZ coords as RGB in images, to eventually just giving up and learning Blender.
As far as games go I’ve been playing them all my life and since middle school, I’ve been tinkering with graphing calculators to make little games of my own to pass the time. From there I moved on to QBASIC (well beyond the DOS ages) and Game Maker on the PC. I eventually moved to C++ to work on the virtual worlds clients themselves. I used to have the mindset of making everything from scratch, so I learned OpenGL to create my own rendering engine.
You have been working at Pixotope for almost 3 years. What inspired you to work in virtual production and what makes it a fascinating field to work in?
A long-time friend of mine previously worked here at Pixotope. When there was an engineer shortage he suggested that I apply. I wasn’t very inspired initially, but after joining and getting to know my colleagues and the satisfaction of seeing the work I do have a positive impact I quickly started to really enjoy it! I find the problems I need to solve are often quite fun and interesting. I get to tinker with software and hardware on a low level, being so close to the silicon means coming up with creative ways to debug. Since the video is in real-time, often sitting in a debugger for any amount of time will lead to things becoming unstable.
Describe your role at Pixotope as Software Engineer – what does your average day look like? Is there any part of your role that you really enjoy?
I am based in the US and primarily work with Europeans, so my day often starts early for a software engineer, 5 AM or so which always seems to open my eyes when others hear that. After the usual morning routines, I start up some hardware needed for work and sit down with some coffee. I usually catch up on Slack, review code, and with a fresh mind go over what I’ve done the previous day and push. Then there are usually some meetings, talks, or some sort of collaboration.
Afterward, I’ll usually spend a few hours coding, then take a long lunch break at about 10 AM or so. I’ll take care of errands or do some woodworking in the garage to refresh my mind then come back and code for a few more hours. I find that some context switching gives me more time to think about a problem, and while using other parts of my brain I can come up with a more simple or efficient solution.
Can you discuss the technical challenges involved in developing virtual production software and how you overcome them?
There have been a lot of challenges for sure. Debugging anything that’s real-time can be difficult as you often can’t halt the program to slowly step through it, or investigate and change memory either. Other issues stem from not having the greatest support with very uncommon tools and libraries from hardware vendors.
Things are often under NDA or not public so you can’t just Google to find others with similar issues, it can be a little discouraging to have to wake long periods of time waiting for an unsatisfying email response.
Last year you won an award for being “this year's workhorse" and among Oslo colleagues, you are known as the engineer who will fix anything.
What motivates you in your work, and what are your future goals and aspirations in your career as a software engineer in virtual production?
I did not know that I was known as that but those are kind words! I think what motivates me the most is knowing the work I do enables creative people to make fantastic productions with our product. The simple tools to create 3d things that I mentioned previously were something that I did as a teenager and a product that was eventually sold.
I get a bit of a chuckle knowing my old work was being used to create clothing for virtual avatars for a few to see on their PC monitors, to now being used for real-time video involving virtual avatars for millions of people on their TV screens! Kind of a full circle, just that circle is now exponentially larger!
On our company Slack channels, you are quite known as a cat owner and as a skilled woodworker.
What else do you enjoy doing outside of work and how did woodworking become your hobby?
Other hobbies would involve bicycling, at least when the weather isn’t all snow and ice. Maybe some winter tires can help with that. I hope to get into growing fruits and vegetables this year.
As for woodworking, I’ve had a lot of family members who have had workshops or done some sort of carpentry work. But mostly I think I just enjoy making things by hand and from scratch, I get a lot of satisfaction from the creative process. Just like with programming, woodworking has a lot of problems to overcome, lots of intricate techniques that aren’t obvious right away, and of course, finding ways to do things with limited tools or resources is an enjoyable endeavor.
Winding up with a piece of bespoke furniture designed and built by yourself is also really gratifying, even something quickly cobbled together will generally outlast any cheap furniture too. Also, nothing is better than the smell of some freshly planed Sapele hardwood!