MyEffect is a volunteering platform for organizations and individuals. Volunteers track their contributions against the UN Sustainable Development Goals, and organizations track impact across the whole company. I was a full-stack developer across the mobile app, the web app, and the GraphQL backend.

Backend
GraphQL resolvers for shifts, check-ins, and scheduling, with subscriptions driving push to web and mobile.
- Resolvers for checking in and out, requesting or scheduling a shift, and editing profiles
- Subscription resolvers feeding a push notification service for both clients
- JWT access and refresh tokens for authentication and server-side authorization
- Relational data models: requirements, normalization, security review, and production migration plans
Notifications for check-ins and hour contributions are modelled like this:
type NotificationStatus {
id: ID! @id
sender_user_notification: UserNotification!
receiver_group_notification: GroupNotification!
message: String
is_checked: Boolean! @default(value: false)
is_answered: Boolean! @default(value: false)
is_accepted: Boolean! @default(value: false)
}
// Check-in and check-out times of a shift; one level of validation for hours.
type Report {
id: ID! @id
reported_in_by: ID
reported_out_by: ID
check_in: DateTime
check_out: DateTime
}
Mobile and web
React Native and React clients sharing Apollo state, tested with Jest, and moved to TypeScript.
- Standardized state on Apollo GraphQL and reactive variables
- Check-in and check-out navigation on both clients, memoized where it measurably helped
- Unit tests for shift selection, check-in and check-out, and shift requests
- Web: landing page, onboarding, group and action creation, position and shift scheduler, and profile pages
- Rewrote components for accessibility: language selection and font sizing
- Converted the web app to TypeScript, starting from component props and state
Design
Built the design system with our designer in Material UI and took it into the web client.
- Mentored and collaborated with the designer on the component library
- User personas, journey mapping, wireframing, and prototyping
- Reviewed and streamlined the design principles, then implemented the foundational components
Strategy and growth
I wrote the development plan: where the product should go and what to build first.
- Goals tied to the organization's mission, giving development a direction
- A SWOT analysis of the development effort and the team's capabilities
- Feedback loops with mentors and peers, and regular adjustments to the plan
- Deliberate skill development aimed at the goals
Tech stack
Clients
- Expo
- React Native
- React
- TypeScript
- Material UI
Backend
- GraphQL
- Apollo
- Prisma
- PostgreSQL
- Node
- Express
Tooling
- Jest
- Docker
- Figma