Skip to content

jetkvm/engineering-job-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

  JetKVM logo

Engineering Job Challenge

Discord | Website | Docs

Welcome to the Engineering Job Challenge! 🚀

This is a practical exercise designed to give you a feel for the kind of problems we solve at JetKVM. Pick one or more challenges, implement your solution in the relevant repos, and send us your patch sets. Your submission should demonstrate not only that it works, but also clean code, thoughtful design, and a good developer experience.

Important

Deadline for this job challenge is 23 September, 2025 - 23:59 UTC.

How to Participate

  1. Clone the repos you need for the challenge (e.g. kvm, api). Keep private until deadline.
  2. Implement challenges using the pre-defined challenge branch name

Once you're ready with all the challenges you wanted to implement:

  1. Create a patchset for each challenge & repo
git fetch --all --tags
git format-patch \
--base=challenge-base \
challenge-base...<your-challenge-branch> \
-o ~/jetkvm-challenges/<your-challenge-branch>/<repo-name>
  1. Package your work

Zip the whole ~/jetkvm-challenges directory. It should looks something like:

jetkvm-challenges/
  automated-e2e-test-suite/
    kvm/
      0001-add-tests.patch
    api/
      0001-new-endpoint.patch
  h265/
    kvm/
      0001-add-h265-support.patch
  1. Email us the challenges
    • To: jobs [at] jetkvm [dot] com
    • Subject: JetKVM Engineering Job Challenge
    • Body: Anything you’d like us to know about your solution (e.g. notes, assumptions, trade-offs).
    • Attachment: One zip of the jetkvm-challenges directory with all the folders & .patch files in it.

Available Challenges

H.265 Support

Challenge branch name: h265

- Add H.265 support with a settings option for Auto/H.264/H.265
- Migrate Video Settings from React state to `react-hook-form`
Static IPv6

Challenge branch name: static-ipv6

- Add static IPv6 support with a toggle to switch from SLAAC
- Migrate Network Settings from React state to `react-hook-form`
Device Access Sharing

Challenge branch name: access-sharing

- Add support for sharing remote control access via link, with expiration date options
Connection Troubleshooting

Challenge branch name: connection-troubleshooting

- Improve the end-user experience for connection troubleshooting
    - Browser permissions
    - Operating system settings
    - WebSocket connection
    - WebRTC connection
    - Video encoder issues

Please checkout https://github.com/jetkvm/kvm/issues/84 and https://jetkvm.com/docs/getting-started/troubleshooting#loading-video-stream-issue for more details
Automated E2E Test Suite

Challenge branch name: automated-e2e-test-suite

- Add Playwright-based tests to catch regressions in input, video, and connection
    - Verify WebSocket, ICE, WebRTC connection states and fake video track presence
- Ensure common setting changes also retain input, video and connection
- Add GitHub Action to run these tests on every PR
Multi-Session Support

Challenge branch name: multi-session-support

- Allow multiple concurrent connections to the same KVM
- Add control arbitration: define how keyboard/mouse input is handled when multiple sessions are active

FAQ

What to expect after submission

After the deadline on 23 September, 2025 (23:59 UTC), we’ll begin reviewing all submissions. To keep the process fair, we don’t provide feedback before the deadline - this way, every challenge is considered under the same conditions.

Reviews are done by our team, not by an automated system. We look carefully at each submission, paying attention both to the solution itself and to how it was approached.

Once the review is complete, we’ll get back to you directly with the outcome - whether or not you move forward.

Use of AI Tools

You are welcome to use AI tools while working on this challenge. This reflects how we work day-to-day at JetKVM: AI can speed things up, but it’s not a substitute for thoughtful engineering. What matters is that you fully understand the code you submit and could explain it if asked.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published