React Engineer — xCharts

Posted:
9/13/2024, 3:40:53 AM

Location(s):
Paris, Ile-de-France, France ⋅ Ile-de-France, France

Experience Level(s):
Junior ⋅ Mid Level ⋅ Senior

Field(s):
Software Engineering

Workplace Type:
Remote

You will help form the xCharts team, build ambitious and complex new features, work on strategic problems, and help grow adoption.

Details of the Role

  • Location: Remote (strong 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.

The company

MUI's story began in 2014 with Material UI, the most successful React implementation of Google's Material Design. Today, Material UI stands as one of the most popular open-source libraries on GitHub and has paved the way for the fully-fledged startup known as MUI (founded in 2019), which now boasts an ever-expanding ecosystem of React UI products. We're a company of 31+ people as of late 2023, and we're growing.

The products

MUI is best known for our flagship product, Material UI—but this is just one of three core component libraries we maintain. Base UI is our headless component library, and Joy UI is a sister library to Material UI that implements our own in-house Joy Design system. We also host Design Kits and pre-built Templates.

Beyond the core libraries, MUI X offers advanced components like the Data Grid, Date and Time Pickers, and Charts, for more complex user interactions and data visualization needs.

We're also making ambitious moves to incorporate our full suite of components into Toolpad, a low-code admin builder tool for assembling full-stack apps faster than ever.

Learn more about MUI's products in this blog post: An introduction to the MUI ecosystem.


The culture

MUI is a fully remote company with a team that spans the globe. The majority of our work is asynchronous, and we rely on written communication to collaborate. We're radically transparent: nearly all of our work happens in public. Each contributor has the freedom to decide how and when they work, and that work is primarily self-directed: it's your responsibility to define and complete your own tasks in a timely manner.

For additional details about the culture, you can check our careers and about pages and also our public Handbook.


Why we're hiring

The charts team (part of MUI X) needs your help. The component is off to a great start, however we have only started to scratch the surface for the potential of this component. There is x10 more to build.

To be more specific in what we are aiming to achieve in the short to mid-term:

  • A tighter integration with the rest of the MUI libraries including Material UI and MUI X Data Grid

  • Faster iteration cycles compared to popular open-source alternatives such as chart.js and Recharts

This should allow us to reach 30% of the downloads of alternative React charting libraries, considering benchmark data in the short term. Developers value having a single touch point, but also one they trust, and one that integrates well into the rest of their application.

In the mid-term, we aspired for this charting library to become a standard in the React ecosystem, outgrowing Material UI or any other UI library. We believe we can achieve this with an open-core model. We will at least match the features available in the alternative open-source projects, licensed as MIT in MUI X Charts. We will then provide extra paid features so developers can use a single charting library, without the need to juggle with paid alternatives as they do today.

In the long term, we envision using the pro-code charting API as a distribution channel for building more abstract charting primitives, using low-code and AI.

Overall 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

The advanced components portfolio is still small, with a million interesting and challenging problems to solve.

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 role

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 data grid and date pickers have required months of dedicated, careful work.

  • Reduce friction. A large amount of the work on MUI 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 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 solution 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 has 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.



Who we're looking for

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.


Required

  • Expertise in the modern JavaScript ecosystem. MUI's open-source projects are 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 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.

  • Experience or interest in drawing technologies. Charts use SVG and canvas which implies using other API than HTML/CSS. Hope you know them or enjoy discovering new documentation.

  • 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!

Nice to have (but not required)

  • You've experience with charts. You have contributed to building chart libraries, integrated charts in a design system, or contributed to chart intensive applications. You have built complex and advanced features while making sure the accessibility was fully functional.

  • 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. 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 that can clearly exceed the role's expectations. You can find the other perks & benefits on the careers page.