Both our open source products and community, and our premium products are growing fast and we need talented engineers to keep that going!
We need help to continue to improve the health of Material-UI open source: make the library easier to use, make it support more use cases, improve performance, make it more accessible, and make it easier to customize to support in-house design systems. We also need help keeping up with the community, guiding developers to answers, and just generally being a positive presence in the open source community.
We also need to develop our premium content. We have a store, and soon an enterprise offering, starting with the data grid. Enterprise features will build on the open source version of the components.
Why this is interesting
Our solution is empowering React developers to build awesome applications. It should be easy, it shouldn’t require any advanced technical skills. Hundreds of thousands of developers use Material-UI every month. Let’s reach the full potential :D!
Our premium products portfolio is still small, with a million interesting and challenging problems to solve.
What you’ll do on a day-to-day basis
Depending on the day, you’ll:
On the open source side:
- Help guide architectural decisions. From modernizing the way we handle styles to building new components, the future of Material-UI is discussed and planned in our public RFCs and issues. You’ll be helping drive these conversations and guiding Material-UI toward the best possible solutions.
- Contribute to deep, meaningful refactors and feature releases. Material-UI is a complex codebase. Components we’ve shipped recently, such as the Tree View, Autocomplete, and Slider have required weeks of dedicated, careful work.
- Reduce friction. A large amount of the work on Material-UI is reducing friction and making it easier to use. This might involve careful API design, identifying and fixing top bugs, creating easier to understand error messages, 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 as a core team maintainer 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 our customers on a regular basis, handling inbound support and feature requests (every developer helps with support).
Experience you should have
- A track record of demonstrating an eye for design and solving real world user problems. If you have a knack for shipping beautiful, intuitive software, 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 frontend 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!
Experience 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 usage 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 repo, or perhaps you’ve worked on internal repos that saw contributions from multiple teams. Previous experience with highly active repo workflows is a definite plus for this role.
- You have used Material-UI before. You have built a non trivial application with Material-UI in the past. You know the limitations of the library, you know a few areas that could be improved.
- You have contributed code to Material-UI before. A history of contributing to Material-UI would be a definite plus.
The best parts of this job
- You’ll be at the cutting edge of application development — working on one of the fastest-growing UI frameworks on the market.
- You’ll be part of an active, open, friendly community of developers that are really excited about building awesome applications.
- Your role will be key to making Material-UI the go to UI framework for building applications 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 code base 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.
- Material-UI 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 would 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 of when to ignore something and when to dig in further.
Benefits for you
- Competitive compensation of up to $120k/year, depending on the profile. Could go higher in the case of an extraordinary match.
- Flexible workplace & hours.