Skip to content

Latest commit

 

History

History
96 lines (80 loc) · 5.6 KB

MVE.md

File metadata and controls

96 lines (80 loc) · 5.6 KB

Stelligent's Minimum Viable Engineer

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. We can expand on that, 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:

  1. 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!

  2. 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.

  3. 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.

  4. 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.

  5. A clear technical threshold. As much as we believe in the people we’ve just hired, they’re unproven. Which leads us to...

  6. 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.