../

A successful career switch to developer

You are looking into switching your career to become a developer ? But you don’t know much about it ?

This is exactly like me ! Today I’m a backend engineer, but before that I was working in accounting. I made the switch 5 years ago and I’m super happy about it.

A bit about me

My interest in computer science isn’t new, it all began when I was a teenager. I started by learning html and css and I remember doing some kind of maze using html links. That was fun to me.

At school, I did not follow a scientific path. A bunch of teachers sent me another way (social & economy path) because they did not feel confident I would make it. It’s true that I was doing the bare minimum. So I followed their advice, but I should have fighted it back, because my mind was shaped for a scientific cursus and I knew it.

So I ended up choosing accounting, kind of randomly, because “I like numbers”, and that was one of the very few options available to me that I liked.

Things went well though. I enjoyed accounting, especially management control, which got me to play a lot with Excel. I learnt how to automate stuff and even got to learn some VBA through that cursus.

After getting my accounting and financial audit diplomas, I ended up in a small start up company. I was hired as the admin intern, the guy at the lowest hierarchical chain in a company. My first missions were to print stuff, classify thousands of papers in chronological order and other kind of mind-crushing tasks.

But that company grew a lot, and me with it. I stayed there for 6 years. During those years, my responsabilities increased and I had enough freedom to try a few things. I started to automate more and more stuff, first for myself, then for other people in the finance department, using some advanced excels, macros and google suits.

My proudest achievement

At some point during those 6 years, my father, an amateur beekeeper, needed some tool to manage his hives. So I tried to build something for him, using excel as it was my main expertise. It took some time but I succeeded. And it was marvellous.

Like really, it used formulas, macros, events on click… There was an edit and a viewing mode. Everything was saved in a database stored in the excel file itself. I learned a lot and it showcased me how powerful excel is. I was very proud about that damn excel file.

But upon unveilling it to my father, he asked for a change that brought down everything… The worst is that this change request that looked like nothing really: he wanted to name the hives, rather than seeing them as integer (that integer was the primary key of my hive).

That request, even though so simple, was in fact breaking a huge part of my automation workflow. It would have required to rebuild most it not everything.

This crushed me. How could I have built something so amazing in my eyes, but yet so fragile. This really devastated me and I did not opened that file ever since then.

I finally came to the realization that some kind of cool tools should exist to better manage some change requests. And that’s how I ended up reading stuff about coding, and, python. Simple, easy to learn. It looked nice and I started to learn it shortly afterward.

After some time, I felt confident enough to start building the hive application for my father in python, using tkinter (a UI module in the standard library). But that was a tiny little bit too difficult for me. I was really slow to build the app. It took me several weeks to build a application with 2 windows, a few buttons and forms. And the thing was ugly as hell. This slowness demotivated me to spend more on it. So I kinda stopped working on it.

An opportunity to grab at work

Going back to my work. I was discussing with my boss and she was complaining to me about some kind of reporting done monthly for revenue recognition. Something done on an excel file that was requiring several days of work each month. And as the company was growing, quickly, it was getting worse and worse.

She was just grumbling about it to me, and really had no solution. I talked to her about that python thing I was learning on the side, and that potentially, it could do the excel file job quicker… After all, I did read that python was used for data processing.

She was receiptive and I got briefed. 1 week later I came up with a python script that could do in a few seconds what was taking 3 days otherwise. I was in owe. They couldn’t believe it neither. It took me only 1 week, and I made something good enough to present it. After adjusting some edge cases and thoroughly testing it, this script came to replace the manual file.

That was the entry door. At that point, I was hooked, and there was no way back. I started to do stuff in python, more and more, at work, at home, in my dreams. This quickly became my new passion.

To the point that I thought, hey dude, if you enjoy it so much, why don’t you try to find a developer job ?

But having no diploma, I didn’t feel confident enough to postulate anywhere. I found and finished CS50, an online course from Harvard. It taught me the basics of programming, memory management and web development… It was really worth it and helped me to get more confidence for applying to developer jobs.

