Netbox to Netshot: how I used Rust for the first time
I had been coding mostly in Python and Go, and I was looking for a useful, non-critical project to start experimenting with Rust. Here's my experience learning Rust.
Like many other tech companies, Scaleway is growing, and maintaining our values and our culture is a daily challenge. So we built a program to integrate juniors or self-taught profiles into our teams.
Meet the Cloud Builder Launchpad.
This is something that you hear in a lot of startups which are growing fast. Onboarding and training a junior can take time, up to 6 months sometimes. Even for those who want to hire juniors, the energy required to onboard them can be extremely time-consuming.
Why does it take so long?
Our environment requires us to be comfortable with system administration, network, software development, and cloud-native architectures.
For example at Scaleway, even if we work with all the modern tools and in super comfortable conditions, new starters have to get to know nearly 20 teams, their responsibilities, their ways of working. We sometimes have to find ways to move forward while waiting for others but without creating technical debts. We must also do all of this in a post-covid context where the remote is the norm: we are remote by default.
When a team hires because they have too much work, it doesn’t make sense to add to their work by training someone new.
We created the Cloud Builder Launchpad in that context. It’s a four-month program that enables the batch of young graduates to get enough experience to be effective when they join a team.
Of course, engineering knowledge and pragmatism come with years of experience. However, successful onboarding is key in accelerating performance.
Accompanied by a coach for four months, our junior cloud builders learn how to work in agile teams, how to manipulate a backlog, pair and mob programming, public speaking, etc. They discover the cloud ecosystem, communicate with our teams, and follow technical training.
A warm-up before the big match.
On the menu, continuous delivery, TDD, and training on Git and our most used languages: Python and Go. Understanding our company is not just about understanding what you see on the surface, so our cloud builders go to one of our data centers and meet our support team to learn about what goes on behind-the-scenes to understand as much as possible about with whom and for whom they work.
With the evolution from dedicated server to providing cloud products, our engineering teams have grown from around 20 to nearly 200 engineers working on nearly 40 products.
Each time our company has grown has been different, but to achieve this result we have recruited and trained specialized teams: each department needs strong expertise.
We learned that we currently have to rely on a population of engineers with specific expertise, but above all, the desire to be involved in the development of a complete product catalog.
This is the idea behind “cloud builder”: developers are able to change products as needed.
Software development in business cannot just be an individual job. Learning computer science at university might suggest otherwise, but development is a team sport.
The management of technical debt, the “bus factor”. So many concepts that require working as a team in order to be effective.
The Cloud Builder Launchpad is founded upon values of sharing, working together and getting the opportunity to discover the world of cloud computing both individually and and collectively. During the program, although mentored, the junior Scalers are encouraged to make decisions and to constantly challenge and improve the program using the concept of a flipped classroom, they study the subject on their side, and we practice in groups - preferably on the keyboard!
After 4 months of intensive training, our juniors find their teams according to the needs, their appetites, and the experience they have had working alongside other Scalers.
This program isn’t a school or technical bootcamp. It is an immersion in the culture of Scaleway in a constructive and supportive setting that prepares for our context: developing a high-performance cloud in a demanding market.
From the first days in their teams, program participants benefit from:
We measure the learning and skills of our juniors in accordance with the three following principles:
Throughout the four months, junior cloud builders self-assess themselves using a grid including these three points.
The launchpad is open to all new graduates with less than one year of development experience, self-taught applicants are also welcome.
Experience shows us that it is necessary to clarify that we are not a substitute for a university course. If you are motivated by the idea of moving to the other side of the cloud and our values speak to you … then apply now! The Launchpad begins once a quarter, we're waiting for you to join us.
I had been coding mostly in Python and Go, and I was looking for a useful, non-critical project to start experimenting with Rust. Here's my experience learning Rust.