Mercy Corps is powered by the belief that a better world is possible. To do this, we know our teams do their best work when they are diverse, and every team member feels that they belong. We welcome diverse backgrounds, perspectives, and skills so that we can be stronger and have long term impact.The MicroMentor Team
MicroMentor is an initiative of Mercy Corps and functions much like a technology start-up. Through a proprietary online mentoring platform, MicroMentor provides a technology solution that connects small business owners and entrepreneurs with skilled volunteer business mentors on a global scale. In addition to managing the general community of users, MicroMentor provides a niche product offering to corporations, international NGOs and government entities as a program-implementing partner.
The Position
As a member of MicroMentorโs web services development team, the Senior Software Engineer will collaborate in maintaining and further evolving and expanding MicroMentor's multi-target mentoring platform, both in the front- and backend. The ideal candidate brings deep experience in serving online communities on web and mobile, and offers direction and tutelage to our younger software developers, while driving the teamโs velocity with best-practice aware, test-driven, and peer-reviewed coding. This is very much a hands-on, take action and lead by example role. While collaborating with internal and external stakeholders to understand the product vision, its mission and, eventually, feature requirements, the major majority of the day will usually go to developing code and reviewing PRs.
MicroMentorโs technology stack includes primarily Node.js Express based server applications with MongoDB data storage, plus a Flutter based multi target, mobile-first frontend. This role requires deep experience with all key components in the backend: Scalable server applications, sysops, data aggregation, analytics and, to some degree, integration with a business intelligence solution. Secondly, experience with frontend applications, both web and mobile, are essential for this position. MicroMentor does not require extensive experience with native mobile application development, but having built hybrid mobile applications, such as with Flutter, React Native, Ionics or Cordova will be very helpful to hit the ground running.
Essential ResponsibilitiesSOFTWARE DEVELOPMENT
- Write clean, readable code for new and existing features
- Supplement feature development with unit and integration tests
- Anticipate edge cases and side effects of changes to the system
- Participate in code reviews
- Write technical documentation
- Read design documentation and solicit clarifications
- Create proofs-of-concept or prototypes, especially for situations where documentation is ambiguous or incomplete
- Report and diagnose defects and issues that may arise
- Help triage issues for product maintenancePRODUCT DEVELOPMENT
- Help designers and other team members identify minimally viable feature sets
- Participate in estimation and scoping exercises
- Participate in brainstorms or other design meetings
- Help designers discover edge cases where development is problematic
- Help optimize product and project management processesDATA DEVELOPMENT โ Data aggregationโ Data analyticsโ Integration with a business intelligence solutionREQUIRED MEETINGS
- Weekly sprint planning
- Weekly product status check-ins
Supervisory ResponsibilityNone
AccountabilityReports Directly To: Director of Technology, MicroMentorWorks Directly With: MicroMentor Product Development Team
Accountability to Participants and StakeholdersMercy Corps team members are expected to support all efforts toward accountability, specifically to our program participants, community partners, other stakeholders, and to international standards guiding international relief and development work. We are committed to actively engaging communities as equal partners in the design, monitoring, and evaluation of our field projects.
Minimum Qualifications & Transferable Skills
- BA/BS degree and 5+ years of relevant industry experience (degree in computer science or related field preferred but not required)
- 5+ years experience architecting and implementing robust, scalable, distributed server applications that are cloud hosted. โ Expert level JavaScript/Node.js, TypeScript โ Experience integrating server applications with third-party services, such as Twilio, Survey Monkey, etc.โ Experience aggregating business data for analytics and BI solutionsโ Experience generating analytics reports and integrating a BI solution (good to have)โ Experience building SaaS solution (good to have)โ Some competency with sysops tasks (CI, containerization, serverless hosting, autoscalingโฆโ Experience developing web applicationsโ Experience building hybrid cross-platform mobile applications (i.e. using Flutter (preferred), React Native, Ionics, Cordova, etc.)
- Experience with both web and mobile application development
- Experience working in a distributed/cloud-based environment to build highly scalable applications (AWS, Google Cloud, etc.)
- Experience with API development (RESTful, GraphQL)
- Experience with development of large-scale software projects
- Experience with SQL or NoSQL database technologies โ Experience writing unit tests and integration tests.โ Experience with internationalization technologies, including translations, right-to-left text, serving an international audience (good to have)
Success FactorsA successful candidate will be able to communicate clearly using a variety of approaches and be fluent in English. They can read and interpret software design documentation and solicit clarifications for documentation. They can make and demonstrate prototypes for features with ambiguous or incomplete documentation. They can read and write technical documentation and articulate ideas to both technical and non-technical audiences. They learn quickly and adapt. Finally, they can relate to people with different backgrounds and have awareness and sensitivity to multicultural international development work.
Living Conditions / Environmental ConditionsThe position will be based out of Portland, Oregon or can be conducted remotely, while being available during US Pacific Time zone core working hours, and in particular during the daily team meeting in the morning hours. If the candidate is based in Portland, they can work onsite at the Mercy Corps Portland Office (not mandatory). Travel may be required for annual planning meetings in Portland HQ.
Ongoing LearningIn support of our belief that learning organizations are more effective, efficient and relevant to the communities we serve, we empower all team members to dedicate 5% of their time to learning activities that further their personal and/or professional growth and development
Diversity, Equity & InclusionAchieving our mission begins with how we build our team and work together. Through our commitment to enriching our organization with people of different origins, beliefs, backgrounds, and ways of thinking, we are better able to leverage the collective power of our teams and solve the worldโs most complex challenges. We strive for a culture of trust and respect, where everyone contributes their perspectives and authentic selves, reaches their potential as individuals and teams, and collaborates to do the best work of their lives.We recognize that diversity and inclusion is a journey, and we are committed to learning, listening and evolving to become more diverse, equitable and inclusive than we are today.Equal Employment OpportunityMercy Corps is an equal opportunity employer that does not tolerate discrimination on any basis. We actively seek out diverse backgrounds, perspectives, and skills so that we can be collectively stronger and have sustained global impact.We are committed to providing an environment of respect and psychological safety where equal employment opportunities are available to all. We do not engage in or tolerate discrimination on the basis of race, color, gender identity, gender expression, religion, age, sexual orientation, national or ethnic origin, disability (including HIV/AIDS status), marital status, military veteran status or any other protected group in the locations where we work.
Safeguarding & EthicsMercy Corps is committed to ensuring that all individuals we come into contact with through our work, whether team members, community members, program participants or others, are treated with respect and dignity. We are committed to the core principles regarding prevention of sexual exploitation and abuse laid out by the UN Secretary General and IASC and have signed on to the