Our Product Support Team: Everyone on our small global Product Support Team are mission-driven self-starters who want to help our open-source community project thrive. The OpenMRS Senior Frontend Engineer is a critical member of this team. We are developers, product managers, and designers working together to support devs and PMs who use our software at their NGO, government, and vendor sites on five continents. The team is led by our Director of Product.
How We Work: We sustain our software project through technical collaboration with many organizations and volunteers. The global Product Support Team helps coordinate this effort. Currently we are creating the next generation of the OpenMRS product: “OpenMRS 3.0” or “O3”, leveraging technical contributors in our community's multi-organizational Frontend Squad. More on the history of O3 here; dev docs here.
Our Frontend Tech Stack: React, TypeScript, Webpack, SWC, REST, Husky, ESLint, Jest, Service Workers, Carbon Design, and Single-SPA.
Must Have Requirements
- Expert React development skills and can explain how React works (e.g. hooks, render/resolution/commit, etc). Typescript and Webpack experience preferred. Experience with CI/CD. Good security awareness.
- Seniority Experience: Has led software development team(s) in a technology company; responsible for mentoring other developers while still contributing. Able to design forward-thinking security-conscious applications, and get team buy-in.
- Communicator and Team-Player: Can clearly communicate complex technical concepts to both technical and non-technical audiences. Good at building camaraderie and consensus on public forums. Demonstrated ability to explain priorities amidst competing goals. Excellent written communication skills (e.g. forum posts and RFCs are helpful). Proficiency in the English language, both written and verbal, sufficient for success in a remote and largely asynchronous work environment. Willing to work across multiple timezones.
- Good Software Development Practices: Well-versed in asynchronous agile development. Proficient with test frameworks and peer code review.
Nice-to-Have Requirements (not required)
- Familiarity with microfrontends architecture.
- Familiar with Webpack Module Federation.
- Some knowledge of Angular is a plus.
- Familiarity with Single-SPA.
- Experience with performance and optimization problems and a demonstrated ability to both diagnose and prevent these.
- Experience working with a global or otherwise multicultural team.
- Relevant sector experience, such as awareness of EMR goals, and challenges specific to healthcare; and/or, experience with an LMIC setting and challenges in low-resource sites.
- Open-source collaborative software development past experience, e.g. contributions to major open source projects.
- Willingness and ability to travel internationally (~10%)
- Frontend Platform Technical Steward (70%)
You will be responsible for leading & collaborating with devs from the community to design the architecture and technical direction of our frontend platform. (Current Frontend core at esm-core.)
- DevX: Make it easy for devs to re-use and contribute. Anticipate engineering risks or inefficiencies. Create intuitive, high-quality abstractions to strategically reduce duplication and make future feature development easier.
- Implementer Experience: build tools that make product configuration easier by non-devs in the field.
- Tech debt & maintenance: Identify & prioritize technical debt. Handle the “twilight zone” of critical work that the community is not incentivized to do (e.g. React, Carbon upgrades). Introduce migrations while minimizing breaking changes.
- Documentation: Improve & maintain docs for frontend development (e.g. the READMEs of major repos, our frontend dev guide, the esm-core API docs). I.d. what else is needed to guide feature developers.
- Lead engineering by example & via relationships: Work alongside community devs but get the gritty, tricky stuff done or at least started/stable enough so others can join in. Build close connections with developers from the NGOs, vendors, and other orgs active in community software development, to understand their needs and task-share or coach them on tasks with community benefit (e.g. from the Frontend Framework or O3 features boards).
- Community Member Coach: Mentor and use PR reviews and pair programming to help unblock squad/team devs. Coordinate team/squad members’ technical efforts; delegate work based on contributors’ skills and allocate learning experiences. Clarify professional expectations for junior/mid/senior devs, e.g. “When writing code, this is what we’re looking for.”
- Support for Organizations Implementing our Software: Technical guidance to organizations implementing OMRS. Be a person who implementation devs can turn to when they have technical or system design issues.
More about this role:
- Full or part-time, contract based position
- Flexible start dates between August and October 2022
- Rates commensurate with experience
How to Apply
Interested? Use our online application form to submit your information, a cover letter, and a CV/resume that addresses the responsibilities and skills outlined above.