Hackernoon logoMy last 4 years: from zero knowledge to software developer by@samteb

My last 4 years: from zero knowledge to software developer

image
Samuel Teboul Hacker Noon profile picture

@samtebSamuel Teboul

Today, I decided to switch from reader to writer — by sharing with you, the community. It’s already been some times that I get my daily dose of reading: new technologies, web development, data science, AI, machine learning, etc… Yes I am definitely a passionate!

How it all began…

Seven years ago, as a recent Parisian MSc graduate in applied Mathematics and Actuarial Science, I joined a large international insurance company as a junior actuary. Great experience but, two years in the job, and I needed a change: I was up for a new learning/life experience. And just because “Why not?” I also decided it was a good time to move to a new country: Israel.

Here I am, a new Israeli immigrant, taking intensive classes, five hours a day learning Hebrew. With my afternoon offs, it seemed I had all the time in the world… (after all, I had just quit my full time office job) and needed to decide how to make the best of it ?

Web development! This had been in my head for a while, got initiated to code during some graduate school classes and I have always wanted to know how to build a website from scratch. It just made sense.

A few google searches later, I connected onto Codecademy and registered to my first courses: HTML & CSS. At this point, after serious one-on-God conversation asking for guidance, I met to a friend party who I can call today my mentor. Let’s call him Jo. Jo is originally from France and has been living in Israel for height years. He was a recent graduate in computer science and was just launching his high-tech startup. A few chats later, and he is already giving me his opinion on what I should read and learn next. I had another four months to go of Hebrew classes. Jo makes a deal with me. He offers me to come working in his new startup as a junior developer, first six months as an intern, unpaid — I will be mostly learning, and they are still looking for funding, but this is the life of an artist, right? This offer was holding provided that I will successfully complete these 3 online courses: HTML, CSS and JavaScript.

High on motivation, my day is about listening, integrating, reading, memorizing… Hebrew in the morning and coding in the afternoon.

Keep working hard!

Keep working hard! It will all be worth it!

First day as a junior developer, I am so proudly taking out my notebook, scribbling down as quick as possible my to-do list from Jo, my new boss. Next months are all about video courses on Udemy:

  1. Deeper understanding of JavaScript
  2. Front end development with AngularJS
  3. Back end development with NodeJS

Smoke out of my ears after long days at work. But hanging in there, and almost weirdly enjoying every part of it.

A few months later, the company succeeded to raise money and I finally got hired as a full stack developer. From that point on, I got more responsibilities on the core product and was able to apply what I had been learning for the last six months. Day after day, I was excited to dive deeper into the real world of engineering and high tech ecosystem.

As a surprise to all of us, Jo took the decision to leave the company for personal reasons. I tried to convince him to stay: he was my mentor and as the CTO, a pillar to our small company. In full honesty, Jo’s departure put a big strain on the team. We needed him! I strongly believe that everything in life happens for a good reason, so I decided: no mourning, I will have to view this sad event as a positive challenging experience instead.

Reflecting on this today, I can see how Jo’s departure ended up being such a great opportunity for me. I had become the only technical employee with all the product development process falling on me. I quickly realized I had taken a bad habit of asking Jo directly for help when I couldn’t successfully accomplish one task.

I can tell you, dear reader, that through this experience I have acquired skills that I believe essential to every developer:

  • Online investigation: tracking down this information you need to complete the feature you working on, or to debug your code.
  • Communication: reaching out to the community, participating in meetups, etc…
  • Curiosity & constant self-learning: I subscribed to many newsletters about web technologies, such as Sitepoint and Scotch.io. These included access to tutorials, articles, courses — the best source for learning material. I also signed up for a specialization on Coursera — given by the Hong Kong University — with a focus on the MEAN stack. I highly recommend it, very complete and well explained. I completed this course in 5 months and even got a raise on my salary!

If you are a beginner in your developer career, my advice for you: push yourself hard, and resolve problems on your own. I remember this one time I stayed stuck on one bug for almost three days. I ended up finding the solution on my own, and trust me I will never forget the trick!

Long story short, I worked at this startup as the technical lead for almost two years and gained very valuable experience. I led many pilots including one for a big French company, that ended up being very successful. I was in charge of hiring and managing the developer interns. I also contributed to a company important milestone: integrating Docker to our product. This was a really challenging task to implement due to the lack of available online documentation, but I managed to complete it successfully. After these 2 years, I decided to resign from this job, as I felt my experience was done, and was ready for my next challenge.

