Open Sourcing Our DevOps Training Platform: Stelligent U
Our onboarding program for new engineers is now open source! Every Stelligent DevOps Automation Engineer for the past several years has gone through this program. We’re very excited to begin sharing it now with the open source community. You can find it here: https://github.com/stelligent/stelligent-u
What is Stelligent U?
The goal of Stelligent U is to prepare all of our engineers for their first engagements as Stelligent consultants through practical, hands-on experience. Any topic or principal presented here is part of our technical knowledge baseline: this is what we consider a Minimum Viable Engineer.
What do we mean by that?
Stelligent is a consulting company and our core expertise is DevOps automation in AWS. Let’s start by applying the phrase “minimum viable engineer” at face value. We’re talking about a software professional with the baseline amount of skill we’re willing to put in front of a client. Let’s unpack that a bit, though. We wanted to establish a number of key characteristics that build towards some core ideas. What are the best components of who we are? How can we ensure that our clients consistently experience excellence? How can we maintain our core ideals over the long term? These questions led us to some essential characteristics we thought we’d build into our program:
- A course of material that can be improved and updated over time. Putting all of our training into a clearly-defined program lets us iterate on it. Ideally, that means we’re always making it better, too. Let’s apply continuous improvement everywhere we can!
- Readily reproducible. Any of our experienced engineers should be able to teach the program. Although not everyone is naturally a good teacher, we’ve found that the same traits and skills make both good teachers and good consultants, and they’re the same qualities that we hire for.
- A consistent onboarding journey. We want to make sure everyone gets the best new-hire experience we can give them, and consistency of delivery is a fundamental part of that. This carries forward into consistency with our clients, as well, and builds a reliable foundation of excellence for the work we provide to companies.
- Reproducing our technical and cultural DNA. If we want to keep our core identity over time, there are some fundamentals we want to ensure everybody has: strength in AWS, skill with common DevOps tooling, and insight into our foundational DevOps principles & techniques.
- A clear technical threshold. As much as we believe in the people we’ve just hired, they’re unproven. Which leads us to…
- A promise of quality to the sales, management, and engineering staff. The program gives individuals a chance to prove to themselves and others that they meet our bar before we ask them to do the same in front of clients.
To get all of that value, we pored over our common technological challenges and sought deep within our engineer hearts to find all the core ideas and skills that meant the most to us. We selected twelve essential AWS technologies that we wanted every one of our engineers to have multifaceted experience with. Nobody leaves our training program before they’ve got their hands dirty with CloudFormation, S3, IAM, VPCs, EC2, Auto Scaling, Load Balancing, CloudWatch Logs, Lambda, KMS, Parameter Store, and CodePipeline. If they’ve done everything, they’ll have diverse experience with each of those, exercising CloudFormation, the awscli, and perhaps the API in each AWS service.
Reducing AWS to a set of essentials is not easy, and we left a lot of important technologies out. We just couldn’t fit it all in, though, and this is what we decided we absolutely couldn’t spare. As it is, the program takes a number of weeks to work through. We’ve continued to add new modules to the initial core dozen. Our engineers come back to them as “continuous learning modules” when they’re ready to learn a new technology.
Graduating from Stelligent U
This hands-on technical curriculum is part of our new engineer onboarding program. Because of that, we apply the notion of “graduating” from Stelligent U. Graduating symbolizes a number of important things to us, and it marks a solid transition point for any new engineer.
At the simplest level, providing a curriculum and asking new hires to complete it gives them a goal. Once it’s completed, our new engineers can mark a valuable moment of success here. We all get to celebrate with them, and we love doing it publicly at our weekly all-hands, “Sharing is Caring”, so that we can all give them some well-deserved kudos for completing the hard work. It’s also a nice feel-good moment that helps reintroduce a new face to the group shortly after they were welcomed on their first week.
Achieving that goal does a few more valuable things. It builds the engineer’s confidence that they can succeed in their new environment. Because it’s something we’ve established as our core technical identity, it also helps them internalize that they really do fit in here. It should work against that little voice behind imposter syndrome. It’s not easy making the transition from internal engineering to consulting engineering, and it can be scary. If you can finish Stelligent U, you’re absolutely qualified to be an engineer here and speak for the company when you talk to clients!
Graduating establishes another important thing: it communicates internally, to the rest of the company, that the engineer is ready to speak for us. The folks on the sales team know with confidence they’ve got another qualified engineer ready to go. The managers know they have a strong performer who can hit the ground running on their projects. The other engineers know the new person will be able to hold up their end if they get teamed up. Honestly, we don’t really even think about it later. We know the people here are qualified — day to day, it’s a safe assumption that our coworkers are going to be awesome.
How we use Stelligent U
Our program isn’t a step by step “how-to”. The modules generally don’t say much on how to accomplish specific tasks; instead they walk you through goals in a sensible order, provide insight on unique challenges, and give pointers to the solutions. They aim to teach you how to learn AWS, constantly encouraging you to use Amazon’s docs directly. Learning from the source of truth is always the best, and with AWS docs, it is certainly a skill unto itself. As the poet Basho once said, “Do not seek to follow in the footsteps of the wise. Seek what they sought.”
At Stelligent, we set aside four weeks for new engineers to onboard and go through the core modules. While we pair new engineers up with a mentor who has gone through the course and is more knowledgeable and experienced with AWS, the majority of the material is gone through by themselves. This course was designed to be complementary to other studies and coursework and to fill a niche we felt was not available elsewhere.
Digging deeper is strongly encouraged. If you want to explore StackSets in the Cloudformation module, cross account role assumptions in the IAM module, or use an API Gateway in conjunction with the Lambda module, please do explore that frontier. We built Stelligent U to focus on learning how to learn, and deeper, unguided exploration is one of the best ways to do so.
Feel Free to Contribute!
If you did dive deeper into any of the modules, please feel free to open a pull request and add what you did to the module. Typically, modules exist in a consistent format:
- Lesson NN.1: Introduction to Topic name
- Principle NN.1
- Practice NN.1
- Lab NN.1.1: Exercise Title
- Question: Question Title
- Lab NN.1.2: Exercise Title
- Question: Another Question
- Lab NN.1.3: Exercise Title
- Lab NN.1.1: Exercise Title
- Retrospective NN.1
- Question: Last Question
- Further Reading
You can find this template in the /templates/NN-topic-name directory in the repository. Any new modules should follow this template, as well as any additional lessons within a module.
If you see an error in a module, such as may happen when AWS updates their products, please open an issue or a pull request.
Implementing Stelligent U
We get enormous satisfaction out of seeing our partners succeed. We would like to see you succeed too. The initialization of Stelligent U in your environment could start simply with a few engineers partner-programming together to complete the modules, then moving into mentorship roles once they graduate. If you’d like to incorporate this into your own enterprise and desire to partner with us to ensure its success, please reach out to our sales team through our Contact Us page.
If you are an engineer looking for work and have “graduated” Stelligent U, please reach out. We are hiring!
Stelligent Amazon Pollycast