From Software Engineer to Senior Director of Engineering: Louie Bacaj
Unfiltered lessons and advice in growing to Staff and Director levels at fast-growing companies. From Louie Bacaj.
From Software Engineer to Sr Director of Engineering
Louie Bacaj has an impressive story. Coming from poverty, he put himself through college to become a software engineer, joined Jet.com as a senior engineer, and became the youngest Senior Director of Engineering at Walmart. He then quit his corporate career – waving goodbye to close to $1M/year in compensation – to become an entrepreneur.
Louie’s career growth progression speed is rare and out of the ordinary. It’s uncommon enough for someone to become a senior engineer in a few years. Becoming a Director of Engineering without having been an engineering manager for many years is even rarer. I advise comparing against this career progression - but understanding the story behind it can be useful, even when knowing his growth speed is well above what most people should reasonably expect.
I decided to talk with Louie after I purchased and watched his course Timeless Career Advice for Software Engineers. In only 90 minutes of video, Louie shares so many of his accumulated insights from over a decade’s worth of hard-earned experience – and does so with radical transparency.
This radical transparency, coupled with a career growth speed that is very rare is why I wanted to link up with Louie. He has no immediate plans to go back to working a corporate job, and I latched on to the opportunity to get his unfiltered story and advice on how he traveled a path that many software engineers hope they might do, one day, even if at a different speed.
I was not disappointed. I highly recommend both following Louie on Twitter where he shares much more unfiltered advice, and to buy his Timeless Career Advice for Software Engineers course, which is a bargain at $25, considering it not only comes with 90 minutes of video content, but also includes Louie’s complete income progression guide, and another 4 bonus topics on how to ask for a raise, switching teams, switching disciplines and finding mentors.
In this issue, Louie shares his story and learnings via the following steps:
From new grad engineer to senior software engineer
From senior engineer to engineering manager
Being an engineering manager
From engineering manager to director
From director to senior director
Staff promotions advice from Louie
As usual, per my strict no sponsorship policy, I have no affiliation with Louie’s course and I’m not paid to advertise it.
Over to Louie:
1. From New Grad Engineer to Senior Engineer
‘These projects worked out well for both me and the restaurants. I needed to make some money on the side while I was studying and restaurants had very small budgets; not enough to hire an agency, but enough so I could build them a website.
‘After graduating, I got my first professional developer job. I worked for a company called SunGard. This firm was making software for big banks. Upon joining I got to see how these really big banks work from the inside. I was overwhelmed and had impostor syndrome. That’s when I decided I should do a Master’s to combat my inferiority complex. I ended up doing a Master’s as a part-time program, while I worked full time at SunGard.
‘Too much knowledge is just like too much money. If you’re only accumulating it, but not putting it to work, it’s wasted effort. In hindsight, I never needed a Master’s degree as a software engineer. The Master’s gave me credentials, however I never felt I used the knowledge gained through that program.
‘While at SunGard, I realized we were doing the same work as the people working in the bank. We worked side by side with them, often on the same team. However, there was one big difference: the engineers at the bank were paid a lot more.
‘I decided that I should make more money, and the easiest way to do this was to be employed by a bank. So I got a job at Bank of America.
‘Initially, it felt really cool to work at a big bank. But the ‘cool’ feeling quickly faded. Six months in, I would go into meetings where leadership would brag about how we, the software engineers, will help eliminate hundreds of thousands of jobs through automation. This was when I started to feel jaded. I asked myself “why are we even doing this? Is this the type of software I want to be building?”
‘I started to realize I didn’t want to be there, and slowly began to loathe my job. I started to interview around, looking through job ads on LinkedIn, and came across Jet.com. They offered me a job, but the problem was that it was a paycut from my job at the bank.
‘I was conflicted. The job seemed really interesting, because they were using brand new technology. They were jumping on Azure when Azure was brand new in 2014. They were still a company with only a couple of people in a warehouse in New Jersey. Should I join this place?
‘Jet.com was founded by Marc Lore. Marc sold Diapers.com to Amazon in 2010. He stayed there for two years, but he was unhappy with how things went. Frustrated, he quit Amazon and decided to build a better competitor. He raised funding for Jet.com and was hiring the initial team of engineers when we talked.
‘I ended up talking with a lot of people at Jet.com. I felt they were being honest with me, and I liked how the founder had done an exit before, and now he had the guts to try and take on Amazon. I was thinking, ‘who does that?’
‘The signals I gathered to decide whether join this startup were these:
People. Who would I be working with?
Mission. What are they doing? Is it exciting? Do I want to be a part of this?
Technology. Which technology are they using? Would I learn something here? Am I excited about the technology?
Capital. Do they have enough money to keep paying people?
Business model. Is there a business model that makes sense and will generate enough revenue?
‘One thing that was a crazy decision was how Jet.com went all-in with Azure, which was new and less stable than AWS. Why? Because the founder, Marc, wanted to give no money to Amazon. They made the decision despite Azure being far more limited than AWS at the time. This decision would later make Jet.com one of the largest Azure customers.
‘Little did I know that later at Jet, we would be one of the biggest beta testers of new Azure features like Cosmos DB, change feed, TTL and others, with Jet going through a lot of pain in this process. The Azure team, at the same time, was very supportive. Still, it made for a real challenge; we were running effectively on beta software, in the real world. Our pagers went off frequently.
‘I liked everything about Jet.com, except for the salary cut I would have to take. In the end, I took the offer. It was a team I wanted to be a part of, so I made the jump.
2. From Senior Engineer to Engineering Manager
‘I joined Jet.com as engineer #20. I came in at the end of a large hiring spree in which about 15 engineers were hired. Beforehand, 4-5 engineers worked at the company.
‘The technology decisions were interesting. The core team could not decide whether to use C# or F# on the backend. So they built two MVPs: one with C#, one with F#. Then they chose F#.
‘I was surprised they would build things twice in a fast-moving startup. But that’s the thing about fast-moving startups. They always do things that surprise you, and things you can learn from.
‘I liked how they picked F# because this meant I could learn something new. Because F# was built on top of .NET, you could hack around or use other existing .NET libraries. I learned how to “hack” what I wanted to do until I could do it in a functional style.
‘By the time I joined Jet.com, I was a senior software engineer. And I had some leadership experience. At SunGard, I had project responsibilities; I was leading projects and doing all the work, except for managing people.
‘At Jet.com, they didn’t care about my leadership experience. They needed doers, not managers. The company was building this amazing pricing technology. The idea was that they would scrape the market in realtime, and offer goods on Jet.com cheaper than anyone else was selling at.
‘I was working on pricing areas at the bank, so when I heard about this technology, I told the CTO he should put me on the pricing team. I told him I knew this area, I had lots of ideas, I was very interested, and I would make a large impact.
‘The CTO told me to forget about the pricing team because Marketing was struggling and had no developers. He told me I need to go in there, and help them.
‘Marketing was trying to get people to use Jet.com. But they had no tech support. They were struggling to send emails or run campaigns.
‘A learning at a startup is that you need to do what helps the company most, and not what you are most interested in doing. Jet did not need more people on the pricing team; it needed Marketing to start being productive. I said “yes” to the CTO and figured I’d learn about marketing while at it – an area I had no idea about. I’d get the job done and go back to Pricing afterwards.
‘When I arrived at Marketing, it was a mess. People were emailing Excel CSVs with customer emails, hacking around with tools, and doing everything ad hoc.
‘I looked around and decided this ad hoc way of working needed to stop. So I started to build databases to store customer information, integrated APIs to do things with one click that used to take hours of manual work and made the most common marketing tasks much faster and easier to perform.
‘Once this work was done, I went back to the CTO to tell him that I’d completed my work at Marketing, and I now wanted to get back to Pricing.
‘The CTO told me that Marketing was happy, but they wanted me to do more. They wanted personalized emails. They wanted a CRM. They wanted more granular tracking. At first, I was not excited to keep working in Marketing. But then I realized something that changed my perspective.
‘Jet took so much VC money that there were only two outcomes on the cards: either it grows like a rocket, or it crashes and burns. There was nothing in-between. And to grow like a rocket, they needed an amazing marketing team, with excellent tooling.
‘I then decided: “Okay, let me double down on this area. Even though I know nothing about marketing, and nothing about AdTech, I’ll learn and do my best possible work.” And so I did.
‘Six months later I was overwhelmed. I had built so many features, and in between that I was supporting them, and kept needing to build more things. I told my CTO I was too stretched: I couldn’t keep writing all this code, talking to all these vendors, and talking with all the marketing people and supporting all of them. One time, I was awoken in the middle of the night because one of the systems I’d built was down, and the next day I had an early meeting with a vendor I was integrating.
‘It was too much. I told my CTO and the EVP engineering that I needed more people to help with all the work because I could not keep up. I was told I could hire two engineers, which I did. Within a year, this team turned into a 10-person team and I was the manager.