React Tech Lead - Core (future role)
You will lead the development of MUI Core, positioning the library as the industry standard for design teams while doubling its adoption.
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: 6 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. We have gained a large following, thanks to our focus on Material Design fidelity, our obsession with details, on offering a large number of components, our community engagement, and by carefully improving the DX. 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 Figma, Sketch, etc.; 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 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 MUI team and culture, you can check our careers and about pages and also our public Handbook.
Why we're hiring
The core components team (MUI Core) needs help. They are working on 4 products (Material UI, Base UI, 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, increase the contributions by engaging and collaborating with the community, polish all the details, make the components more accessible, guide developers to answers, and just generally be a positive presence in the open-source community.
Both our open-source community and our premium products are growing fast (x2 YoY). We need talented people to keep that going!
Why this is interesting
Our products empower React developers to build awesome applications faster – we see millions of developers on MUI's docs every year, one million a 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. The results of the latest survey can give you a great sense of where we will need to push the open-source library in the coming months.
About the role
What you'll do on a day-to-day basis
You will extend the React Engineer responsibilities. Depending on the day, you'll:
- Lead. You will lead by inspiring and setting the bar for code quality for the engineering team, and cracking the hard problems:
- Guide the approach and execution.
- Guide people in making the right technical decisions themselves over imposing them.
- Be aware of the current technical landscape and knows where the wind blows.
- Nurture community contributions. You will provide guidance and direction to unlock the contributions of the community. Your time will often be way better spent doing this than fixing the problems yourself.
- Shape the product. You will be laser-focused on the end goal. It's not about solving technical challenges but about the problem solved for the users.
- Enable quality work. You will:
- Embody and foster the engineering culture, e.g. rigorousness, push for small single-purpose PRs, encourage peer reviews, create strong feedback loops between decision and outcome.
- Empower the team to aim for high-quality outputs. By doing such it aims for the success of delivered solutions.
- Push for consistency, follow what's going on in the other teams.
- Keep technical debt in check. You will make sure we can keep shipping features at a reasonable pace, align the team on "one way" of doing things and make sure engineers follow the conventions.
- Be a solver. You will dig deep into arbitrarily complex problems and find an appropriate path forward. Some focus on a given area for long periods, others bounce from hotspot to hotspot as guided by organizational leadership.
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, 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 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.
- MUI is a large codebase. You may bang your head against the wall at times, and then write tests to assist future you 😌. 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.
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
- 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.
- 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!
- 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.
What it would be nice if you had, but isn't 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 to MUI before. A history of contributing to MUI would be a definite plus.
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.
How to apply?
Don't tick every bullet? Apply anyway! Research shows that certain folx 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.