DEV Community

loading...
Cover image for My first 4 years as a professional developer in a dream company. And why I left.

My first 4 years as a professional developer in a dream company. And why I left.

kethmars
Always learning, always in motion.Creator of developerHabits - a Youtube channel about developer lifestyle, growth mindset and webdev tutorials.
・10 min read

Are you someone wondering what the first years in a developer's career look like? Or maybe you're already working as a developer but finding it hard to reach the next level? Well...I'm here to say that it's completely natural. And in this video, I'll be walking you through my first years as a developer in a fast-paced startup, showing you what I learned, how I learned and how it all felt like.

Before I start, I'd like to say that this video is meant as a diary entry for myself in the future. It's long, but also necessary as it gives an overview of my first years as a developer and my honest thought process during those times. I hope it serves as an example by showing that the way up isn't straightforward and it's completely ok to hesitate along the way.

How did I land a job in one of the coolest startups of Estonia?

Before joining, I had been freelancing for many years. It was fun, but at some point, it also got lonely. That's when I decided it's time to grow my development skills to the next level, a decision resulting in a search for a job as a dev. Having a solid portfolio, it was easier for me to get to interviews and also get offers. The best ones came from smaller agencies that liked my fluency in WordPress. But my goal wasn't to get a good salary. My goal was to grow. And when an interviewer in one of the companies, Pipedrive, told me I've got some junior skills but listed tons of areas I could improve in, I was hooked.

Straight after joining I saw why the company's so great. I was given a proper 2-week onboarding, the colleagues were smart, optimistic and full of a "can do" attitude. Through regular, by-weekly 1-1s I was provided with a fast feedback loop that helped me to grow as a person and a developer. And the best part - we had fun! Various team events, company gatherings and traditions is an important part of Pipedrive.

Although the environment at the company was great, I quickly understood that in order to succeed, I must level up my coding and problem-solving skills. And that's how my journey began.

Year 1 - Learning I'm not as smart as I thought to be

I joined Pipedrive thinking it's gonna be an easy ride. Initially, I thought I'd be there for one year just to get some professional experience but little did I know. My expert level CSS and Javascript skills were actually quite superficial. I knew how to write code, but not in a maintainable and performant way. I especially remember one front-end task, where after the code review, my colleague told me that it's not enough to just do things. We have to do things well. My initial shock woke me up and motivated me to give my best.

By doing pair-programming session, I grew a lot. I also had superb 1:1s where I was recommended books, guided on what to focus on and share my worries and ask questions. All the results in an encouragement to just keep going.

During my first year, I also managed to take down our website a couple of times. In the beginning, I was really mad at myself, asking questions like how I could've done it. But again, I was asked if I learned anything. That was the kind of mentality I've tried to use since - to not blame but solve the problem and educate others.

By the end of my first year, I wanted to make show that I've gotten better and decided to take on the task of refactoring our routing system in NodeJS.

Looking back, my first year was about learning to swim in an unknown environment. I joined super confident but lost all of it once I saw my previous skills were not enough. And I'm happy because that really made me want to improve myself. Besides technical skills, I acquired new knowledge regarding development processes, product-minded thinking and startups in general.

Year 2 - Getting promoted. And seeing how dangerous it is to fall in love with your ideas.

My second year started with finishing the big refactoring in our routing system. I was really proud, as, during the code review, one of my colleagues and mentors told me that junior devs don't write code like that.

Great news followed shortly after, during one of the 1:1s - I got promoted for the exact reasons I was hoping for - taking initiative, being able to actually deliver, showing that I can improve and have an attitude that seeks challenges.

Although I was hoping for a promotion, I did not believe I was fully worth it. But then something unexpected happened - some more experienced devs left the team, pushing me and my team members to take more initiative.

One of those initiatives was a project to build an in-memory database orchestration system using Redis Sentinel. That project completely out of my comfort zone and I was hacking days nights, literally.

I got to spend about 4 months on it when it was just scratched after our team merged with other teams and we got some more experienced backend devs to join our cause. To be honest, I remember just being happy because I was paid to learn in-depth about Consul, Docker Swarm, writing shell scripts and Redis. I also had a chance to do pair-programming with our DevOps people.

But the greatest lessons? Firstly, one must constantly question how much value does your work actually bring? And secondly, it's ok to prefer simple solutions if it has a minimal cost.

As the year continued, I focused more on FE and started mentoring interns. It was a great chance to clarify my own knowledge but also have an impact on others' career.

To conclude, I believe my second year in Pipedrive was one of the most educative ones. Tech-wise, it was fun diving deep into unknown concepts, although it didn't bring any business value. I'm grateful as I learned the importance of listening to people around me, preferring simple solutions and the necessity to make compromises when needed.

Year 3 - Back and forth between the soft skills and technical improvements

The third year started slowly. I was still connected to mentoring initiatives and then joined a project to continue building our new website's FE(VueJS). As I had done lots of VueJS development in the past, I felt quite comfortable.

