Staff Engineer - Pigment CSS
Job Description
Research, build, document, and help ship a next-gen zero-runtime CSS-in-JS library with a focus on performance and great developer experience.
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: 5 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 Pigment CSS is a zero-runtime CSS-in-JS styling engine. 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
We believe CSS-in-JS is the best styling API with the best developer experience for writing CSS. We've used it in Material UI since v1 (back then, with JSS, and currently with Emotion in v5). However, there are key challenges we need to overcome to keep using this stack: improving performance and compatibility with React 19 features, including React Server Components. That's why, about a year ago, we started to work on Pigment CSS! We recently released an early alpha version, introduced at React Conf 2024, for which we're seeing early positive adoption and some community validation.
This is just the beginning, though. There's so much to do to make Pigment CSS a reliable and mature option for the future of Material UI and for many developers looking for a next-generation CSS-in-JS styling engine. We're well-positioned to make this happen, so we're looking for a talented engineer to join the team and help us get further beyond!
The role
Key responsibilities
- Build. You will help Pigment CSS mature by integrating it with various bundlers and frameworks, building new features, and improving DX.
- Nurture community contributions. You will provide guidance and direction to unlock the contributions of the community.
- Influence the product strategy. You will be empowered to help design and shape a roadmap that solves real developer problems.
- Keep technical debt in check. You will ensure we can keep shipping features at a reasonable pace while aligning the team on "the right way" of doing things.
- 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 CSS-in-JS libraries on the market.
- You'll be part of an active, open, friendly community of developers who are excited about building awesome applications.
- Your role will be key to making MUI's libraries the go-to UI solutions for building applications, websites, and design systems that do not have to trade performance for a great developer experience.
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 solving each problem 100% in exchange for fast feedback. Solving 50-70% of the issue is often enough. Our users quickly tell us when we haven't pushed it far enough.
- MUI has large codebases. 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 core JavaScript 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. You'll use technologies such as TypeScript, Node.js, Babel, Rust, or SWC. We'd appreciate it if you've already written a Babel plugin or something similar.
- A track record of solving real-world user problems. If you have a knack for solving problems at the root cause and shipping beautiful user interfaces with intuitive APIs, we want you on our team.
- Strong written and verbal communication skills. As part of the team, you'll interface directly and indirectly with community members and enterprise customers, as well as contribute to internal and external documentation.
- Ability to dive into complex problems. You should be able to quickly assess, understand, and iterate upon aspects of our codebase.
- Willingness to ask and answer questions. You're comfortable saying you're unsure and asking for help. You'll also reach out out to assist others. We thrive through continuous learning—first-time mistakes are celebrated, not blamed.
- Leadership skills. You will guide and mentor contributors, steering the community in the right direction.
Nice to have (but not required)
- You've maintained an active repository before, regardless of whether it was open-source or private, that saw contributions from multiple teams.
- You've contributed to a CSS-in-JS library in the past.
Benefits and compensation
Competitive compensation depending on the profile and location. We are ready to pay top market rates for a person who can clearly exceed the role's expectations. You can find the other perks & benefits on the careers page.
How to apply
Don't meet every requirement? Apply anyway! Research shows that certain folks 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.
More job openings
Senior Contract Recruiter
Are you a skilled recruiter with high volume experience in the fintech industry? Are you looking for a challenging and dynamic contract role that allows you to work flexibly for 6 months? Look no further!
Tasks
Our fintech client, is seeking a Senior Contract Recruiter in Europe to join their team during a time of change and growth. As the company continues to expand and evolve, our client needs a talented and driven individual to assist in finding the best candidates for all open positions.
As a Contract Recruiter, you will play a crucial role in identifying, attracting, and hiring top talent for our client. Your responsibilities will include sourcing and screening candidates, conducting interviews and working closely with hiring managers to understand their needs and develop effective solutions to meet those needs.
Requirements
To be successful in this role, you must have a deep understanding of the fintech industry and its talent landscape. You should be a sourcing expert and able to creatively utilise various recruitment methods with a limited budget, including online job boards, LinkedIn Sales Navigator and social media.
Strong communication and interpersonal skills are a must, as you will be interacting on all levels with international candidates, hiring managers, and other HR team members on a daily basis.
With our client undergoing a period of change, we need someone who is adaptable, resilient, and able to work in a fast-paced environment!
Your ability to multitask and prioritise will be critical in managing a high volume of recruitment activities.
Benefits
This is a contract position for approximately 6 months, located in European timezone.
If you are a results-driven and adaptable Contract Recruiter (Sales/Business or Technical) with a passion for finding top talent, we would love to hear from you.
Please answer these questions in the 'cover letter' field on the application form:
- Have you previously worked in the UK or collaborated with British-based teams?
- Are you currently working remotely or from home?
- Have you had any experience working as an independent contractor in the past?
What’s a Rich Text element?
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
What’s a Rich Text element?
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
Customer Success Specialist
The ideal candidate will have impeccable relational skills and can create win/win environments for all parties that he or she works with.This candidate will be responsible for providing an excellent customer service experience and help customers achieve their desired goals.
Responsibilities
Operational follow-up:
- Manage students' requests, including lesson/package operation, complaints, etc
- Manage and monitor students' actions and public reviews
- Ensure the transmission of policy launch-out to the concerned service
- Assist with quality assurance, seeking to identify & solve bug or technical-related issues
- Proactively problem-solve with the Product Ops, Product, Tech and Marketing teams
Community Moderation:
- Moderate community contents, including discussions, notebook, etc
- Deal with the user complaints reported in community
- Nurture the italki community and support users via email, community, italki message, etc
Management & Coordination :
- Day to day management and response to students' emails
- Diagnosis of the existing student support across departments
- Identify best practices to improve procedural guides and keep them updated according
to new actions (new releases, system update, new policy etc.)
Mobile Support:
- Reply the reviews in all the app stores, including App Store, Google Play Store, Tencent, Huawei, 360 etc
- Analyze the feedback from the reviews to help improve the iOS and Android app.
Regional Operation Support:
- Customer support for China team, including but not limited to WeChat support, live chat, etc
- Customer support for other regional team if needed
Requirements
- Bachelor Degree, English Major or equivalent practical experience
- 0-2 years online and offline customer facing experiences
- Strong interpersonal skills and multicultural awareness
- Strong communication and reporting ability, and able to clearly summarize and report the operation status of a policy announcement based
- Results-orientation, faculty-centric, Inspire dedication, strong ownership
- Highly organized with attention to details
- Highly adaptable to cross-functional environment
- Excellence in presentation, spoken and written skills in English
Plus
- Passion for languages with language skills in addition to required English
- Experience in a customer service environment preferred
- Experience in high tech, software development, education technology industries
- Experience in growing and scaling company growth or start up team experience
- Experience in companies with global / regional presence with multiple offices across different countries
What’s a Rich Text element?
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
What’s a Rich Text element?
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
Integration Engineer
Join a fast-growing, open-source dev-tool startup with repeat founders and Y Combinator backing:
At Nango (YC W23), we have developed an open-source platform dedicated to product integrations. It's a developer tool crafted by engineers, for engineers, seamlessly connecting software solutions.
We are searching for an integrations engineer who is keen on profoundly impacting other developers' lives.
By joining us, you will also be stepping into a well-funded, seed-stage startup environment.
Learn more about jobs at Nango, our team, and what we shipped lately.
Location
Remote across the Americas & EMEA.
What You’ll Do
- Develop new integrations and maintain existing ones.
- Collaborate tightly with the product team to improve Nango.
- Work directly with customers.
Requirements
- Strong ownership & work ethic
- Strong organizational skills to track and fulfill customer requests
- Excellent English and clear communication skills
- Coding velocity & ability to multi-task to meet customer deadlines
- Ability to write high-quality code: readable, structured, documented, reliable, memory-efficient & performant
- 1+ years of experience in professional backend engineering
- Proficiency in Node.js and Typescript.
Interview process
- A single 40-minute coding interview
What’s a Rich Text element?
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
What’s a Rich Text element?
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
UIUX Designer
Responsibilities
- Rapidly design, prototype and develop elegant solutions focused on helping users integrate into the community.
- Gather insights from data and qualitative research, develop hypotheses, sketch solutions with prototypes, and test ideas with our data team and in experiments.
- Think about universal designs that can scale not just across platforms but also internationally and across user types.
- Document detailed interaction models and UI specifications.
- Collaborate with other designers to maintain design consistency and coherence across the features on italki’s apps and website.
Requirements
- Education background in ergonomics, psychology, industrial design, visual communication design or related design
- A minimum of 5 years’ proven experience in mobile Internet community or social products, knowledge payment or related industries
- Understand the design methods and trends of platform and mobile products
- In the user experience design principles, design methods and processes have a deep understanding, broad vision and high aesthetic standards
- Good logical thinking, innovative ability, pay attention to the industry design trends, familiar with the current interactive form and user operation mode. Have strong data thinking and logical ability
- Excellence in presentation, spoken and written skills in English
Skills
A/B Testing · User Experience (UX) · User Experience Design (UED) · User Interface Design · Critical Thinking · English · Mobile Internet · Systems Design
What’s a Rich Text element?
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
What’s a Rich Text element?
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.