Graphics Programming
Towards Specialization
Over the last decade or so my career has been mostly dictated by locality. I'm from a region of florida that doesn't have the strongest tech culture. Most of the businesses here are older-style enterprise shops. Banks and healthcare. Maybe a couple of mom and pops squeezed in here and there. I'm kind of pinned here for a while due to family, and never had the desire to relocate for a job.
6 years ago I abandoned the local job market to go fully remote. Back then working remote wasn't unheard of, but it was still really rare in my experience. Options were fairly limited, and for each job posting there were a ton of applicants. Even with a pretty strong resume at the time I wasn't getting a ton of traction.
Finally I found a decent position doing remote work with a comfortable and reliable business. But comfort led to complacency. After 3 and a half years kind of coasting in that role, I decided to branch out. When I did the remote landscape was much more healthy, and I found a nice spot for myself. That is until the business imploded. In one day the company laid off like 60 people and I was the only engineer left. At the time covid was in full swing and some of the big tech companies were finally opening their doors to fully remote workers.
About a year ago I joined Meta (which at the time was still called Facebook). Yes, I know, you think I'm a soulless stormtrooper. That's fine. Honestly it has been such a fantastic experience. I love my job, and I love my coworkers. However, I'm not necessarily in love with the exact things I'm spending my day to day energy on.
Pivot Points
I started college in 2011 having never even tried to write a line of code, not even really having a good idea about what coding really was. By the end of 2012 I was working full time as a web developer and in college full time as a CS major. Even as early as 20 I had responsibilities and people to provide for (not kids, long story, but still responsibility). So I've always been driven by that and mostly that in terms of my work ethic. Really just doing the impactful and business-driven type of work.
For a couple of years before joining Meta I had already been musing about the idea of specializing. That is, picking a specific CS-related skillset and really digging into the depths of it to try and become an expert. For a long time I was leaning towards programming language design and implementation. Parsers, compilers, runtimes, etc.
Joining Meta actually made this more relevant than ever. With such a big company that touches every part of the tech world, I can actually just kind of work on whatever kinds of things I want to. They have teams working on all sorts of crazy engineering problems. I feel like I'm in a much different position now than I ever have been. I'm much more free to choose my destiny than I was before.
Being in such a position is not lost on me. I'm super grateful to have the advantages I do now. And a year ago I decided to fully utilize this period of my life to decide what I want to do with it. Not how I want to subsist or pay the bills, but what things I really want to dedicate myself to long term. Web dev is a tool, a means to an end rather than the end itself. Actually this was why I started the blog in the first place. One thing I care a lot about is helping other people learn. Helping them be unafraid to journey into the unknown territory of a new skill. Especially one that is potentially life changing in the modern day.
I knew I needed to find the thing, but I felt like I still wasn't making a ton of progress towards that. I dabbled with PL design and it was...okay. It wasn't until I got into 3D art that I really started feeling motivated. I've been doing game dev stuff on and off since like 2014, but I never took it seriously or wanted to make it a full time thing. But over the last year something shifted.
Recent Chaos
I married my favorite human on the planet in January of this year after being together for 3 years. Unfortunately she's recently had some pretty terrible health problems. There was a day about a month ago where I was legitimately scared about what was going to happen. It put a lot of things into perspective for me. Not just about my personal life but also about what I want to be spending my time on professionally.
I think I'm a creator at heart. That's why software called to me in the first place. The ability to create living systems with nothing by a keyboard and text editor. In more recent times music has taken over a lot of my passion time. With my descent back into game dev over the last year I've discovered quite the love for 3D art, both modeling and generative stuff/shaders. The recent chaos in my personal life has made me realize that I do have a dream that is at the epicenter of all my passions, and that's game dev. More specifically building experiences with visuals and sound. It combines all of my passions into one big ball of creative wizardry.
So as cheesy as it sounds I do have kind of a target in mind now. I want to start my own indie game dev studio by the time I'm 35-40. Currently I'm 28 so that still gives me quite a while to learn and build a strong skill set. Maybe even release a game or two along the way. More than anything I want to work with professional and dedicated artists to build compelling experiences. Being at a big tech company with a great mobility story even gives me a pretty good path to try and get there before I branch out to start my own business. It also helps that Meta is really dedicated to the whole Metaverse shift which includes a ton of relevant things that I could potentially work on.
Wrapping Up
Trust me, I know basically no one on the planet cares about my story or what I plan to do with my time. I just wanted to build a place to share my knowledge and progress as I delve farther and farther into the deep well that is graphics and game development. Most immediately I want to build a little library of shaping functions for shaders and share some resources for getting into graphics programming for the first time. It only made sense to start with a brief introduction as to how I got here.
Up next I'll be building a nice resource list for people just getting started with graphics and shaders. I'll do a brief dive into what a vertex/fragment shader is, and show off some simple shaping functions using WebGL and ThreeJS. Looking forward to it!
Cheers!
Next EntryAsk me questions on twitter or email me at ty@tytr.dev