Don't hesitate to do the challenges presented here and tell us: [email protected]!
We're hiring full-remote Front-end Developers experimented with React and Typescript, with an interest in beautiful UIs, able to think as a user (UX), and used to work with backend teams (Scala here).
- Job description to read: Front-End Developer.
- Please read this if you want to apply: How our Application process works?. This is necessary to ensure your application process will be smooth.
Conduktor is a software company centered around Apache Kafka. Apache Kafka is basically a message broker. It has topics containing data. Any application can send data to Apache Kafka, and other applications can "listen" to these incoming data.
- Topics are a way to organize messages in Apache Kafka. Each topic has a name that is unique across the entire Kafka cluster.
- Producers write data to topics, and consumers read data from topics. (it's a Pub/Sub system)
Create a SPA where we can:
- register/login/logout (we provide you an Auth0 sandbox, see below)
- display our identity (name/photo) in the application header (
useAuth0()
usingauth0-react
) - create a topic with a name
- list topics
- click on a topic to consume its data in real-time (data are flowing!)
- You can take a peek at how it works today: https://youtu.be/zB9tsZN8Fbs?list=PLYmXYyXCMsfMMhiKPw4k1FF7KWxOEajsA&t=96
- use a state (react context or redux) to save a locale, and retrieve it in a component (no need to setup i18n libs, we're just validating state usage)
- TypeScript 4.3+ (no JavaScript)
- React v17+, hooks, React-router, manage forms, manage state
- Use GraphQL (either Apollo Client or @tanstack/react-query), that's what we are using for all our products.
- Use the UI library you want
- Our desktop product (list of topics that we can "consume" messages from):
Don't try to reproduce it exactly, it's just to get you an idea of what is a list of topics!
- You can also check this sketch example (feel free to derive or propose a completely different solution)
You can follow the official example. You can create your own Auth0 sandbox OR use this one:
- Domain:
conduktor-coding-challenge.eu.auth0.com
- ClientID:
2BczaMeSZzUhOfRfDOFG5QXcfaXQUjmE
- Callback & Logout URL we've configured:
http://localhost:8000
We provide a nodejs server, see here for the instructions. Introspection is enabled. Routes are not authenticated (to let you explore freely) but we expect the token to be passed in headers
Production mode : use the --flaky mode on the server. It will fail randomly, forcing you to handle errors 🦹 (think UX)
Time estimated: from a few hours to a workday
It's really the "job" at Conduktor, just think that it's your onboarding. :-)
Before submitting your challenge, make sure all the above requirements are okay or find a good reason why it's not and explain what you would do in details.