Product Snippets: Building Technology with Impact

With our four year anniversary coming up, it is time to reflect on the tech stack that enables us to build with our users in mind.

One of the first questions we ask ourselves when starting a new software project is what technology will we build our product on. There are a vast array of technologies to consider, some established and proven, others promising to be the next big thing. The choices we make can have drastic consequences further down the road. 

With the four year anniversary of the very first commit for our career orientation application, Skillmap, approaching in June 2022, it is time to reflect on some of the choices we made long before we officially founded SkillLab, evaluate where we are today and take a look into how our technology stack will evolve in the future.

Your first choices (usually) matter

There are a few generally accepted rules of technology choice. These center around active support, development and future promise, access to talent, project size and scalability and most importantly what your user experience goals are. 

We knew early on that user experience was going to be a key success factor for our product. Our first MVP was built around a solidly established Ruby-on-Rails backend. We experimented with different frontend technologies until we had gathered enough data and user research to make a choice: Building a progressive web application (PWA) using React.js

Crucially, we learned that our users came from all kinds of different backgrounds, used a vast array of devices and often needed assistance to make the most of our app. It became apparent that serving a diverse user community, our technology had to support diverse use cases and stay nimble across all possible platforms. Today, these fundamentals are as true as ever and certain advantages of building native applications have disappeared.

You can experiment, if your foundation is solid

We believe that software should never be static. Nothing lasts forever. The technologies of today will not be the technologies of tomorrow. This means that every software engineering team is faced with the task of constantly staying up-to-date with innovation and most crucially, trying out and experimenting with new technologies.

We build our experiments around the paradigm that a solid base enables flexibility and experimentation. New parts of our platform may be built on new technologies. We may eventually decide to integrate these technologies into our core stack. 

For example, we built our publicly facing website using Next.js and are using GraphQL for a new service that feeds live job data into our application. Most crucially though, we monitored the adoption of Typescript very closely, built a number of modules in our platform on it, and eventually decided to move all of our remaining javascript code over to it. 

Our technology stack, today

We know that our current stack will not be our stack tomorrow. More important than the choices we made in the past is that we have an experienced team that can shape the choices of tomorrow. So we like to ask the question “How do you manage the adoption of new technology?” rather than “What is your technology today?” and turn this static snapshot into an evolving discussion.

→ To see our tech stack in action, schedule a demo

Our current tech stack