Skip to content

An exercise for front-end skill assessment

License

Notifications You must be signed in to change notification settings

questdb/dasher-fe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuestDB front-end work sample

Hey!

Thanks for your interest in joining the team.

The following is designed to take about 2-4 hours.

Or "one solid working block".

There is no deadline.

However, we do have lots of folks applying, so keep that in mind!

Time is of the essence.

The task

This exercise is designed to mirror a realistic dev scenario.

There is a NextJS app with a base page, an API, and a view.

The view is located at localhost:3000/audit.

Your mission:

  1. Get the app running
  2. Update the Auditor UI to handle more rows
  • Can you handle 1000 rows? 100k? 1.5B?
  1. (Stretch goal) Generate stats using row data
  • Hint: QuestDB queries

1000 rows is no problem, but after 100k things get dicey.

The DOM will explode, and it looks like our table won't cut it.

How can we improve this?

The API, view, and whatever else is yours to edit.

Direct real-time queries at the live QuestDB demo instance.

Be mindful of performance, efficiency, and failure when the queries returns a large data set!

Look for @TODO!

Evaluation

We are evaluating:

  1. How you handle the rows
  2. How you constructed your "table"
  3. Did you handle stats? How?
  4. How you package the PR

There is also an optional THOUGHTS.md page.

As you go, feel free to write any interesting thoughts.

If you got stuck (especially in the 1.5b case) you can indicate how you would have solved it with more time.

If you have any questions, please reach out to us!

Submission

To submit:

  1. Clone the repo

    git clone https://github.com/questdb/dasher-fe.git
    cd dasher-fe
  2. Create a new branch

    git checkout -b my-solution
  3. Implement your solution

  4. Commit your changes

    git add .
    git commit -m "My solution"
  5. Generate a patch file

    git format-patch main --stdout > my-solution.patch
    • This creates a patch file with all changes made since the main branch.
    • Alternatively, if you want to submit only your last commit:
      git format-patch -1 HEAD --stdout > my-solution.patch
  6. Compress the patch file

    To avoid issues with odd characters, please compress the file from a command-line environment:

    Using zip:

    zip my-solution.zip my-solution.patch

    Using tar:

    tar -czvf my-solution.tar.gz my-solution.patch
  7. Submit your patch

    • Email us my-solution.patch!

⚠️ Important Notes

  • Please do not push your solution to a public repository
  • Ensure your patch file includes only necessary changes
  • Compression ensures we do not have any weird issues applying it
  • Avoid opening the patch file in a text editor, as this may alter the contents

Good luck! 🚀