Initializing portfolio

Roy.

Product · systems · impact

Roy
Selected work

Case study · Aug–Dec 2024

EcoLife

I helped lead and build parallel Android and iOS experiences that turn everyday activity into carbon estimates, progress visualizations and sustainability-focused interactions.

EcoLife mobile interface summarizing carbon emissions by category

Overview

Product context and challenge

EcoLife was created for EcoEspacio Digital to make sustainability guidance more personal and actionable on mobile devices.

The product combines a category-based carbon calculator, local emission history, daily challenges, sustainable-place discovery and Cleany Roads, an educational recycling game. Android and iOS were implemented as separate native applications following the same product direction.

Core challenge

The team had 10 weeks to move from product definition to two working native applications. Planning, client communication and scope control were essential because every major workflow had to be represented on both platforms.

The technical challenge was keeping habit records, calculations and charts coherent between Android and iOS while still using each platform's native interface and persistence tools.

Role

My scope within the team

I worked as Product Manager and Full-Stack Developer in a four-person team. My personal work included product design, local data, habit registration, charting on Android and iOS, the complete EcoLife visual identity and support for the mobile game.

  • Coordinate a 10-week delivery plan and client checkpoints
  • Design the product mockups and complete EcoLife visual identity
  • Implement local SQLite data structures
  • Build habit registration on both Android and iOS
  • Implement carbon-result charts on both platforms
  • Document product progress and delivered workflows
  • Support development of the Cleany Roads game
  • Align the main product behavior across two native codebases

The Android and iOS applications prepared for release were team outcomes. The product, data, habit, visualization, identity and game-support responsibilities above describe my personal scope.

Architecture

How the product layers connected

Both native applications follow the same product flow while keeping implementation, navigation and local persistence within their respective platform ecosystems.
  1. Native interfaces

    Kotlin and Jetpack Compose on Android; Swift and UIKit on iOS.

  2. Activity inputs

    Transport, energy, food and waste actions provide category-specific values.

  3. Local calculations

    Configured emission factors transform recorded activity into educational estimates.

  4. SQLite history

    On-device records support totals, charts, challenges, streaks and game progress.

Workflow

Turning daily habits into visible progress

The primary product loop connects an activity entered by the user with a stored estimate and feedback that can influence the next habit.

Choose a category

Start with transport, energy, food or waste and select the relevant activity.

Record the habit

Enter quantity or duration and validate the category-specific information.

Calculate and persist

Apply the configured factor and store the resulting estimate locally in SQLite.

Reflect and continue

Review category totals and charts, then use recommendations, challenges or the game.

Contribution

Work completed across the stack

Product leadership

  • Managed scope within a 10-week delivery window
  • Maintained progress documentation and client communication
  • Aligned requirements across Android and iOS

Data and habits

  • Built local SQLite structures
  • Implemented habit registration on both platforms
  • Connected recorded activity with carbon-estimate history

Visualization

  • Created category summaries and total-emission views
  • Implemented charting on Android and iOS
  • Presented historical performance inside the calculator flow

Experience and game

  • Designed EcoLife's visual identity
  • Created product mockups and interface direction
  • Supported the Cleany Roads interactive game

Decisions

Keeping core sustainability tools available on-device

Build natively for each platform

Android and iOS use their own interface frameworks while sharing product requirements and visual direction.

Use SQLite for local progress

Habits, estimates, streaks and game state remain available without requiring a cloud account or constant connection.

Organize calculations by activity category

Transport, energy, food and waste keep their own inputs and factors before results are aggregated for analysis.

Combine tracking with repeatable interactions

Challenges, streaks, recommendations and the game extend the experience beyond a one-time calculator result.

Deep dive

Two native codebases delivered in a 10-week window

Constraint

The team had 10 weeks to complete the planned mobile product for Android and iOS.

Approach

Frequent client meetings, flexible planning and shared product requirements kept both implementations aligned.

Result

The team prepared both applications for release, although neither was published to an app store.

01

Carbon tracking

Category inputs, local calculations, history and charts form the central product loop.

02

Habit engagement

Recommendations, daily challenges and streaks encourage repeated use and reflection.

03

Cleany Roads

The mobile game reinforces recycling concepts through collection, obstacles, energy and scoring.

Outcome

What shipped—and what remains unproven

External validation

Performance recommendation

March 2026

Myrna Morales Márquez · General Director, Eco Espacio

Eco Espacio confirmed my active participation in the mobile project and highlighted my attention to detail, proactivity, creativity, leadership and ability to apply new knowledge to the delivered prototype.

Read the redacted recommendation letter

Delivered

  • Native Android application prepared for release
  • Native iOS application prepared for release
  • Habit registration and carbon-estimate history
  • Category summaries and charts on both platforms
  • Sustainable challenges and place discovery
  • Interactive recycling game

Limitations

  • The applications were prepared for release but were not published to Google Play or the App Store.
  • No verified adoption or user-outcome metrics are claimed for the delivered product.
  • Game performance on lower-end devices and dynamic nearby-place discovery would require additional production work.

Lessons

  • Shared product behavior does not require identical implementation when native platform patterns improve the experience.
  • A tight delivery window makes scope, client communication and explicit ownership as important as the code itself.

Evidence

Selected product evidence

EcoLife carbon-footprint view with transport, energy, food and waste totals

Carbon-footprint overview

The calculator brings category estimates into one view before presenting their historical analysis.

Full resolution
EcoLife transport activity selection and value entry

Activity registration

Full resolution

Users choose one or more transport activities and enter the values required for the estimate.

EcoLife emissions analytics with total comparison and daily bar chart

Emissions analytics

Full resolution

Daily totals and category values are aggregated into an understandable visual summary.

EcoLife home screen with sustainability recommendations, active challenge and streak

Challenges and streaks

Full resolution

The home screen turns environmental guidance into a repeatable challenge and progress loop.

EcoLife sustainable-place directory with business cards and schedules

Sustainable places

Full resolution

Curated place cards provide names, reference locations, schedules and visual context.

EcoLife Cleany Roads recycling game on a mobile device

Cleany Roads

Full resolution

The educational game adds waste collection, obstacles, lives and scoring to the sustainability experience.

Attribution

Team work, clearly attributed

EcoLife was completed by a four-person team for EcoEspacio Digital. Product imagery is shown with permission. Mockups, source code, private databases, client assets and internal documentation are excluded.