My first job as a software engineer: Underpaid but patient.
Urgency is beautiful and forces you to put in the work.
Disclaimer
I've gotten feedback that this article has been perceived in ways I didn't intend to. For instance, my intention isn't to define what burnout is, or tell you that this is the only experience of burning out.
The purpose of this article is to inspire people by sharing the struggles of what a programmer and high school dropout may go through, and that the journey isn't all shiny.
This article wasn't easy to write. What helped me articulate was imagining myself talking to a friend.
Introduction
I wasn't sure whether I should write this article or not. Because if I do decide to write it, I want to be honest. I want to be honest about the story and the things I did. If you have followed me, you know it took me 1.5 years working as a software engineer before I landed two 6-figure offers. The journey there wasn't easy. It was a journey of hard work and perseverance.
This story is everything about my first job. I would be lying if I said I didn't struggle mentally. As Naruto's biggest fan though, I know I need to work fucking hard and believe in myself, and any dream I have can become a reality. ๐ช
Had I not watched Naruto, I would've never believed in myself like I do today and have immense confidence. I wouldn't have been brave enough to create the destiny I desired.
I know one thing for sure: No one except myself will push me toward my dreams, turning them into realities. ๐
There are too many things I could speak about. However, I will do my best to include the essential parts of the story.
The purpose of this article is to serve as an inspiration for what you can accomplish and not to give up when things get hard.
Therefore, I will write from my heart as if I'm speaking to a friend. ๐ค
Let's begin with an image of Naruto. ๐งก
The story
Side note
Tonies was an amazing place to work in. The people were great and I grew there. The company has awesome family values and its product makes millions of children happier every day. I even use it for my baby sister today.
This story is about my time working there. It doesn't reflect the entire company or product.
Getting the job at Tonies
I dropped out of high school and was looking for my first software engineering job. It took me four months before I got the job at Tonies as a Junior Frontend Developer. Throughout the process, I received many rejections. I even remember a guy who laughed over the phone when telling me good luck, as if I had made the stupidest decision to drop out of high school. But little did he know, it was the best decision I had made. ๐
It started with an email exchange. In the email, I clarified I was looking for a full-time position. I had a call with a recruiter at Tonies. He told me he'd forward me to the technical interview. In the technical interview, I showed a project of mine and had a chat with two engineers. One of them would become my future engineering manager and let me tell you; he did a stellar job! I'm super grateful to him. He helped me grow, became a friend and gave me a fantastic reference letter.
The third round of the interview process was talking to the director and one of their Junior developers. It went well. They wanted to know how long I was planning to stay and tried telling me how much they believed in the company's mission.
You know I left after 1.5 years. But I played it off nicely, excited to be there for the next 3-5 years. Though, in my head, I gave myself a deadline of 2 years before I got out of there. ๐
In the last bit of the third round, the Junior developer left. The director and I were alone. He dropped the number, a 30k salary. I could see how he was smiling. He knew deep down how much he was underpaying me.
The average Junior developer in Germany makes 45k. I will be honest, though, I thought to myself then: Focus on getting the job and deal with the money later. ๐ฐ
I'm not stupid. I knew I needed the experience. And it allowed me to prove every soul out there wrong. Not a single soul thought I'd make it as a high school dropout.
When Tiger Abrodi is hungry for something, he gets it, even if every soul claims it is impossible. I'm Naruto's student, after all! ๐
Anyways, I ended up accepting the offer. They sent me the offer physically. It came after two days. I signed it. It was the best moment in my life. It was the moment I became free. But I knew what was to come next.
When tasting a bit of success, settling and becoming lazy is easy. But, if you know me, I'm hungry like a lion. I knew I would have to grind hard every day to get out of this rot to a nice place. It was time to work harder than I had done before.
I always feel that sense of urgency. I still feel it today. I love the feeling. Waking up every day hungry to make the most out of it. Grateful to still be alive, knowing many people go to sleep but never wake up.
A new chapter in my life has begun. Finally, it was time to create the destiny I want live. I had reached the beginning of the real journey.
The first six months
Before work
Before beginning my first job, I had already learned VIM, Git and how to be productive in my code editor. Let me tell you, it paid off well! ๐
I have seen Juniors who join and are pretty slow at coding. Being slow at coding literally makes everything take longer to get done.
I'm happy I wasn't in that position.
Work
The first month was amazing. Everyone was kind and helpful. I began coding on the second day. When I joined, they already had a few tasks prepared for me. I was excited to prove myself. Things went exceptionally well.
I began having 1-on-1 meetings with my manager in the second month. We would have them once a week. I should've brought it up earlier, but I didn't know any better back then. This reminds me of the importance of learning from others and reading books.
I kept working hard. I would often work more hours than I should. I still regret not running after the tougher challenges soon enough. I'd always shy away from tough tasks. Though, those tasks are the ones that make you learn the most.
I didn't do much pair programming in the first months. I'd do them with my manager often but not with the other engineers on the team. Pair programming wasn't something normalized there. I tried pushing harder for it in my later months.
I'd often volunteer to do things. For instance, I was moderating our weekly development meeting, where all teams gathered to chat. It was also a meeting where people could present things. ๐ค
In my third month, both my manager, whose role back then was called Tech Lead, but that changed later on, and the Group Lead called me into a meeting to discuss my first three months and the future at the company. They were both outstandingly impressed with my development and said I was among the best hires. They would have even wanted me for other roles. The Group Lead told if I'm ever considering a different position, I should let them know, so they can see what they can do to make me stay.
I replied, "Of course." In my head: As if someone would let anyone in their company know they are looking for a different position. ๐
The first six months were great. I worked hard and learned from the feedback. I think one thing I did well was never being satisfied, going weeks without significant growth.
Outside work
In the beginning, I was still figuring out what to do in my spare time, which would help me grow even faster. So during the first two months, I focused on getting better at React and Testing. React was the UI library we used at work. I needed Testing for both work and my software engineering career because I had read that becoming good at Testing would make you stand out as a software engineer.
I wasn't reading books or blogging in the first six months. I began reading books in my seventh month. I'll talk about it later.
There were many things I did in my spare time during the first six months that helped me grow exponentially:
Building side projects with technologies used at work
Contributing to open-source when I found an opportunity
Helping out in communities
Doing workshops at Frontend Masters
I think helping out in communities was valuable. To teach is to learn twice, and it allowed me to begin building my name. Explaining things to others always lets me check my knowledge. I would also answer questions I didn't know the answer to by researching. ๐
Can we call it TDD? Teaching-Driven Development? Learn by teaching shit you don't know? ๐คฃ
It also helped me broaden my knowledge.
Daily Schedule
People often ask me about my daily schedule. I have tried many different things. I'm a fan of trying new things and seeing if they work.
If you know me, you know I'm a big fan of habits. Having a routine helps you be consistent in whatever you're trying to achieve.
For the first six months, here is the traditional daily schedule I followed:
Wake up between 4:00 and 5:00
Work on my own stuff till 7:30
Work till 16:00 with a 30-minute break in-between
Take a nap right after work for 30 - 45 minutes
Hit the gym or continue working on my own stuff till Kickboxing starts at 20:00
Get back home from Kickboxing and sleep. Or Get back home from the gym and work on my own stuff.
I planned to get in 3 to 4 hours of deep work outside work during work days. Of course, on weekends, I grinded like an animal all day. ๐ฆ
Gaming week (burnout?)
Fuck. Something hit differently. It was sometime in the third month. I wasn't feeling well. I felt drained. I pushed myself too hard by grinding from the start of the day to the last moment. I took a week off from work, slept well every night and played video games during the day.
I won't lie. It was a good week. I recharged and came back more motivated than ever.
Looking back, I think I could've avoided burning out by having some time during the day when I relax. Especially the last 2 hours of the day. It's good to relax before bed, recharging your batteries for the next day.
That's what I'm doing today. I don't grind the last hour of the day. Instead, I make sure to rest and do something unproductive. It makes me feel driven and recharged the morning after.
As for the game, I played Red Dead Redemption 2, and yes, it was fucking good. ๐
The first year
Work
I had been working for six months. We were now in my seventh month, January 2021. My plan was to get promoted to Mid-level, stay there for a while and then leave the company. I didn't want to leave the company still being a Junior. This way, on the resume, you see evident growth.
I began asking my manager for feedback and what I had to do to get promoted to Mid-level. He was shocked and mentioned I hadn't been there for a year. I responded by saying that years of experience aren't what define seniority. I also mentioned that we didn't have an engineering ladder and that my plan isn't to stay a Junior forever.
We agreed. Before getting promoted, I still had things to learn, such as writing extensive E2E tests and taking more initiative in improving our codebase.
Road to Mid-level
Before I planned when and how to leave, my focus was getting to Mid-level. I took more initiative and got more involved in writing E2E Tests. I began reading software engineering books and used what I learned to propose ways we could improve. To mention some:
Deploy more frequently:
- The
main
branch is constantly improving. But it doesn't mean much if the system isn't improving for our users.
- The
More pair programming with proper rotations:
- Get more things done with increased quality.
Do pair reviews instead of async code reviews:
- Get PRs merged sooner.
Stop and Fix:
A practice from Extreme Programming: When CI fails, the team stops what they're doing, hops on a call and fixes the
main
branch immediately.We always want the
main
branch to be in a good state. Ideally, the production system is up-to-date with it.
I actually made a document on how we can become more Agile as a team. ๐
Much work I did was way out of the scope of a Junior developer's responsibilities.
In March 2021, the ninth month, I brought up the promotion to Mid-level for the second time. Around the time, the director had moved to a different company department. We were interviewing for new directors. The aim was to have a new one join in August.
My manager thought it'd be better to wait for the new director to join before any promotions. This is because he didn't have experience promoting people, and the new director could help shape the company's engineering ladder.
I made a mistake. I let it slide. I could've gotten promoted that month. I should've pushed harder, like I eventually did in May. I knew I was performing at a Mid-level, if not beyond that. Finally, in May, I had enough. ๐ค
During this time, I was nervous. I get emotional thinking about it because I remember how I felt. I was worried about becoming fired or what people in the company would think of me. I remember telling myself: You have been fearless the entire time and dropped out of high school, and now you won't confront your manager about getting promoted? ๐ค
I reached out to friends I knew for advice. But a lot of advice I got was more about joining a different company. I couldn't do that! I needed the Mid-level on the resume. This way, when looking for my next job, the growth is evident on the paper and I will join my next company as a Mid or Senior engineer.
I wrote a document with all my contributions to the company and highlighted the outstanding ones. Then, I brought it up in the next meeting with my manager. I confronted him about it:
If I'm not promoted to Mid-level, I don't want to stay in the company anymore because there is no growth.
I want at least a 45k salary when I get promoted to Mid-level. That's the average salary for Junior developers in Germany.
He hurried up talking to the director of HR and the engineering director we previously had who was in the other department. I ended up getting promoted in the eleventh month, June 2021.
Sadly, the salary I got was 38k. I was literally making less than the average Junior developer in Germany as a Mid-level developer. ๐คฌ I couldn't fucking believe it. It felt like the company spat in my face telling me how worthless my job was. But as I always do, I thought of my next moves. ๐ช
However, I got the Mid-level position. It was time to plan my leave.
Outside work
Outside work, my learnings remained the same, except I had begun reading books!
I don't like knowing knowledge exists that I'm missing out on. I saw people on Twitter who liked books and those who didn't. So instead of forming an opinion, I got extremely curious.
The first software engineering book I read was Clean Code. I was fascinated by the book. I wasn't taught some of the concepts in the book elsewhere.
That's when it clicked for me; hidden gems exist in books. I became obsessed with reading and it helped me grow exponentially. The book opened my eyes to knowledge I hadn't found elsewhere. It filled gaps I had as a self-taught software engineer.
Anyways, my learning outside work just leveled up. ๐ฆ
My plan to leave
I wanted to stay in the company for the entire 2021. I thought it'd look nice to have more than six months of experience as a Mid-level developer on my resume. The goal was to look for my next position at the beginning of 2022. I had about seven months. ๐ค
I was thinking about what I could do till then. What would make me stand out even more as a software engineer?
Three things became my focus:
Reading books:
- It paid off well. I knew continuing to read books would help me acquire knowledge that would make me stand out because most software engineers don't read books.
Building side projects:
- Building and applying things into practice is the best way to learn.
Blogging (new):
- I started blogging. Blogging went well in hand with my avid reading. I knew most developers don't have a blog. Blogging wouldn't just make me stand out but allow me to build my brand.
Blogging
I will write about my journey into blogging in a separate article and explain why I wish I had begun blogging much earlier.
However, after writing the first article, I fell in love with blogging. It's something I'd do even if I got zero views. Writing helps me learn better and the blog is a place to store my knowledge, like a second brain.
Growing in knowledge
I was now either doing or had done every possible way I could grow in my spare time:
Building side projects
Reading
Blogging
Volunteering in communities
Contributing to open-source
It felt amazing. I didn't feel like I was missing out on anything. I was so happy that my past self didn't form opinions too early and excluded potential growth. For instance, that reading is useless. ๐ฅ
Job hunting
At the beginning of 2022, I looked for my next role. I applied to companies I admired, such as Figma and tweeted this:
I quit my job in January. The notice period was three months, but I was let go in February. I told my manager that I was highly demotivated and unhappy. I wanted to leave as soon as possible. Thankfully, they let me go earlier.
I appreciate my previous manager a ton. He found it unfortunate that it had to be that way. He helped me grow immensely and became my first mentor! The reference letter he gave me was very detailed and outstanding. I couldn't believe it when I read it. The effort he put in. He even included contributions I made in the letter that only he and I knew of.
Being demotivated
I was demotivated at work for most of 2021. This is because I often took sick time to work on my own stuff. I'd do it on average about three times a month. My manager actually brought it up once. He told me HR noticed that I'm frequently calling in sick, often on Mondays or Fridays. He wondered if there was anything the company could do to help out here or something they should be aware of.
It was true. I used to call in sick on Mondays and Fridays. Those days would let me have a long weekend. ๐
I said I call in sick when I don't feel well. The fact that I had asthma was another thing I included in my reasoning, even though my asthma doesn't affect me much today since I have gotten much healthier. It went away when I started doing Kickboxing. ๐ฅ
If you're wondering: Yes, I kept calling in sick. It'd be weird if I suddenly never stopped calling in sick, so... ๐คฃ
I was extremely demotivated the last two months. I knew that I was going somewhere much nicer next. It was hard to get anything done. Literally fucking anything was hard to get done. ๐ฎโ๐จ I would take 2-3 hours to do a code review and watch Netflix while working.
No, I'm not joking.
I don't recommend watching Netflix while working, but I told y'all, I'll be honest when sharing this story.
In fact, my manager called me out about it. He wondered why small tasks suddenly took me a long time to get done. I explained that I'm extremely demotivated and barely have the drive to get anything done.
Conclusion
There are so many lessons we can learn from this story. I don't know where to begin. Let's try summarizing it in a couple of bullet points:
Never give up
Don't let people discourage you
Turn negative energy toward you into fuel
Have the courage to create the destiny you desire
Don't let fear hold you back
Work hard for your dreams
Recharge when you need to and experiment with what works for you