26 things I've learned as a software engineer, grad student, data analyst, video editor, and animation student | #21
Bonus: How AI stole my job
Hello friends!
I've been so busy with animation school, writing, and dancing that I failed to notice something:
It's been a few weeks since my client has hit me up.
Part of their business is making AI tooling software. For the past 6 months, I've been making video tutorials for that software. They publish those videos on their YouTube channel and send them to their email list.
I checked their channel and my stomach sunk a little. Someone (or something) had took over for me. It was no longer my voice in the videos. It was an AI voice.
Since that was my only source of income, I started to feel some financial anxiety.
Which is odd, because by the numbers, I'm doing great. I live pretty cheap, I have no debt, and I have enough savings to last me about a year and a half.
The root of the issue is the uncertainty about where my income will come from next. It doesn't matter how much I have in the bank. Without that confidence, my monkey brain thinks I'm circling the drain. Even if the circling is slow.
In order to resolve that uncertainty, I need a plan. In order to make a plan, I need to figure out what I want. In order to figure out what I want, I need to take inventory of my past jobs and experiences. What did I like/dislike?
So, in this 21st edition of The Pole, I’ll take you on a tour through my job history. I’ll tell you what I’ve learned and how I felt across grad school, software engineering, analyzing data, and editing videos.
This will be part 1. You can think of it as Where I’ve Been.
The next (22nd) edition will be part 2. I’ll use my lessons and mistakes to articulate my long-term plan. You can think of it as Where I’m Going.
A preview of this edition (Where I’ve Been):
General Motors, Software Developer, June 2016 to August 2017
Texas State University, Masters student, August 2017 to May 2020
I get (too) enthralled in things I'm interested
I’m not guaranteed to work on a project I’m interested in
It's likely that I will work for years on something nobody will care about
I can learn anything I want to
I have to advocate for what I need to succeed
Most road blocks to learning are emotional, not cognitive
Home Depot, Software Engineering intern, May 2019 to August 2019
Be an information sponge, but only up to a point
Sometimes the real purpose of "procrastinating" by asking questions was to imitate momentum
FindHelp.org, Software Engineer, March 2020 to June 2021
The more areas you work in, the easier it is to experience whiplash bouncing between them
Tight feedback loops are important to me
Emotional regulation is important
Personal project management is vital for emotional regulation
Crypto, bootcamp student, August 2021 to December 2021
I am susceptible to drinking the Kool-Aid
When selling you on stuff, people usually don't tell you the bad parts
I don't like uncertainty in my ecosystem and tooling
Indeed, Data Analyst, March 2022 to October 2022
You have to wrangle your curiosity to some degree, no matter the job
Appearances matter
It's my responsibility to inspire confidence in others about my capabilities
It's my responsibility to find the meaning and impact in what I'm doing
OpenCV, video editor, October 2022 to present(???)
Not having meetings is a game changer
Not working full-time is a game changer
Creativity in outcome is so much more fun to me than creativity in process
School Of Motion, Animation Bootcamp student, April 2023 to present
Complicated animations are composed of simple techniques
Simple-looking animations can be quite nuanced
There are so many ways to tell a story and invoke emotions
Once you understand the tools, your biggest bottle-neck becomes figuring out the nuances of what you want to create
General Motors, Software Developer, June 2016 to August 2017
GM was my first full-time job as a software engineer out of college.
I did not write a single line of code until January 2017.
Never once wrote a line of code that made it to production.
I tried to find stuff to do at first, but no projects in my periphery seemed impactful or interesting. Part of me thought it was cool that I got paid to do nothing, but I also wanted to contribute. I felt insecure not being able to justify my name on the payroll.
I wanted to feel engaged. And to work with other people who were also engaged. I wanted a sense of camaraderie.
Grad school sounded like it might be the solution, but I wanted to at least give GM a year before I jumped ship.
A year passed, so I left.
Texas State University, Masters student, August 2017 to May 2020
I wanted to go grad school and study AI for 6 reasons:
I found the math interesting and challenging
Helping create a society where robots did all the tedious stuff sounded amazing
I liked being in a social environment where we're all bonding over the same challenges
Having to show up at a certain time and place for 20 hours a week (classes, being a teaching assistant) sounded better than 40 hours a week (a full-time job)
I liked the idea of people assuming I was smart because of my degree
I wanted to try doing a M.S. to see if a Ph.D was right for me
I finished with a Computer Science M.S.
Some things I learned during that time:
I get (too) enthralled in things I'm interested. It's like I'm possessed. The more attention and thinking my day job requires, the more dangerous this is. Getting my attention off the thing I'm interested in and onto the thing that pays the bills is HARD. On the plus side, if I am interested in something and I see progress, I'm enthusiastic and insatiable.
I’m not guaranteed to work on a project I’m interested in. Part of the appeal of grad school for me was the freedom to follow my curiosity. In actuality, my interest fluctuated a lot. I was also subject to my advisor's current projects, interest, and capacity. In retrospect, I should have been a lot more specific about my interests and applied to schools with professors doing those things.
It's likely that I will work for years on something nobody will care about. Most people I talked to with doctorate degrees told me not to do it. One person summarized the process as follows. You learn a bunch about a hyper-specific thing, write a big paper, only for no one to care about your thing. It impresses people, but you can likely count on both hands the number of people that will read your big paper. The paper you spent years in school for.
I can learn anything I want to. I took graduate math courses that seemed impossible to understand, at first. When I surprised myself by succeeding, it was confirmation that there are no limits. Anything is learnable with time, effort, and the right environment.
I have to advocate for what I need to succeed. In meetings with my advisors, they would hash out ideas at break-neck speeds. Then they'd both turn to me and say, alright, you got all that, right? Meanwhile, I got lost 5 minutes into the meeting but was too embarrassed to say anything. I figured I could catch up on my own time, but got blocked and needed their help anyways. I should have been more assertive and slowed the meetings down.
Most road blocks to learning are emotional, not cognitive. As a math tutor and instructor, I ran into many people who believed they couldn't be good at math. When they would attempt assignments, they would get stressed and overwhelmed. This made it harder to think straight and confirmed their beliefs. During office hours, I spent a lot of time soothing them and restoring their faith. Once they were more level-headed, getting them to understand things was usually easy. I'd ask pointed questions to figure out what they were missing, fill in gaps, and bam, they got it.
Home Depot, Software Engineering intern, May 2019 to August 2019
By January 2019, I was almost a year away from finishing my masters. I had decided against doing a PhD, but didn't know what I wanted to do next. I was running out of money, so I took a Software Engineer internship at Home Depot during the summer.
I was part of the Marketing Analytics team. They worked on house-holding and transaction matching.
House-holding is figuring out which customers lived together. If dad bought a hammer, we don't want to advertise hammers to mom.
Transaction matching is figuring out which person made which transactions. If you bought a hammer on account A, we don't want to advertise hammers to you on account B.
I found thinking about those problems interesting. Unfortunately, the actual job wasn't solving them, it was maintaining existing solutions. I found that kind of work tedious.
Some things I learned during that time:
Be an information sponge, but only up to a point. During onboarding, they told me to ask as many questions as I wanted. They say this because most people don't ask enough questions. I tended to ask too many. Some of it was to help solve the problem, some of it was curiosity, sometimes it was procrastination. It was difficult to tell the difference at the time.
Sometimes the real purpose of "procrastinating" by asking questions was to imitate momentum. Getting answers and feeling myself understand things was a placebo for progress. Even if the questions weren't directly related. That perceived progress gave me motivation to start and patience to endure hiccups. I solve problems MUCH better when I approached them with serenity and optimism. Time spent getting myself into that headspace before I began was often worth it. There's a difference between lazy procrastination and intimidated procrastination. Asking questions can help in the latter case.
FindHelp.org, Software Engineer, March 2020 to June 2021
After Home Depot, I went back to school to finish up the last year of my master's degree. As I approached the end, I was once again unsure what my path was but running low on money. So, I started looking for a job.
I thought about what I didn't like at other jobs.
General Motors: no obvious impact, pace was too slow, lack of alignment with my interests
Grad school: pay sucks, not as much opportunity to be curious as I thought
Home Depot: no obvious impact, work was tedious, lack of alignment with my interests
So I thought... where can I find a company where my impact is more obvious and curiosity is helpful?
A friend suggested I work at a smaller company. He theorized that my impact would be more visible because I'm deeper in the trenches. And that I'd have to know more because I wear more hats.
I got an offer from FindHelp.org (Aunt Bertha at the time), a search engine for social services. They seemed to fit the bill: a small company with a mission I could get behind. They had raised a series B and were looking for full stack engineers.
I ended up joining their search team and did a lot of different things. It's a great company and I recommend working there. I didn't know enough about myself at the time to know it wasn't a good fit for me.
I would have learned the following lessons sooner if I were more self-aware.
The more areas you work in, the easier it is to experience whiplash bouncing between them. I did many things. A few key words: speed tests, SEO, React, jQuery, accessibility, backend, Google Cloud. I never stayed in any particular area long enough to get good at it. A year in, I still felt like a beginner, struggling with 101-level stuff, which was frustrating. I never got to enjoy being proficient.
Tight feedback loops are important to me. My biggest frustrations came from friction getting things done. They used old server software, which made it infeasible to test things locally. That meant I had to deploy my changes to a server and wait 5-10 minutes to see the outcome for each change. They had lots of legacy code with no tests. This made understanding and navigating the code a pain.
Emotional regulation is important. This is was a subtle theme during grad school and Home Depot, but it became obvious while I was at this job. The two bullets above helped highlight the emotional regulation skill deficit I had. I would procrastinate on work tasks, and when I would start them, I'd get frustrated at my slow progress. I'd get impatient and make dumb mistakes out of frustration. That caused more frustration. And so on.
Personal project management is vital for emotional regulation. I ended up making the job a lot more unpleasant than necessary because of my expectations. I wasn't fair to myself. I'd set goals based on outputs I couldn't control and get stressed out when it didn't work out.
For example, my goals were things like finish x by tomorrow or understand y in 2 days.
They should have been things like, do 2 hours worth of work on x today or read about y for 30 minutes. In other words, goals I could control.
Crypto, bootcamp student, August 2021 to December 2021
While working at FindHelp.org, I became more active on Twitter. I found myself in a few freelancing, entrepreneurship, and crypto echo-chambers. Before then, it never occurred to me that I could make money from somewhere other than a full-time job.
In particular, a lot of people were talking about making a bunch of money in crypto. That space turned me off, so I ignored it for a long time. Until one day, I drained enough from my job to give it some sincere consideration.
I kept seeing tweets about how DAOs ("crypto companies") were offering lucrative bounties for catching bugs in their code.
I thought to myself, hm, I could do that. I could live my life, work on my own projects, and when I needed money, I could troll around codebases and point out bugs.
So in August 2021 I enrolled in Preethi Kasireddy's crypto bootcamp.
It was a week long, and I felt like I had so much more to learn. So, in November 2021 I enrolled in Encode Club's 10 week crypto bootcamp.
Some things I learned during that time:
I am susceptible to drinking the Kool-Aid. Until crypto became popular, I confidently identified as an independent, objective thinker. Kind of like how everyone believes they're an above average driver. But now I realize that advertising and social proof work on me like everyone else. If I hear "crypto is the future" from people I respect over and over, it will seep into my subconscious. I have to be careful with what I let into my brain.
When selling you on stuff, people usually don't tell you the bad parts. Once I got into the nuts and bolts of building in crypto, it felt like regular programming. In fact, it felt worse. It was new and thus tooling was janky. I learned that building on the blockchain itself was slow. To iterate quicker, people built the old fashioned way. Once the app had traction, then they included the blockchain, if it was even necessary. It likely wasn't. Barely anyone on Twitter talked about this. That’s part of why I like Preethi. She was up front about the realities of crypto. I still underestimated it, though.
I don't like uncertainty in my ecosystem and tooling. Like regular software engineering, there were many tools you could use. Hardhat vs Truffle. React vs Angular. Python vs Node. If you switched jobs or projects, you had to prepare to learn a bunch of new tools. And staying with the same project or company wasn't a guarantee your tooling would stay the same. This was worse with crypto, where everyone was wondering what would become The Big Chain. Ethereum? Avalanche? Solana? Who knows. I was sick of learning to use tools, knowing I might have to drop them and learn something else.
So, when crypto started tanking around January of 2022, I lost all interest. I still think crypto has some important use cases and think it'll play a big role in the world. But I wager it'll be at least a few years.
Indeed, Data Analyst, March 2022 to October 2022
At this point, I concluded full-time engineering roles weren't for me. I didn't want to maintain someone's software. I didn't want to spend a lot of time keeping up with tools.
I knew I wanted to do something entrepreneurial, but the path towards that wasn't obvious. So I figured I'd focus on finding a job that
had a visible impact
allowed me to leverage my curiosity
didn't have maintaining software as a focus
required minimal ongoing learning about tools
I remembered during grad school that I liked sifting through data to tell a story. I was already familiar with the data science tooling (Python, matplotlib, pandas, etc). So I started looking for data analyst roles.
I ended up getting a Data Analyst offer from Indeed.
In the interview, my future manager mentioned his concern about my background. He emphasized that this was more about crunching numbers and giving presentations. There was little emphasis on machine learning nor software engineering.
I said yes, that's perfect, I want to make that switch.
Some things I learned during that time:
You have to wrangle your curiosity to some degree, no matter the job. I assumed that because I was in a more business-facing role, it would benefit me more to drink from the fire hose. I figured I should know all the acronyms and what everyone is up to. I found that, once again, answering most of the questions I had wasn't critical to getting my job done. In fact, one of the managers admitted to me that, during meetings, he knew what was going on about 50% of the time. I had to get used to not knowing things, otherwise I'd never get anything done.
Appearances matter. One time, I was in a meeting with a lot of people. There was my team, other teams, and a few executives. In fact, it was one of the first meetings I'd been in with executives in the meeting. They were talking about something important and, without thinking about it, I yawned. Not a covert, covering-my-mouth yawn. An oops-I-forgot-my-camera-is-on yawn. My manager later told me that one of the executives took it the wrong way, and that I should be more conscious. At first, I was embarrassed. Then I felt resistant: why am I judged on such things? Then I realized: all communication has noise. It's up to me to portray the right meaning I intend, and that requires moderating to how I come across.
It's my responsibility to inspire confidence in others about my capabilities. A few months into the job, my team signed up for a "storytelling with data" workshop. I arrived a few minutes late, so to include me, the instructor addressed me as I came in. She asked me what data I worked with. I was flustered from having arrived late, so I choked. She told me, that it's ok, she'll come back to me. My manager later told me that it did not look good that I couldn't answer that question. He also told me I needed to stop saying things like, "I have no idea," even if it's how I felt. He was right. I was being paid to solve problems. Part of that job is inspiring confidence that I could do so.
It's my responsibility to find the meaning and impact in what I'm doing. My team had a meeting every other week where we presented our findings to other teams. At one point we were debating how convenient to make the meeting. We were asking questions like, Should we record the meeting? And How extensive should our meeting summary be in the newsletter? We noticed that the more we did stuff like that, the less people showed up to the meetings. I took that as a sign that we weren't doing anything important. I should have took that as an opportunity to channel my curiosity. I could have messaged them and asked questions like, What do you get out of this meeting? And Why is that important to you?
OpenCV, video editor, October 2022 to present(???)
In September of 2022, the economy was starting to get a little rocky. Indeed started offering Voluntary Severance packages. I could quit and get paid 2 month's salary.
At the same time, I got an offer from OpenCV to do some contract video editing.
I knew I didn't want to do the job at Indeed for the long-term. Because of that, I was unwilling to invest the effort to get good. It showed in my work ethic. I liked my team and I didn't think that was fair to them, so I took the severance.
Some things I learned during that time:
Not having meetings is a game changer. The entire time I've worked for them, I've had two meetings. It's such a breath of fresh air. I love not having to worry about how to present myself. I love not having to constantly redirect my attention to the conversation for an hour at a time, many times a day. I love having the freedom to capitalize on inspiration at any moment. I love being able to schedule my work around times I'm not obsessing over other things.
Not working full-time is a game changer. It's so much more sustainable for me to work part-time. It's hard to make myself do things I don't want to do 40 hours a week for longer than a few months. But it's doable to make myself do things I don't want to do for 15 hours a week, indefinitely.
Creativity in outcome is so much more fun to me than creativity in process.
In software engineering, the outcome is fixed and you figure out the process. The more I knew what the outcome should look like, the more doing the work to get there felt mundane. It felt like housekeeping. The value came from wrestling with the tedium to get to the outcome. Which is something anyone could have done. My contribution wasn't unique.
In video editing and animation, the process is fixed and you figure out the outcome. There is no, this job uses Node, AWS, and React... but this job uses Python, Google Cloud, and Angular... but we use Vue for this project - barf! It's one toolset: the Adobe suite. Once you learn it plus some add-ons, you're good. Now you get to spend the time honing your style. Everything you make will be unique. If you're irreplaceable, it's because of your work and your style. Not because of your knowledge of some company's codebase and tolerance for tedious tasks.
School Of Motion, Animation Bootcamp student, April 2023 to present
During grad school, while trying to understand Neural Networks, I stumbled upon a video by 3blue1brown.
I loved how clear and entertaining the video was. I wished that there was a video like that for everything I wanted to learn.
As I watched more of his videos, I started having ideas of my own. I started noticing ways I would make his videos better. I love teaching people things and thought I could be good at making videos like that.
So I bought a subscription to VideoScribe (like Canva for whiteboard animations) and made a few videos. Here’s one explaining Djikstra’s Algorithm and here’s another one explaining the Kelly Criterion.
I quickly ran into the limits of the tool. For example, there was no support for templates, maintaining consistent branding assets, nor aligning elements. This meant making videos took a lot of time and, in the long run, I was constrained in how efficient I could get.
So I bought an Adobe subscription and started learning Premiere Pro, After Effects, Photoshop, and Illustrator.
I followed some tutorials and made some animations, but they were atrocious. I knew I had a lot to learn, and I figured I could learn it on my own, but that it’d be a lot quicker with mentorship. I’m 31 years old and feel like I’m so far behind where I want to be in my career, so I’ll take the boosts where I can.
At some point, I thought: are there software engineering bootcamps, but for animation?
I did some research and stumbled upon School Of Motion’s Animation Bootcamp. It looked exactly like what I needed: less focus on the tools and more on the principles. So, I pulled the trigger.
Some things I’ve learned so far:
Complicated animations are composed of simple techniques. Often I would look at a crazy animation and think, wow, how much effort must that have taken? But when I broke it down, it was only a few rotations, scales, and position changes.
Simple-looking animations can be quite nuanced. At the same time, there are thousands of ways to make a ball bounce feel weird. It can take a lot of fine-tuning to make it look organic. One frame can make a huge difference. It’s easy to underestimate how much effort it takes to make it look normal.
There are so many ways to tell a story and invoke emotions. You can use anticipation and over-shoot to make your animation playful. Or you can abstain and make it more stiff and serious. You can make a ball seem light by having it bounce high. You can add suspense having it hover in the air a little extra time. You can make it seem angry by having it jitter a little bit. The options are endless.
Once you understand the tools, your biggest bottle-neck becomes figuring out the nuances of what you want to create. Don’t get me wrong, I still have a lot to learn as far as the Adobe suite goes. But one thing I find so satisfying is that I’m training my imagination. I feel like I’m learning to see things I couldn’t see before. I feel like, the more I learn, the more I realize how many creations there are that only I can create. I’m the only one with my specific life and vision. I’m the only one that can see them and bring them into reality.
Phew. So that's where I've been. If you're interested in my plan for the next few years, stick around for part 2!