How Failing a Shader Interview Made Me a Better Tech Artist


Recently, I had an interview with a game studio that caught me entirely off guard.

As someone who's worked across the full spectrum of Technical Art — from rigging and tools to pipelines and procedural systems — I've worn many hats over the years. I've built systems, mentored teams, and architected pipelines across multiple DCCs. But despite my deep love for shader work, I haven't had the luxury of spending focused time on them lately. When you operate across the whole tech art landscape, your attention naturally gets pulled in every direction.

So when this interview suddenly threw a shader coding test at me, I was excited… until I realized I had 2 hours to write a functioning shader that used a custom, optimized pseudo-random number generator with just three inputs. Pixel shaders don't like random numbers, I guess

I gave it my best shot. But I didn't finish in time, and I didn't get the job.

That part stung a little — not just because I didn't land the role but knew I could solve it.

I needed a little more time to shake off the rust and get my bearings in that specific mental space, so I did a little research.

So, after the interview, I did just that. I sat down, researched a clean solution, and implemented the complete shader from start to finish. The test that stumped me in the pressure cooker of an interview? I got it working — and I'm proud of it.

I decided to make a video sharing that experience — both the sting of the "fail" and the satisfaction of finishing something on my terms.

In the video, I break down:

  • The details of the test and why it was tough

  • My approach during the interview

  • What I learned in hindsight

  • A walk-through of my final working solution

This experience was a humbling reminder of something I think many generalists, tech artists, and multidisciplinary folks face: depth comes at the cost of breadth—and vice versa. We can't be world-class in every area at once, but we can keep showing up, learning, and improving.

If you've ever fumbled in an interview or felt like a fish out of water in a test — you're not alone. Hopefully, this video will help make that a little more okay.

Thanks for reading,

– The Pipeline Guy

Unlocking the Mysteries of Sequencer Folders in Unreal with Python

Easy to learn, hard to explain to your future self

(Mahatma Gandhi)

Hey, everyone! So, recently I’ve been diving deeper into the Python integration in Unreal Engine, and let me tell you—it’s a ride. For those of us who are new to Unreal's API (and Unreal in general), finding answers to seemingly simple questions can sometimes feel like searching for a needle in a haystack. Case in point: How do I manage folders in Sequencer?

Well, after some digging, I figured it out, and today I’m here to share that knowledge with you. Let’s break it down:

The Root of It All (Literally)

Sequencer assets have built-in methods for listing and creating root folders. These methods return something called a Sequencer Folder. Once you've got a handle on these, you can add child folders or list them. Sounds simple enough, right?

Well, there’s a little gotcha. When you're adding a child folder, the method add_child_folder doesn’t take a string with the folder name. Nope! It wants a Sequencer Folder instance instead. So before you can organize everything neatly into subfolders, you first need to create the folder at the root level.

My Simple Method to Save the Day

Here’s a little helper method I whipped up. It will create a folder structure for you if it doesn’t already exist. Instead of passing one long string with slashes ("/") to separate folder names, you simply pass in a list of folder names, in the order you want them nested.

Here’s a sneak peek at how it works:

    def _get_lvl_seq_folder( seq_asset, dir_name_list):
        """

        :param LevelSequence seq_asset: the level sequence to edit
        :param [str] dir_name_list: list of folder names that make up the full destination 
        """
        chld_dirs = seq_asset.get_root_folders_in_sequence()
        par_dir = None

        for dirname in dir_name_list:
            found = False
            for sdir in chld_dirs:
                if sdir.get_folder_name() == dirname:
                    found = True
                    par_dir = sdir
                    chld_dirs = sdir.get_child_folders()
                    continue

            if found:
                continue
            # NOTE: create folders that don't exist
            chld_dir = []
            new_dir = seq_asset.add_root_folder_to_sequence(dirname)

            if par_dir:
                par_dir.add_child_folder(new_dir)

            par_dir = new_dir

        return par_dir

Why Should You Care?

I’m pretty sure this will save someone out there hours of trial and error. If you're working with Unreal's Sequencer and are tired of manually creating folder hierarchies (or worse, clicking through the UI to organize things), this method is a game changer. Plus, it makes you feel like a wizard when everything falls neatly into place with just a few lines of code.

So give it a shot, and let me know if it helps!

Your homie,
The Pipeline Guy
(Carlos Anguiano)

Rebuilding, Reconnecting, and Reflecting: The Journey So Far

“I should not have left you without a dope beat to step too”

(Nelson Mandela)

After years of letting my website sit idle, serving solely as a product page for my now-discontinued Mango Pipeline, I'm thrilled to announce that my new site is finally live! It feels great to reconnect with all of you after a period of reflection, growth, and reinvention. Over the years, I've had the opportunity to contribute to some incredible projects, and now I’m excited to share everything I’ve learned along the way.

When I first broke into the video game industry, I focused on bootstrapping the pipeline department at Epic Games. It was an exciting challenge, helping to build the technical foundation that supports the incredible content their teams are known for. But the journey didn’t stop there.

For the last five years, I’ve had the privilege of working at Bethesda Game Studios, where I restructured the tech art team, revamped the art pipeline, and helped increase the productivity and scope of the department. This experience allowed me to step into more management and leadership roles—guiding teams, developing talent, and architecting solutions that pushed both the art and technical side of game development.

In the past year, I’ve spent a significant amount of time working with Unreal Engine, building Python pipeline tools that integrate seamlessly with Unreal and the content creation process. The goal was simple: to make workflows more efficient, improve the quality of deliverables, and give the teams I work with more creative freedom.

I’m beyond excited about what the future holds, and this site will be the place where I share insights into the work, the tools, and the experiences I’ve gathered along the way. From leading teams to creating dynamic content pipelines, my journey has been one of continuous learning and evolution. For those who know me, I’ve missed our conversations, and I look forward to reconnecting with you all.

Let’s keep pushing boundaries, solving problems, and creating worlds.

Sincerely,
Your Homie “The Pipeline Guy”