Job interviews

Job interviews

I spent one month in France, to visit my family and friends. I needed the break, to recharge my batteries and take a step back on what will be my next move. I returned to Israel, full of energy, and started to (only) apply for full stack developer positions. I didn’t want to be limited to only front-end or back-end responsibilities into my next job. I still had too much to learn and too many skills to improve in the developer responsibilities spectrum. So, the following weeks were driven by job interviews.

The whole interview process was a real challenge for me, I had never been to a proper interview in Israel before, especially with the language barrier — Hebrew — that I was still learning and still quite a beginner. Remember, Joachim has “hired” me around a beer at our friend diner party. The first interviews were a total disaster. Mainly, because of two things:

  1. The language: I wanted to show to my interviewers that I understood and spoke the local language but, when it was about technical questions, I quickly switched to English. My technical vocabulary in Hebrew was still very limited. I also tried to make a mix of Hebrew/English, which was not very successful.
  2. Basic knowledge of JavaScript: I was unable to answer basic questions such as What are closures in JS?, What is hoisting in JS ? or What is prototype chain in JS ?. That was my first big knock in my developer career. I soon realized that I had learnt and absorbed this knowledge so unconventionally quickly that I had missed some of the basics. OK, I did knew how to build a web application from scratch using JS frameworks but I still lacked conceptual understanding.

I needed to dive deeper into JavaScript and get a better understanding of this computer language. To achieve it, I took a new video course on Udemy Advanced JavaScript and, signed up for the second time to the course: Deeper understanding of JavaScript. Retaking this class was extremely helpful: I used the notes I had taken when attending this course the first time, and was able to complete them & catch on more details during this second round.I was much more focused, and realized a lot of the knowledge I seemed to be lacking was actually taught in this class, I had just missed a lot of it in my first round. I also figured out that some of the JavaScript understanding gaps happened because I had only practiced JavaScript through Angular, and never really used Vanilla JavaScript.

Enjoy the fruits of your labor

After one month and a half of intensive research, and many interviews conducted, I landed my new job at a cyber security startup, as a full stack developer. The company was composed of 30 employees. I was going to be part of a team of 5 developers and work with AngularJS — NodeJS — MongoDB stack. My job consisted of building end-to-end features on the product. I was to work closely with different teams following the below workflow:

  1. Product team: write feature specifications
  2. Web designers team: design web pages related to the feature
  3. Full stack developers team (my team): give life to all the designs and feature functionality
  4. QA team: detect bugs and check that the product specifications are respected
  5. The feature is live in production, visible by the customer

Today, as I am writing these lines, I have been working at this job for the past 2 years and have gained such valuable experience. I was first in line witnessing my company incredible fast grow: open branches and sale offices in US, Europe and Asia, acquiring 160+ customers all over the world — including billions dollars worth companies. We grew from 30 to 100+ employees and moved to new office space twice. People often ask me “Are you satisfied working at your job ?” My reply is always “I am very happy there, not only because I work with an incredibly professional, smart and friendly team, developing and selling a solid product that satisfies our customers. But also because, on a personal level, I have grown tremendously as a professional and proudly feel part of the success of the company.”

Jump to my next challenges

Next challenge(s)

This is my story! If someone had told me five years earlier what I will have achieved in a few years time, I would have never believed it: moving to Israel and learning Hebrew, switching careers, discovering the tech ecosystem world and meeting amazing new people. What an extraordinary experience!

In this first article, I tried to give you the most accurate context regarding my full stack developer career. This was in order for you to better understand the project I am going to work on for the next following months. And you will be part of it, dear reader.

It has been four years that I am working on the same stack, 45 hours a week, and continuously improving my skills on it. However, being curious and wanting to broaden my skills, I conducted a research to understand which technologies are currently being used by tech companies. I then decided to start learning VueJS on Udemy with Maximilian Schwarzmüller.

As Joseph Joubert — famous French 18th century essayist — wrote: “To teach is to learn twice”. That is what I intend to do by sharing with you what I am learning in an article.

I am about to embark on my next journey!

Follow me on Twitter.

Tags

Join Hacker Noon

Create your free account to unlock your custom reading experience.