Report from my personal experience after a six-months internship at Deezer.
At the end of my first year at Holberton School in San Francisco, my partner and I knew we wanted to go back to Paris. At the same time, I was contacted on LinkedIn by a recruiter at Deezer in Paris, who was looking to fill an intern role. I took my chances, went through the interview process and they chose to keep me for this role. It was going to be my first experience ever as a Software Engineer and I couldn’t be more excited. …
This article is a follow-up from a presentation given at Deezer during the 2020 Covid-19 lockdown. Here are the slides that supported the presentation:
2020 is the year many of us have to learn how to work from home. It’s not always easy to keep focus and stay on track with our day’s work when we work in a different environment than the office, especially our homes. It’s important for everyone to find their own rhythm and create healthy habits, and planning our work efficiently can make us save plenty of time.
Invented by Francesco Cirillo in the 80s, it consists of dividing work in cycles of 25 minutes, separated by 5 minutes breaks. “Pomodoro” means tomato in italian, and the technique is called this way because Cirillo used his tomato-shaped kitchen timer to set a cycle of 25 minutes. …
Software Engineering is often all about automating what can be automated. That’s why we build cron jobs. cron
is a utility that can be found in any Unix-like system, used to schedule tasks and commands that need to be executed repeatedly (i.e. every hour or every day). For example, we often need to make regular calls to an API to update a database with new info, and we don’t really want to have to think about doing it manually every day. A cron job is the perfect format for doing so. …
At the end of the Foundations year at Holberton School, we have three weeks to develop a Portfolio Project. Under certain guidelines, we are allowed to code almost anything we want, in groups of one, two or three people. The aim of this project is to gather all the knowledge we accumulated during the year, and use it to produce a fully developed project. We’ll be able to showcase it in our Portfolio and use it to promote our skills.
I decided to team up with two amazing peers: Drew Maring and Marc Cavigli. We had never worked on a project together before, but we wanted to get the chance to do so before the end of the year. And from that dream team that we just formed, the idea of PuppR was born. PuppR is a dating site for dogs, created for dog owners who want their pups to meet good doggos in their area. It is largely inspired by the famous dating app Tinder, which a lot of people can relate to. We wanted something fun and light but also technically challenging, so we decided to focus on the front-end, since we didn’t do much of it during the year. Our main focuses were: deepening our Javascript knowledge, learn a new web framework (in our case Vue.js), …
Introduction to how the web stack works
We use internet all the time for all sorts of purposes, and it has become like a second nature to browse all day. So much so that we’re most of the time content with just knowing that our browser works and does what it’s asked. But it’s not magic (or is it?), and the web pages we see in that rectangle machine must come from somewhere. So how is it all happening? …
In computer science, a binary tree is an hierarchical data structure formed of nodes linked together. The first node is called the root, and every node can have up to two child nodes — one left and one right.
Alone, their use might seem limited, but when implemented as binary search trees or binary heaps, they offer quick ways of sorting and searching data. They’re also a great learning opportunity, because most functions used to implement them in C can involve recursion, pointer swapping, and other advanced, but fun, programming concepts. Let’s see how to implement them in C.
As mentioned in our introduction, binary trees are defined by a root node and children nodes, each node being able to have at most two children. There are a few keywords that we will need to know before we continue. …
An introduction to the Internet of Things.
IoT stands for “Internet of Things” and is a computer science concept describing the connectivity and networking attributes of things, such as household items and everyday objects. To some extent, “smart houses” and connected devices make our lives easier, but criticism rises around IoT and the cybersecurity and privacy issues it can bring. Let’s try to understand what’s at stake here.
IoT is called this way in opposition to the Internet of People, which designates the Internet we use on our computers, to communicate with other people across the world. Internet is the short for Interconnected Network and uses the Internet Protocol Suite to connect computers and devices together. …
An introduction to Machine Learning and Artificial Intelligence for everybody
People that work or study in Science, Technology, Engineering or Mathematics are often confronted with the same problem: it’s hard for their relatives to understand what they really do in life. Unless of course they studied the same fields. If the terms “Software Engineering”, “Artificial Intelligence” or “Machine Learning” sound like Mandarin to you, or if you happen to be my Mom, this article is for you!
Today, we’re going to talk about a very hot topic and try to vulgarize it: Machine Learning. Machine Learning is a complex mix of Maths, Statistics, Computer Science and Engineering. But no need to be a mathematician or genius mad scientist to understand the general idea behind it. …
Almost everything is an object in Python! In this piece we are going to talk about those objects.
First, what is an object? According to webopedia an object is “a self-contained entity that consists of both data and procedures to manipulate the data”. To draw a parallel with areal-world object, take a coffee machine: it has materials which represent the data (i.e. coffee beans), and it has functionalities which represent the procedures to manipulate the data (i.e. grinding the beans). Variables, class instances, functions, methods, and many other things are objects in Python.
Now let’s dive into the wonders of how the Python language treats everything as an object. …
Until now, we’ve only discussed Linux and C programming questions. Recently at Holberton School, we started learning Python. This programming language, created by Guido Van Rossum and released in 1991, is one of the most popular and used languages today. Amongst the many reasons why developers love it, is the fact that one of its paradigms is OOP. OOP stands for “Object-Oriented Programming”. In OOP, the data is organized and regrouped in objects (or classes in the case of Python), which contain fields, also called attributes, as well as methods, which are similar to functions. …
About