back arrowBack to Blog

Life @ Descope

My First Week: Enhancing the Descope DevRel Escape Room

DevRel Escape Room blog thumbnail

As an intern at Descope, my first week was very exciting as I was given a great opportunity to dive straight into my own project: The Descope Escape Room. I had encountered the escape room before as it is an important part of the Descope hiring process for the DevRel team. 

It was a fun challenge that brought an interesting twist to the standard technical challenge that companies in the industry give to potential hires. The point of it was to test if applicants were able to learn to use the basics of the Descope Flows using Descope’s documentation. It tests the ability of the candidate to learn quickly and their persistence when approaching a task. 

However, when I was doing the escape room, there were issues with the site that presented themselves to me and my first task was to solve them. 

To know what the problems were and how I used Descope Flows to fix them, keep on reading!

Escape room v1

Before working on the escape room, the introduction for all participants to the challenge was just a block of text – a plain HTML file whose only purpose was to link people to the next page of the task. Except for this introduction, no other part of the hiring challenge was done on the site itself.

Escape Room before
Fig: The original escape room

Additionally, anyone could access the escape room which would allow people to attempt it before ever beginning the hiring process. The submission process for the escape room was also confusing for applicants. When I was applying to Descope, I was unsure what files or screenshots were needed to show my work with the escape room challenge. I also ran into some issues with sending over my code due to Gmail restrictions. 

My goal was to solve the aforementioned challenges by adding Descope Flows to the DevRel escape room.

Building the challenge

The escape room needed to keep the user authenticated regardless of if they left the page. This meant that the escape room could not be built into the same flow as the authentication one. They would have to be built separately and the right flow would have to be displayed based on whether or not the user was authenticated. 

The auth flow

The first flow would control access to the escape room by adding an authentication layer that only allowed invited users to log in and attempt the escape room challenge.

DevRel Escape Room Auth Flow 1
Fig: Authenticating the user pt.1

At the beginning of the flow, a screen is displayed that prompts the user for their email. If the email has not been invited, they cannot continue. If they have been, it checks if a passkey is already configured and uses that to authenticate if it has been.

DevRel Escape Room Auth Flow 2
Fig: Authenticating the user pt.2

If the user does not have a passkey yet, it allows them to login with a one-time password (OTP) sent to their email. After authenticating, it asks if they would like to enable passkeys to simplify the authentication process in the future.

Using flows, I was able to simplify inviting users and signing them up using multiple authentication methods.

The escape room flow

The next task was putting the escape room process all on one page using a flow. Although the main use case of Descope Flows is for creating authentication processes, they can also be used to create an interactive page for users. 

I wanted the process for participants to be seamless – when they got their answer in the escape room, they should be able to submit directly through the site. This meant recording their final answer, the process they took to reach the answer, and the code that they used to reach it.

DevRel Escape Room Flow 1
Fig: Introduction to the escape room

The first part of this flow is what the entire escape room website used to be. It is a screen introducing the challenge and linking users to the starter code for the escape room.

DevRel Escape Room Flow 2
Fig: Submitting answers to the escape room

The second half of the flow allows users to submit answers. The first screen has input spaces for the user to enter their answers and how they got to it. The next two screens allow the user to upload their code and use HTTP requests to store and send the documents.

Using the flow above, I was able to introduce the screens needed to take in all of the important information from each user’s attempt at the escape room. The flow then packages it all together so that it can be emailed all in one as the solution to the escape room.

The email

When I first tried to add the send email step to the flow, I used the Descope SendGrid Connector to try to email the written answers and the documents together. However, the files sent were .js files, which Gmail blocks regardless of the sender or if the files are zipped. 

Because of this, I needed to find another solution to how candidates could deliver all the content in the files without them being .js files. To solve this problem, I used Descope’s generic HTTP connector to make a POST request with the documents in the payload to deliver the documents to the backend. 

DevRel Escape Room email
Fig: Connector making the POST request

Then at the endpoint, I converted the documents to a .txt file so that they could be sent in the email, and used the SendGrid API to deliver the solution packaged together.

DevRel Escape Room email submission
Fig: Solution email format

With this convenient email format, the answers and code could be reviewed in a simple way to help improve the hiring process.

Escape room v2

Escape room v2
Fig: Updated escape room look

By using Descope Flows and giving the escape room a more user-friendly interface, the issues that I initially encountered when doing the escape room the first time were solved. The updated site now guides candidates through an engaging and secure experience, streamlines the submission process, and ensures that only invited applicants can participate.

Escape room v2 input
Fig: Solution submission
Escape room v2 upload code
Fig: Uploading the code

Learning through experience

Updating the Descope Escape Room gave me a great opportunity to learn more about using flows and also sparked a passion for the work I’ll continue to do throughout my internship here. The challenges I faced while working on the updated escape room pushed me to problem-solve in new ways. It taught me about the startup mentality of innovation and always pushing to overcome obstacles. 

This experience also highlighted the dynamic nature of Descope’s platform. This can be seen through the versatile use of Descope Flows throughout the new escape room. Working on this project has made me more excited about my remaining time at Descope because the company has fostered a culture where ideas flourish and every contribution, even something like improving an escape room hiring challenge, can make a significant impact on its growth and success.