Backend Architect

Contact Information

Description

About the OpenMRS Backend:

The OpenMRS Platform is a modular, database-agnostic, Java-based application providing the key resources and services needed to support an extensible electronic medical record system. Many different organizations and countries have built solutions on top of this platform, making it very important to provide stability, reliability, security, and a clear upgrade path while working with a worldwide community of developers.

Responsibilities

  • Lay the Groundwork for Others

    • Motivates team members around a direction.

    • Prioritize the work themes and specific tasks. Take user stories and break down into technical tasks that more junior community members can work on

    • Coordinate team members’ efforts - watches for duplication, delegates work based on contributors’ skills and allocates learning experiences.

  • Pro-Actively Coach

    • Mentors promising community members.

    • Excellent PR reviews - uses structured PR review processes to mentor others and synchronous pairing sessions.

    • Pair Programming to help unblock squad/team devs.

    • Clear expectations from junior/mid/senior devs. Clear principles: “When writing code, this is what we’re looking for.” Apply decision making process for how to engage particular people in issues, e.g.:

      1. Is person able to do this issue on their own?

      2. If not, are you prepared to do pair programming on this issue?

      3. If not, is there someone else who can provide mentorship?

      4. If not, reassign ticket to different person.

  • Lead Engineering by example.

    • Actively engineering contributions in modern technology. Get the gritty, tricky stuff done or at least started and stable enough that others can join in. Works alongside the other engineers.

    • Prioritizing. Demonstrated ability to prioritize work, especially amidst multiple competing stakeholders and projects. Addresses or delegate fires. Identifies technical debt and helps prioritize.

  • Forward-thinking Systems Design

    • Tech Stack & Modelling Decisions: proactively anticipates and mitigates engineering risks or inefficiencies. Considers tradeoffs between different software frameworks.

    • Makes decisions & moves forward but doesn’t just say “this seems like the right way”. Understands sustainability & implementer implications of their engineering decisions.

    • Sets standards, guidelines, and oversees their application.

  • Technical Writing: Good demonstration of technical writing - e.g. clear examples of documentation that helps teach others about how a complex framework works, including sample problems to work through.

  • Implementer Support: Technical guidance to organizations implementing OMRS on how they go about doing that. Someone implementation developers can turn to to work through technical issues they have or system design issues they have (e.g., fitting OpenMRS into an existing clinics infrastructure, advice on how to setup integrations with third-party software).

  • Plan to modernize OpenMRS: Need more modern software stack, amidst reality that this needs to work in situations with not highly technical staff who will not understand more complex things.

  • Security: work with security experts on handling custom parts of our application with regard to Security - e.g. Authentication & Authorization is in the application. Consider security issues when reviewing PRs and committing code. Demonstrate security best practices for new code and when refactoring existing code.

  • Integration: Vision for how to integrate vast space in healthcare IT into the EMR - complex data exchange, that data will need to leave or make its way into the EMR. e.g. integrations (Radiology, Pharmacy, HR)

  • Dig through mountains of code and figure out areas of tech debt and legacy complexity