When we name Core Skills we are talking about a set of fundamental technical competencies shared across all teams, whether they are Development teams or Platform teams. It is essential that every professional in the company has at least a foundational understanding and a high-level comprehension of these topics, as they are frequently encountered in daily work.
We have identified a set of training resources which offer an interactive, guided and pre-designed path, based on a getting started approach, that provides insights for further exploration without going too deep.
Acquiring the necessary set of information should take approximately 40 hours, and we strongly suggest anyone (old or new), as well as who want to apply for a technical position to invest a bit in learning them.
Anyway, during the very first days of onboarding, the team leader or buddy will quickly assess the new colleague's confidence level with these topics. They will then jot down a self-training program to be undertaken within the end of the probation period.
For the Team Leader or buddy:
The following sections offer a guided procedure to conduct accessments and create learning plans.
Technical Core Skills
|Command line / Shell||The command line is one of the tools we use extensively to standardize the developer experience and automatically share secrets and settings across all projects.|
|Security||Security starts from our tools and habits. Credentials management, encryption, secure authentication, and other foundamental topics must be clear to everyone, so they can click in place with our practices.|
|Networking||We develop online software and services. Having a clear understanding of the foundational protocols we use every day enables informed decisions and quicker problem-solving.|
|YAML||Yet Another Markup Language, this declarative, structured JSON alternative is easy to read and write for humans and easy to parse and abstract for a machine. These qualities made it almost ubiquitous. It's syntax is very simple but powerful.|
|Git||Git is the industry standard CVS and it's at the base of every project we develop. Git is highly intertwined with our automation, so it's vital to understand how it works, and how the various aspects of the workflow impact our delivery.|
|GitHub Copilot||A context-aware, AI-based tool that helps writing code faster. When used correctly, it allows to optimize repetitive tasks and quickly create prototypes and blueprints.|
|Docker and Docker Compose||Our local stack always includes one or more containers with the services that compose the application, typically reflecting the production architecture. We use Docker alongside the snack-sized orchestrator Docker Compose to automate the management of different local development environments for our projects.|
|Kubernetes||The most famous FOSS container orchestrator, Kubernetes is our preferred infrastructure to manage multi-service applications. You may not be among those who use it daily but grasping the basic concepts is important because - if nothing else - our internal infrastructure is based on it.|
|CI/CD||We work in a regime of Continuous Integration and our delivery is always automated (Continuous whenever possible, depending on the project). We mainly use GitLab and GitHub automation tools, like GitLab CI/CD and Actions, both to be understood in their basics.|