After our new website was published, I joined an backend-only project to really dive deep into how that world works. I Got to see how much discussions and planning must go into creating systems that connect to tens of other microservices using event-driven architecture. As the company was moving towards using Kafka, our project was also one of the pioneers of that technology. In the end, I gained back-end related tech knowledge and proved to myself that besides backend, I can comfortably work in backend systems as well.

During the backend project, I also joined our front-end council, where my focus was on improving our developer community. It resulted in me organising meetups and engineering bootcamps, which I really enjoyed as I could practice my communication and organizational skills. In hindsight, I believe it's made me a better project manager.

During the second half of the year, the idea of creating an internship program in the company emerged. Together with two other developers, we took the idea, came up with a real plan, and made sure we have actual projects to build. Looking back, I believe we did a great job - everything was really well thought through and all the interns landed a real job. From a personal perspective, it was also a great chance as I got to lead the biggest project of the program and also freshen my React skills, as most of my team's projects were in Vue.

The year ended with an awesome Christmas party. I really enjoyed my time in the company at that point, although I remember thinking more and more about becoming a senior developer.

Year 4 - Creating an impact, but still not happy

At the beginning of the 4th year, my manager told me that I'm gonna be promoted to the final level of mid-levels. The next step from there would be becoming a senior dev.
I was both sad and happy- happy for the advancement, but a bit sad and demotivated as I was hoping to become a senior developer. I must say it's a tough topic as I constantly compared myself to both devs in my team but also to other devs in the company.

After some self-reflection, I understood that although I had always tried to do more than expected, I was juggling between too many different areas. I needed to focus on specific topics, namely front-end development. As the internship program was still going on, my first goal was to finish it successfully - by making sure we deliver the project and get all the interns hired. And it happened!!! ALL 3 of them became junior devs in our company (and here I must give a huge shoutout to all the other developers connected to the program).

Once the internship program was over, it was time to level up my FE development skills. Fortunately, there were talks about restructuring our public services' FE components. Without thinking, I took the initiative as I was really opinionated on the matter and saw that both the underlying design system but also the component library was lacking and must be done properly by someone who understands both the designers and developers. And I thought I could be that person.

Everything seemed to go according to the plan. We had workshops about the design system with designers and developers when suddenly, the corona pandemic hit the world. I'm not gonna go into that topic, but basically, it meant the company had to do some tough decisions. Amongst other things, we had to lay off some people and also freeze all the promotion-related activities.

For me, it meant our design system project got delayed and I joined another team's project which was more urgent business-wise. Thinking back, to me personally, it was a good thing as I got to do some more advanced React development.

Around the same time, more and more recruiters started contacting me(maybe because of this channel?). Initially, I told them I'm not interested but then it suddenly hit me- it's an opportunity to test my skills but also see what other companies are up to. I saw it as a chance to validate to myself that once the pandemic is over, I'm worthy of becoming a senior developer. The following months were full of ReactJS. I worked from home, mostly pair programming with a good colleague of mine.

The other teams' project finished in the middle of summer. I took a short vacation, after which I could finally start the project of our new design system and component library. We had two designers and 4 developers(me included). Without going too deep into this topic, it was a truly fun time, as I got to lead a team again, have an impact on how the new design system was created but also improve my React skills, as one of the devs in our team was truly on another level.

I felt that this is what I want to do - work with amazing people on projects that have importance. That said, I wasn't truly happy. I felt something was missing. I was a bit burned out, but I knew there's something more. As I was also actively going to interviews in other companies, the thoughts of leaving the company came to my head.

At some point, a friend from the university times wrote to me saying they're looking for a full-stack product engineer in a startup dealing. I was hooked, momentarily as the company dealt with topics like artificial intelligence, psychology and politics. Thinking I'm not gonna pass the interviews, I was offered a job. After declining initially, I finally came to the conclusion that it's my time to move on (I will be sharing the points I analyzed for making the decision in the next article).

In October, I gave a presentation to my team about our new design system and the component library it accompanies. It seemed to me we had done a good job.
And just as everybody were about to leave the room, I asked them to stay for a few more minutes to announce I'm gonna leave the company.

I took a month-long vacation as I was also really feeling burned out. (I've also shared my experience in another video which I'll share in the description). After the vacation, I returned for a couple of days to see how the component library is doing and to say my goodbyes to all the awesome people in Pipedrive. The last day in the office was really hard. But I was happy as I had made a decision that takes me into an environment that forces me to learn new things but also utilize all my current skills.

As you can see, the fourth, final year in the company was really about focusing on one thing, having an impact and getting promoted(although in the end, I left the company before that)

The conclusion

It wasn't easy. After 4 years, I dare to say that Pipedrive is a great company. The product, the technology, the vision. But most importantly - the people. The people who are motivated and have a "can-do" attitude. If one were to ask me which company to join in order to grow as a developer, I'd tell them to go to Pipedrive.

There were still things I wanted to achieve in the company, but I felt I wasn't giving my best anymore. And moving on...Well, 4 months later, I can say it was the right thing to do as I've met so many new great people, learned new technologies and have been able to utilise all my skills.

Regarding making the final decision of leaving the company, there were various aspects I analysed. My next video's going to be about my thought process around leaving the company so you could get some ideas when you're in a similar situation.

