Skip to content

Lizard Brain: Advice I Wish I had as a Junior Engineer

July 13, 2023

After being a software engineer for just over 2 years, I can’t help but reflect on some of the experiences I had. Especially being more on the DevOps-y, Infrastracture-y teams, which is somewhat uncommon for a junior.

Listening to My Lizard Brain

The above advice is something straight out of The Pragmatic Programmer. It essentially translates to “listen to your gut”, but it speaks to the more evolutionary side of humans. As software engineers, we tend to be more rational and not take our feelings into consideration, especially on the job. However, our Lizard Brain is an important part of our evolutionary process that might help deter us getting into a bad situation.

The first time I got that sinking-feel in my gut was when I interviewed for a company, one that I eventually joined. I was already put through a difficult online-assessment before talking to anyone, but after practicing for interviews for a few months I scored 100%. During the virtual on-site interview, I felt something odd, something that I never experienced before. It was the first interview that I’ve done where every interviewer were White males.

This may seem like a common occurrence in the tech industry, but every single interview I’ve done in the past had a diverse set of interviewers, except for a couple outliers. And having being raised in a more diverse part of the country, I can only say I was culture shocked.

You might be asking yourself, “Why join the company if you felt that way?” I still ask myself that question, but some quick maths will say that I graduated in 2021. This year was a difficult time for new-grads and options were limited. However, when I was interviewing for this company I had already signed with another 7 months prior.

The Offer x 2

The offer I signed had a couple of drawbacks: I had a 3-month gap between my graduation and the start date, it was temporarily remote, it was three hours away and I didn’t know what team I would be placed on. I needed to make some money during that gap to keep my wife (fiancée at the time) and I afloat, and she had one more year to complete college so being apart wasn’t ideal when I would eventually return to office.

To keep myself afloat and my options open, I continued applying to new-grad and branched out to internship roles. I wasn’t able to get far in any other interviews for new-grad roles, but internship roles proved a bit more promising. Thankfully, startups were a bit more flexible in who they hire and don’t constrict themselves to strict job requirements. The aforementioned company was one of the few startups that had full-remote that were hiring interns at the time I was applying, which was pretty late into the hiring lifecycle in April.

After the interview, I received an offer from the startup on the condition that I would at least consider joining them full-time. However, this offer was an “exploding” one and only had a couple of days to consider it. I was waiting an offer/reject response from another, more desirable company at the time and had to push to get the offer deadline extended.

In the end, I reluctantly signed the offer still knowing that I could deny a full-time role with them. After signing with the startup, I didn’t immediately renege the signed offer from the company as I was waiting to see if they would stay remote for quite some time after I joined.

The Startup

When I joined, I was placed on the infrastructure and integrations team. To be fair, I requested something along this line as I didn’t want to do mostly front-end which is unavoidable work at a startup.

I worked on plathera of things on this team: AWS, Terraform, quite a bit of Make, a lot of PostgreSQL, some Node.js, Angular, and too much of RxJS. After 10 months there, I was given the opportunity to work on a project to migrate our build system from Make to Bazel.

This seemed like an interesting opportunity, I would be learning a completely new, niche build system to migrate our monorepo.

🙠