A personal journey from sales to software development

Ivan Gelo
Pipedrive R&D Blog
Published in
11 min readFeb 2, 2022

--

The following article revisits my journey of becoming a software developer.
I hope it can serve those that find themselves in a similar situation :)

First career choice, learning what doesn’t work

I come from Zagreb, the capital of my homeland Croatia. After high school, and like many others, I didn’t know what I wanted to do with my life. I decided to go with the flow and enrolled in one of the most popular courses at that time: business economics at the University of Zagreb. I figured taking this course might be a good step towards stability and that it would also buy me some time to figure out what exactly I want to do with my career.

Sadly, I disliked the course from the start. I found the curriculum way too theoretical and not practical enough. After approximately two years, I realized I wasn’t any closer to realizing what I wanted to do with my life. At that point, I decided I needed a change, so I started looking for a job in sales to be somewhat in line with my studies. I soon landed a job as a sales assistant in a small company that was operating in the food industry sector.

By the time I embarked on my first professional journey in the real world, my frustration with the business economics course had exacerbated. I felt that all the theoretical concepts I had studied for two years failed to prepare me for everyday work situations.

Consequently, I decided to change my priorities. I gradually shifted my focus from my studies to my career. And so it went on for a year or so. I put my studies on hold and got immersed into my job in sales, where I learned a lot about everyday aspects of trade, negotiation, workplace dynamics, etc. Still, I soon found working in sales to be hard and mentally draining. There were no absolutes, and it was hard to quantify the effect a phone call or lunch with a potential customer would have on my results. And, as some sales cycles are longer than others, I realized it could take me several months or even years to finalize a sale, which would weigh on me and wear me down.

I figured out that I might not be cut for sales. At least not at this stage of my life.

Back to the drawing board we go! After a year of working in sales, I started considering other options for my career development. I reviewed my options and tried to figure out what I really enjoy doing.

Second time’s a charm?! Discovering programming

As I tried to reflect on my past experiences and find clues, I recalled particular classes I took at uni, which I highly enjoyed in terms of curriculum and lectures/seminars. These include mathematics, statistics, linear and nonlinear programming and managerial informatics. I realized that I am drawn to certain thinking patterns, mostly logical, analytical and abstract.

Following my realization, I started exploring software development and figured out it might be something I’d enjoy doing professionally! Hooray, I was back on track! :)

Given my bitter-sweet academic experience and the fact that, by that time, I had stopped attending classes and was no longer interested in a sales career, I decided to pursue my career aspirations myself.

My learning course sure was versatile: from courses, side projects and books to asking developer friends for inside tips. Though exciting, this course turned out to be somewhat confusing, with countless resources to sift through. So after a while, I decided to find a system that would enable me to learn these things more efficiently. After talking to friends and doing some research, I decided to enroll in a coding Bootcamp. I figured this would be the perfect solution for me, one that would provide me with clear guidance, practice and structure without the academic rigidity.

Before choosing a Bootcamp, I considered the following variables: location, option to attend in-person, price, financing options, curriculum, reviews, duration and intensity. I also read/watched all reviews available online and even reached out to alumni of the program, who were often ready and willing to help, being in my shoes not too long ago.

My experience with self-learning

As a disclaimer, I believe everyone can (and should) find their own way of learning and fine-tune it to fit their needs.

The following approach is what worked best for me :)

Set a goal
My goal was to become a professional software developer. This may seem obvious, but I overlooked it at first. Having a clear goal in mind is really important. It allowed me to break down the process into milestones. With time, I created a daily study routine that was right for me.

Make a decision and start
I asked the following question countless times: What is the best programming language to learn? This approach kept me away from learning any programming language for a while. Looking back, it would have been better to just start with one and pivot if necessary. I ended up choosing Javascript, primarily due to its popularity and wide usage. Once I made the decision, I got closer to the goal, and momentum was on my side.

Find what works for you
Oftentimes, I found myself following an approach that worked for a friend, a YouTuber, or a successful individual. While it’s great to look for inspiration in others, don’t forget to listen to yourself. It wasn’t until I started tailoring my own approach to my needs that I reached a good level of effectiveness.

Through self-study, courses, books etc., I encountered countless resources. The following is a list of resources I found most helpful.

Jonas Schmedtmann Udemy courses

I really enjoyed courses by Jonas Schmedtmann on Udemy, as well as the Udemy platform in general. Jonas is a great instructor and provides excellent value for the price.

Bogdan Stashchuk Git and Github Udemy course

One of the most extensive and thorough Git and GitHub courses I found online.

Tip for buying Udemy courses: Do not purchase courses at full price but look for a discounted price, which is often available.

Book

This is one of those titles you will keep hearing about, and for a reason.

Ten-hut! Attending Coding Bootcamp

Getting into coding Bootcamp was a great decision and the right choice for me (quick shoutout to the peeps from Codeworks, feel free to check them out).

The Software Engineering immersive program was structured in two separate six-week parts, with the first one being more theoretical and the second one more project-oriented. The schedule was pretty demanding: in my case, Monday through Saturday from 7 AM to 9 PM, a combination of an official schedule and self-imposed one, as I needed some additional time for practicing and catching up with the intense curriculum. On top of our weekly schedule, we would often dedicate Sundays to going over lectures covered during the week.

All that considered, I must admit I loved the program. Not only was the curriculum instrumental and of great quality, but I also met a great group of people, all working hard with one goal in mind. We motivated each other and remained great friends until this day.

I mentioned the curriculum earlier. I want to dedicate a section to break it down.

The first six-week part of the program was theory-oriented. We learned about JavaScript concepts, unit testing, data structures, algorithms, complexity analysis and networking.