I hope my 4-year-journey helps you to see that it's important to work hard, be humble and keep focus, although, at times, I lost mine. Nevertheless, I'm still happy as I gained new skills by doing public speaking, organizing events and eventually even starting a YT channel. And that's why I want to end by saying that keep up your growth mindset and seek opportunities to go out of your comfort zone, no matter if it's vertically or horizontally.


And a shameless promo - if you are interested in coding, growth mindset and are willing to share your experiences, ideas, then please do PM me on Twitter :)!

DeveloperHabits
📷 Youtube: developerHabits
👉 Twitter: https://twitter.com/developerHabits
👉 IG: https://www.instagram.com/developerhabits

Discussion (17)

Collapse
darkeye123 profile image
Matej Leško • Edited

Interesting reading :)
Though according to the content I've just read, you are a senior developer for a longer time. You are just comparing yourself too much. Be happy with your progress and the flow you enjoy.

The sad truth is that seniority is "given" according to what you ask as a payment. The bigger salary you requesting, the better title you will be given :) This is true for most od the companies out there

Collapse
kethmars profile image
kethmars Author

Thank you, Matej!
And I actually agree with you regarding comparing part. At some point, during my 2-3 years, I got rid of it, but when I saw people around me being promoted, I started thinking about it more and more...
Nevertheless, I do agree with you and believe that in the end, it's us that must ask for what we want.

Collapse
lexswed profile image
Lex Swed

I feel it's a common issue in big companies who attract lots of talent, some of which can grow faster than the established process for all engineers. However, technical growth and challenges met by such people are pretty much scoped to the level they're in, and there are just too many variables to see why it is so and how to fix it. There's a good picture about the distribution of layers and I like how it explains growth in companies, especially for big companies.


But in the end, I believe it's the best choice one can make – move on to become happier, more experienced and wiser :)
Collapse
kethmars profile image
kethmars Author

Firstly, thanks for sharing that article!

But I agree with your point regarding processes - it's hard to come up with a system that really suits everyone. Fortunately, there are plenty of discussions around that.
But imo it's equally important to talk about from an individual's perspective. In my case, it was hard for me to justify a promotion, because of comparisons to others. It's easy to find developers who are better than you and it's easy to start comparing yourself to them. In some way, processes can help around it, but at the same time, managers and culture must support and motivate to reach higher.
And yep...in the end, the easiest way to understand your value is to go to a new environment.

Collapse
engr_rejwanul profile image
Rejwanul Hoq

Awesome Story. Carry On

Collapse
kethmars profile image
kethmars Author

Thank you, Sir :) !

Collapse
kindred_fawn profile image
Kindred Fawn

Great article in which I can completely relate. I started out as self taught with a startup as well. Growing in IT can be challenging but you will get there if you persevere. The only way to make it, is to work your ass off, learn and learn some more. It’s never ending so you need to understand this if you ever want to get to senior level.
It took me 4 years to get to senior. I had to improve my soft skills from day one and I think alot of devs overlook this crucial step. I’m naturally shy and I hate public speaking but I do it anyway. I landed my first contract in my 5th year. It’s my 8th year now and I’m a Lead Engineer. But let me tell you this, there will always be elitists in IT who will be jealous of your success, or devs who will even try to take your role from you.
Ever since I’ve been lead, this has been happening.
It’s competitive out there so to get to the top you have to be on your A game while remaining calm, supportive and approachable.
Like Elon musk said “work your ass off” and like Dwayne Johnson said “be the hardest worker in the room”.
This mindset applies to every aspect of life too though. Good luck to all you aspiring devs out there!

Collapse
kethmars profile image
kethmars Author

Thank you and I'm glad to hear about your journey but also the mindset you have! That's the way to go!
In the end, I've come to believe that if we want something, we must ask it and try not to compare ourselves to each other.
And as you said - always make sure to give your best!

Collapse
cwraytech profile image
Christopher Wray

Super cool story and thanks for sharing! So glad that you got a great job at the end of it all.

Collapse
kethmars profile image
kethmars Author

Thank you, Christopher!

Collapse
jsgoose profile image
Jonathan Sexton

Great article and awesome advice for developers at any level!

Collapse
mirokole profile image
MiroKoLe

As someone who got his first dev job three weeks ago I find this article very interesting. I hope my first year will be as good as your. :)

Collapse
kethmars profile image
kethmars Author

Thank you and wish you the best in your endeavours!! Stay hungry for knowledge!

Collapse
jocelinqueau profile image
Jocelin Queau

which books are you refering (1year) ? YDKJSY | Eloquant JS ?

Collapse
kethmars profile image
kethmars Author

Great question :)!
Eloquent JS is a great one and I strongly recommend reading it!
In my case, it was mostly more high-level books like Clean Code, Microservices Architecture, Javascript the Good Parts, Javascript patterns to really get me away from the "let's just hack it together" mentality.

Collapse
sheetly profile image
sheetly

Great story. Subscribed!

Collapse
kethmars profile image
kethmars Author

Thank you :) !