Full-stack Engineer — Toolpad (future role)
You will join the Toolpad team, to explore the role of MUI in the low code space and help bring the early prototype to a usable product.
Details of the role
- Location: Remote (preference for UTC-6 to UTC+5).
- Type of work: Full-time (contractor or employee depending on circumstances).
- Level: IC4 or above.
- We're a remote company, we prefer asynchronous communication over meetings.
About the company
MUI started with Material UI, the most successful React implementation of Google's Material Design. It has gained a large following, not only due to its fidelity to Material Design, but also because of the number of components, its carefully designed component API, its obsession with details, and community engagement. Today, countless teams and organizations rely on our open-source projects to build their design system.
A couple of years ago, we started to expand our suite of products. We released MUI X, a collection of advanced components; MUI Design kits, the MUI components available for Figma, Sketch, etc.; and also host Templates, a set of pre-built UI kits. We've seen rapid growth with all of them (2x per year) and we have more to come. We are building a low-code platform for developers to significantly increase the speed and lower the barrier for creating simple CRUD/dashboard UIs with MUI's libraries.
We are a fully distributed team, spread across multiple time zones. We work mainly asynchronously, relying mostly on written collaboration. Every contributor has the freedom to define how they work — the rest of us won't know what you're doing day-to-day unless you tell us. For additional details about the culture, you can check our careers and about pages and also our public Handbook.
Why we're hiring
Our mission is to empower as many people as possible to build great UIs, faster. The faster and simpler it is, and the broader the audience that can create custom UIs, the better. We believe that the best way to improve on these dimensions is to eliminate 80% of the code that has to be written.
We're in the early stages of exploring what our role could be in the currently emerging low-code space. We've assembled a team to work on a new product and plan to bring it to market in 2022. We have made our initial research and need help to accelerate the development of our MVP.
Overall, both our open-source community and our premium products are growing fast (x2 YoY). We need talented people to keep that going!
The role
Why this is interesting
The Toolpad application offers a wide variety of engineering challenges. Including
- In-browser sandboxing and manipulation of live web applications
- Drag & drop visual editor
- Realtime collaborative editing
- Interfacing with many different types of backends
- Databinding and complex state management
What you'll do on a day-to-day basis
Depending on the day, you'll:
- Help guide architectural decisions. You'll join us in defining and refining the initial product and also help bring the conversation public as the MVP grows. You'll also interface with other teams at MUI as you'll be building on top of their work.
- Contribute to implementing new features. MUI is a complex codebase. It's built on top of cutting-edge web technologies to build the low-code tool for the future.
- Reduce friction. A large amount of the work on Toolpad is reducing friction and making it easier to use. As our MVP grows, our focus will shift from "making it work" towards "making it easy to work with".
- Collaborate with the community. Toolpad will be open-sourced. As the community grows you'll act as a lead to steer it towards success. This includes reviewing issues, pull requests and questions, and guiding aspiring contributors to make meaningful contributions.
- Experiment and play. Great, unexpected features and heisenbug fixes have come from a number of sources — relentlessly methodical processes of elimination, free-flowing team collaboration, inspiration by adjacent libraries and projects, and difficult-to-explain individual strokes of brilliance. Whatever your preferred style is for creating new things that others might not have thought of, you'll find a welcome home on the team.
- Take ownership of features from idea/mockup to live deployment. You'll shape and guide the direction of crucial new features.
- Ship. Early and often. You'll iterate and ship frequently. You'll have a real impact on the end-user experience and you'll love working on a team that builds stunning UIs and prioritizes delivering real user value as often as possible.
- You'll be interacting with the users on a regular basis, handling inbound support and feature requests (every developer helps with developer requests).
The best parts of this job
- You'll be at the cutting edge of application development — working on one of the fastest-growing UI libraries on the market.
- You'll be part of an active, open, friendly community of developers that are excited about building awesome applications.
- Your role will be key to making Toolpad the go-to low code tool for internal application building.
The worst parts of this job
- We move quickly but don't sacrifice quality. We ship early, often, and quickly. You may not be initially comfortable with the cadence with which we ship high-quality features and improvements to end-users. By doing so, we sacrifice on solving each problem 100% in exchange for fast feedback. Solving 50-70% of the issue with quality should be enough for any given iteration. Our users quickly tell us when we haven't pushed a solution far enough.
- In open-source, you're faced with a nonstop stream of bug reports and support requests. That means you need to develop an intuition for when to ignore something, and when to dig in further.
- As The product is in very early stages of development, expect to enter an environment with incomplete and quickly changing requirements.
Who we're looking for
We're looking for someone with both strong front-end and back-end skills. More important than specific technical skills though is that you're a strong problem solver who loves to learn. Details matter to you.
Required
- Expertise in the modern JavaScript ecosystem. Toolpad is built on the shoulders of giants, making use of technologies such as ES2021, TypeScript, Node.js, React, Next.js, Webpack, and Babel.
- Expertise in backend development. Toolpad interfaces with multiple databases, both SQL and NoSQL, as well as APIs such as REST and GraphQL. You'll need to be comfortable in learning and integrating new backend technologies fast. You'll need to have a good understanding of distributed systems and some knowledge of CRDTs is a plus.
- A track record of demonstrating an eye for product and solving real-world user problems. If you have a knack for solving problems at the root cause, shipping beautiful user interfaces and intuitive APIs, we want you on our team.
- Experience building and shipping production code in a team setting with a passion for writing tested, performant, and high-quality code.
- Strong written and verbal communication skills. As part of the team, you'll interface both directly and indirectly with community members and enterprise customers, and contribute to user documentation. Clear communication is fundamental in creating intuitive and compelling resources.
- Ability to dive into complex problems. You should be able to quickly assess, understand, and iterate upon aspects of our codebase.
- Ready and willing to ask and answer questions. If you're comfortable saying you're unsure, asking for help; but equally reaching out to assist others, you'll be an incredible addition to our team. We thrive because of continuous learning. First-time mistakes should be celebrated, not blamed.
- Avoid monolithic deliverables. You scope and stage your work into well-defined milestones to ship.
Nice to have (but not required)
- You've maintained an active repository before. Maybe you've helped maintain a popular open-source repository, or perhaps you've worked on internal repositories that saw contributions from multiple teams. Previous experience with highly active repository workflows is a definite plus for this role.
- You have contributed code. A history of contributing to MUI's open-source projects is a plus.
Benefits and compensation
Competitive compensation depending on the profile and location. We are ready to pay top market rates for a person who can clearly exceed the role's expectations. You can find the other perks & benefits on the careers page.
How to apply
What happens next?
We start by screening applications, looking for candidates that showcase the desired skills and experience. If your application stands out, we'll contact you for a get-to-know conversation, where we'll meet each other.
If that goes well, you'll be invited to up to four additional conversations, those being:
- A technical challenge.
- A chat with one of the product managers or engineers that you will work closely with.
- A chat with one of MUI's founders.
- A possible follow-up chat if we missed addressing anything relevant in the previous conversations.
All these conversations will be 1:1 and over video chat. Please ask as many questions as you wish throughout the whole process, it's a two-way discussion. If you happen to need additional conversations as well, feel free to ask; we'll be happy to schedule them. Lastly, please note that we're unable to offer individual feedback during the initial screening process, as we're a small team and don't have the bandwidth to do so.
We look forward to hearing from you! ☺️
Don't meet every requirement? Apply anyway! Research shows that certain folks are less likely to apply for a role than others unless they meet 100% of the outlined qualifications. If this role excites you, we want to hear from you. We'd love for you to share the unique skills, passion, and experience you could bring to MUI.