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.
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:
- Get the app running
- Update the Auditor UI to handle more rows
- Can you handle 1000 rows? 100k? 1.5B?
- (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
!
We are evaluating:
- How you handle the rows
- How you constructed your "table"
- Did you handle stats? How?
- 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!
To submit:
-
Clone the repo
git clone https://github.com/questdb/dasher-fe.git cd dasher-fe
-
Create a new branch
git checkout -b my-solution
-
Implement your solution
-
Commit your changes
git add . git commit -m "My solution"
-
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
- This creates a patch file with all changes made since the
-
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
-
Submit your patch
- Email us
my-solution.patch
!
- Email us
- 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! 🚀