React Engineer - Core
You will strengthen the core components team, e.g. collaborate with the community to land contributions.
Details of the Role
- Location: Remote (preference for UTC-6 to UTC+5).
- Type of work: Full-time (contractor or employee depending on circumstances)
- Start date: Immediately.
- Level: 4 or above.
- We're a remote company, we prefer asynchronous communication over meetings.
- We work independently, the rest of us won't know what you're doing day-to-day unless you tell us.
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 the fidelity to Material Design, but also because of the number of components, its carefully designed component API, obsession for details, and community engagement. Today, countless teams and organizations rely on our open-source libraries 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 the most popular design tools; and also host Templates, a set of pre-built UI kits. We've seen rapid growth with all of them (2-3x per year) and we have more to come.
We are a fully distributed team, spread across multiple timezones. 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 MUI team and culture, you can check our careers and about pages and also our public Handbook.
Why we're hiring
Both our open-source community and our premium products are growing fast (x2-3 YoY). We need talented people to keep that going!
The core components team (MUI Core) needs help. They are working on 4 products (Material UI, MUI Base, Joy UI, and MUI System) with a tiny team.
We also need help to continue to improve the health of the open-source product: make the core components easier to use, engage more with the community, polish all the details, make the components more accessible, guiding developers to answers, and just generally being a positive presence in the open-source community.
About the role
Why this is interesting
Our solution empowers React developers to build awesome applications faster – we see over a million developers on MUI's docs every month. Hundreds of thousands of developers use MUI every month.
The core components are widely used, you will receive a lot of feedback on your work. The community has high expectations, they will push you to do better, every day.
What you'll do on a day-to-day basis
Depending on the day, you'll:
- Help guide architectural decisions. The future of MUI is discussed and planned in our public RFCs and issues. You'll be helping drive these conversations and guiding MUI toward the best possible solutions.
- Contribute to deep, meaningful refactors and feature releases. MUI is a complex codebase. Components we've shipped recently, such as the unstyled components have required months of dedicated, careful work.
- Reduce friction. A large amount of the work at MUI is about reducing friction and making our products easier to use. This might involve careful API design, identifying and fixing top bugs, creating error messages that are easier to understand, and writing documentation and blog posts about features you ship.
- Collaborate with the community. Many small as well as meaningful fixes and features have been contributed by the community. Your role is to draw the best out of the community — to inspire those across the world to create and contribute through your reviews of their issues and pull requests.
- 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, including new components.
- 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 MUI the go-to UI framework for building applications, websites, and design systems with React.
The worst parts of this job
- Shifting context. You will necessarily have to shift context and dive into a different feature before the current one is done. It may even be in an area of the codebase you're unfamiliar with or don't have a ton of understanding about. It's fun and rewarding work, but it can be very challenging.
- 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 compromise on solving each problem 100% in favor of a shorter feedback loop. 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.
- MUI is a large codebase. You may bang your head against the wall at times, and then write tests to assist your future self. 😌 The work you will be doing is somewhat unique and idiosyncratic. You probably have not had a similar role before.
- 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.
About you
We're looking for someone with strong front-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.
Skills you should have
- Expertise in the modern JavaScript ecosystem. MUI is built on the shoulders of giants, making use of technologies such as ES2021, TypeScript, Node.js, React, Next.js, webpack, and Babel.
- A track record of demonstrating an eye for product and solving real-world user problems. If you have a knack for getting to the root of a problem while 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 for 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. You should be equally comfortable asking for and offering help when needed. 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.
- Past work with front-end infrastructure. Perhaps you've created your company's design system, written a Babel plugin, or written complex React components. It would be great if you could address this in your cover letter!
What it would be nice if you had, but isn't required
- You've contributed to a design system before. You have worked on enterprise components in the past, maybe for internal use in your company. You have built complex and advanced features while making sure the accessibility was fully functional.
- 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 to MUI before. We would be thrilled to hire directly from our community contributors.
- You have experience with accessibility. Maybe you've been involved in bringing a11y compliance to your company's design system or application. We would greatly benefit from having someone on the team who could take ownership of this.
Benefits & Compensation
Competitive compensation depending on the profile and location. We are ready to pay top market rates for a person that can clearly exceed the role's expectations. You can find the other perks & benefits on the careers page.