Skip to content

🎉 v5 release candidate is out! Head to the v5 documentation to get started.

Software Engineer Intern

We're looking for a software engineering intern to help support our open-source library, assist the Material-UI community, and help us build new components.

Details of the Role

  • Location: Remote (preference for UTC-5 to UTC+4).
  • Type of work: Full-time internship.
  • Start date: Flexible.
  • 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.
  • We expect the internship to be at least two months long.

About Us

See the careers and about us pages.

Why we're hiring

We have recently grown the engineering teams with senior members. It's time to give a chance for a new talented junior engineer to join us for an internship!

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 enrich it with new components. 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.

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

About the role

What you'll do on a day-to-day basis

Depending on the day, you'll:

  • Help build new componentes. We have several new components we would like to build as part of the core library.
  • 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.
  • Collaborate with the community. Many small but 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.

The best parts of this job

  • You'll be at the cutting edge of UI library 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 really excited about building awesome applications.
  • Your work will be visible as being part of one of the most popular open source project.

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 will be doing is somewhat unique and idiosyncratic.
  • 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 front-end skills or someone who has a passion and is eager to learn more in this area. 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

  • Experience in the modern JavaScript ecosystem. Material-UI is built on the shoulders of giants, making use of technologies such as ES2015+, TypeScript, Node.js, React, Next.js, webpack, and Babel.
  • 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.
  • Eagerness 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.
  • Past work with frontend infrastructure. Perhaps you've had a school project using 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 an active repository before. Maybe you've made a contribution to a popular open-source repo, or perhaps you've worked on your own open-source project.
  • You have contributed code to Material-UI before. A history of contributing to Material-UI would be a definite plus.
  • A record of demonstrating an eye for design. If you have a knack for shipping beautiful user interfaces and intuitive APIs, we want you on our team.

Compensation

You will receive a compensation for the time you spend on your internship. You will be eligable also to some of the other perks & benefits in the careers page.

Apply

Apply for this position 📮