We also covered two back-end frameworks (Express and Koa), relational and non-relational databases (SQL, MongoDB), and fundamentals of GraphQL.
At the end of the first part, we learned about two front-end frameworks (Angular and React).

As you can see, I have listed plenty of technologies and concepts above. It’s worth mentioning that we focused more on some than others. As an example, we covered GraphQL in a one-day assignment. This means I wouldn’t necessarily feel comfortable working with GraphQL, but it gave me a feeling of what it’s about and exposed me to its potential.

The second part of the Bootcamp was project-oriented. We did one solo project, one pair project focused on testing and refactoring of existing code and a group project, which allowed us to implement everything learned in the first part.

Three months later, I completed the course. After that, it was time to go and get some real professional experience and find work opportunities in the marketplace.

Looking back at the curriculum as a working developer, I think it was well organized. We covered a lot of topics relevant to my current position. However, it is important to note the real value of attending a Bootcamp. For me, at least, it is not the amount of knowledge but the ability to adapt to new situations and learn quickly. I think a good coding Bootcamp should provide the latter.

Eat, sleep, apply, repeat–The full-time job of landing a job

Bootcamp ended, and I started looking for a job. that would meet two basic requirements. The first: a job environment where I could learn and grow. The second: a product I believe in. The market at that time was saturated with job opportunities–with hundreds if not thousands of new job ads posted daily–allowing me to be picky.

And so, I started applying for jobs that piqued my interests in different European countries. Looking for a job is a full-time job. Applications, interviews, and technical assignments are demanding and require you to be at your best. Though stressful, it allowed me to gain new skills. Learned how to approach interviews, be calmer when faced with technical challenges and participate in live coding sessions. The more exposed I was to the stress, the better I was at dealing with and performing under it.

I planned my job search to a T. I wanted to spend the first three hours of each day applying to jobs, tackle coding challenges for two hours, fit interviews and live coding sessions some time between noon and 4 PM–being the times when I’m at the peak of my mental focus–and learn in the evenings. Or so I thought.

It soon became clear none of this would happen. I would spend the better part of the first weeks just applying to jobs I found interesting. Most of the jobs had optional motivation letters (which, as it turns out, are more of a prerequisite) :)). I ended up investing a lot more time into job applications than initially planned.

After some time, I started getting interviews. I would take any interview, if only for practice’s sake. I kept applying and doing interviews along with interview prep. After a while, I got an offer and took it :)

A short note from my side
There are better and worse weeks while job hunting. For example, I had one week where I got 40% of first stage interviews on all applications. The following week, I had a 0% success rate. Don’t get discouraged if this happens; Just focus on your goal.

Landing a job at Pipedrive

Pipedrive office in Prague

One of the companies I applied to was Pipedrive, specifically the Prague office. Pipedrive is a SaaS company whose product is a sales CRM (customer relationship management) tool. For me, this was perfect because of my background in sales, as I could relate to the product and fully understand the problems the software addressed. After applying for the job listing, I quickly secured the first stage interview.

I was happy and thought that I was off to a good start because the reality is that many applications don’t get any response. And indeed, I passed the initial interview.

The process consisted of multi-step following interviews, all of which emphasized company culture. I have to be honest and admit that, at first, the cultural reference seemed generic to me, and I haven’t given it much thought. However, as I advanced through the selection process, its meaning and the importance of cultural fit for the Pipedrive community became obvious.

At Pipedrive, company culture means a friendly environment based on principles that were set from the very beginning of the company (here you can find more information about it), built by awesome people all working on a shared vision and a mutual goal. Pipedrive’s blog provided me with further insight, and I began internalizing this principle. More importantly, I started feeling this is where I belong.

By the end of the process, I was certain that this would be the right place for my future growth and development. Being a member of Pipedrive for some time now, I understand even better what it means to be a Pipedriver, professionally and culturally.

How programming affected my life

First takeaway: problem-solving
I now have a job that I really enjoy, where I’m surrounded by great people. I love every minute of it. Needless to say, I had some time to reflect on the changes in my life ever since I’ve started this career move.

The journey to software development has positively affected me in a few ways: First and foremost, I’ve developed an ability for problem-solving, or at least an illusion of one :)

When I started learning about software development on my own, it was hard and overwhelming. I was faced with strange new concepts and theories and a bunch of difficult languages, frameworks, patterns, etc. Thankfully, however, I stuck to my goal of exploring the abstract world of software development and was soon equipped with stubborn confidence. Namely, I developed a narrative that every problem can be solved, and this has caused a significant shift in my mindset and, consequently, in my life.

The thing is, you do not need to be the first to solve the problem or even understand it as soon as it appears. The key is to stick to it for long enough and approach it persistently from various angles. Do that, and you will almost certainly crack it, eventually. Something that seems complex at first becomes simple and makes sense after some time. This “can-do” approach in which you deem every problem–no matter how hard it is at first– solvable as long as you put in the work is a great asset to have. This mindset has kept me motivated and made me grow in both professional and private life.

Second takeaway: constant growth
The second takeaway from my journey in software development experience is that I have developed a great appetite for constant learning and improvement.

The thing about learning is that when you’re at the beginning of your learning curve, you are clueless, and this is a great thing.

What this essentially does is prime you for learning. With no previous knowledge and no bias, all you need is the will to learn and find the best solution. From the perspective of learning, this is a unique opportunity to absorb the best approaches and practices and a great time for you to better yourself. You can learn new things from literally everyone you meet and everything you read and see. Use it and, soon enough, you will be surprised by your progress.

Interested in working in Pipedrive?

We’re currently hiring for several different positions in several different countries/cities.

Take a look and see if something suits you

Positions include:

  • Junior Developer
  • Full-Stack Developer
  • Lead Engineer
  • Junior Software Engineer in DevOps Tooling
  • Product Manager
  • And several more

--

--