Find out how Integrity has set up its internship program to help interns build skills in demand in the Kansas City market.
"How can we benefit interns most? How can we set them up for future success? How can we leave them better than we found them?"
Questions like these drive the structure and contents of Integrity's internship program.
There are multiple answers to those questions, and one of them is: give them expertise in technical skills that are currently in demand.
Figuring out demand in Kansas City is always interesting because we have to look at what most organizations are doing currently as well as where the industry might be going. For instance, right now there is a lot .NET technology running in Kansas City, so someone entering the market in this region could benefit from learning the Microsoft tech stack.
Preparing interns for this market requires a bit of a balancing act. If we get too far ahead of the curve into the latest and greatest trends, those skills may not be in demand by actual employers for some time. But if we stick with the technologies currently popular in the marketplace, the skillset may go out of date quickly.
In selecting technologies for our interns to work with for the current session of the program, we tried to strike that balance. For Integrity’s Summer 2021 internship program, it looked like this:
Before you get hung up on that first bullet point, know that we know how crazy the React vs. Angular vs. Vue argument can get. But we felt like we could go in any direction with this decision and still equip new developers effectively. The various JS frameworks tend to become more similar over time rather than more differentiated. If you are skilled with one it's relatively easy to pick up the others.
Looking at the three options, we felt React was a good way to go. Angular is not as popular these days, and although Vue seems to be leading in terms of new projects, React occupies that middle ground of steadily growing popularity while still being in widespread use.
One twist we added was using TypeScript with React. This is not an incredibly common thing to do, but gaining familiarity with TypeScript gives our interns a leg up if they need to pick up Angular at some point, and there is some crossover between TypeScript and the .NET server-side technologies we introduced.
Redux was more of a default choice. We wanted our interns to learn unidirectional data flow and app state management, and Redux is basically a default choice for React apps.
Material UI is just one UI library among many we could have chosen. It shows up in several different tech stacks, which makes it useful to learn. But it is also very explicit about its design principles, so you get some UI/UX education when looking into Material.
We used Node primarily for the capabilities of NPM as a package manager. We did not use Node as a server.
On the server-side, we chose to go primarily with a .NET/Microsoft stack. This is still a widespread stack in the Kansas City market and very much in demand.
However, we tried to use fairly recent developments in that stack by sticking with .NET Core and connecting to Azure resources in the Cloud.
This also allows us to focus on good principles like separation of concerns, SOLID, and Domain-Driven Design. Sometimes, when using new technologies, it can be a challenge to figure out good patterns. Often, the entire community around that technology is still trying to figure it out. Staying within the Microsoft stack allows us to dig into those principles without having to figure out what they might need to look like in a newer stack.
These were the choices we made as we developed our intentional internship program this year. While there are many great routes we could have taken, we believe this set of skills will set our interns up for immediate hiring success and provide a solid foundation for learning new technologies as they begin their careers.
What about you? Do you think we made the right choices? What would you have done? Let us know what you think in the comments.