Technical Architects
Description
All OpenMRS Architects are intimately involved at the code level and provide direct, detailed, technical mentorship for organizations and contributors throughout the community. Self-driven problem solvers, our community's Technical Architects are willing to work with and learn from contributors from diverse cultures and clearly communicates complex technical concepts to both technical and non-technical audiences. Our Technical Architects bring their knowledge of the healthcare space and particularly the challenges facing EHRs, a deep understanding of Java and the standard Java Servlet stack, Strong familiarity with the Spring & Hibernate frameworks, REST, and some experience working with FHIR.
Responsibilities
All OpenMRS Technical Architects are responsible for the following:
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.:
Is person able to do this issue on their own?
If not, are you prepared to do pair programming on this issue?
If not, is there someone else who can provide mentorship?
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)
Specific Technical Architect Roles
DevOps Architect
Senior Data Engineer