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.
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.
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.
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.
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.
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)
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 :)!