And as I was learning through the course, I also started to re-build (again) the hive application for my father, but as a website this time.

I applied to a few companies, one contacted me back. My candidature was spotted by an engineering manager, he made me pass an online test about python, interviewed me, and bam, I got my first developer job just like that.

I was set to start my new job some months later and everything was wonderful. I couldn’t have been happier. But I didn’t know what was coming to me.

Welcome to… the big world of programming

Just think about the poor boy that I was. All I did was a few scripts with a hundred of lines, fullfilled an online course, and I thought I was a developer.

But I didn’t know I just entered the big boy playground…

I was slapped. I was introduced, all at once, with so many new tools, processes that were completely new to me. I mean, just think about it: linux, git, legacy python (2.7!) monolith, docker, debugger, mysql, jenkins, elasticsearch, CLIs… And that’s just about tools. Let’s not forget about the processes that developers deal with in their daily work life: CI, git flows, deployments, reviews, design/archi discussions… I was thrown inside that world with no prior warning.

I was lost. I felt like shit. That depressed me. It was extremely tough to go through and I would have resigned many times if it wasn’t for the support of my wife. It took 6 months for me to start feeling a tiny little bit comfortable and getting back some kind of of enjoyment in what I was doing.

It’s also around that time that I got lucky enough to integrate a new team in charge of rebuilding our python monolith. The monolith was hosted on premise, and we were tasked to rebuild it using a new infrastructure on cloud with micro services.

What the hell that was ? What was I engaging myself into ? I had no idea. But I was part of the team in charge of building that.

We were 15 people in that team, some backends, some frontends. I was the junior, but the experience was golden for me and I did learn so much.

In two years, this brought me to understand basic infrastructure concepts, develop plenty of core services in python, doing devops and ci stuff and even mentoring other people slowly onboarding the new stack towards the end.

It’s all about you

I’m not working in that company anymore today. I found another one, bigger, more close to my hearth, still as a backend developer, senior but still learning a lot. And the learning just never stops, that’s part of our job.

I’m happy and I wouldn’t change my career for anything in the world. It’s wonderful to be able to associate work and passion. I do not regret switching my career, even though that was a step back at the time.

I understand I also got lucky. You have to get some luck to get the kind of opportunities I got. But you also have to take actions to create those opportunities, and you need to actually catch them (easier said than done) !

If you are wondering about a career switch as well, here are a few piece of advices I can give to you.

Only go for it if programming is your passion

I worked a lot on my personal time to learn about programming. You won’t escape this and you need to be aware of it. You won’t make it if you don’t enjoy it.

You will need to work twice as hard as the other ones. But that’s just a feeling and you’ll make it. Today, I don’t have that feeling anymore. I proved to myself and other people that I can do it. I don’t think I have the need to keep learning on my personal time anymore to keep up with my job. I still do it, but because it’s a passion to me.

Find a cool side project that you can sell during your interviews

I feel the hive application I built for my father unblocked me many doors, way more than the CS50 diploma, because of the experience it brought me. I don’t regret taking the CS50 course, I needed it. But I never got to talk about it through interviews, never. I did talk a lot about that website though, and always received very positive feedback about it.

Persist in what you want

I like programming, I wasn’t scared to take risks for it. It was hard, but I made it through.

I like the company where I work at today, I postulated to them 3 times in several years before they noticed me. Had I only sent them my CV once, I wouldn’t be there.

Get feedback from an actual developer

You should definitely get to know more about the development world, because it’s very different from what you may know and you need to get ready for this. Only someone having already worked as a developer can tell you about it. I didn’t and I suffered for it.

And most importantly, don’t get discouraged

We all get discouraged, but the wheel turns and every effort you make will pay up at some point. Having the support of your loved ones can only help !

Hang tight and see you there, it’s an amazing world than the one of (self taught) programmers !

/programming/