Zach Christensen
projects
July 2025school

Quick Cash

An Android marketplace for small local jobs, built by a six-person team across three iterations of a real Agile process. I led the team.

A prototype board showing the employee screen flow on the left and the employer flow on the right, with red arrows marking every tap.

The prototype both roles were built from: employee flow on the left, employer on the right, mapped tap by tap before anyone wrote a screen.

1 / 4

Quick Cash is an Android app for finding small paid work nearby: mowing a lawn, walking a dog, fixing a computer. Every user is either an employer or an employee, never both at once, and the two roles get separate journeys through the app. Employers post jobs with a location, salary and category. Employees see what is near them on a map, search and filter it, apply with a short cover letter, and get paid through the app once the work is approved.

Six of us built it over three iterations for CSCI 3130 at Dalhousie in summer 2025, working to a written client brief. I led the team.

The part that made it a software engineering course rather than a programming one is that the process was the deliverable. Every iteration started with user stories, which became acceptance criteria, which became engineering tasks small enough to estimate by planning poker. Everything landed on a GitLab issue board, burned down against a chart that made it obvious when we were behind, and ended in a retrospective about what went wrong. We were graded on that as much as on the app.

What we used

Java on the Android SDK, with Firebase behind it for authentication, the database, and push notifications. Google Maps and the location provider for detecting where a user is and plotting jobs around them. The PayPal SDK for payments. JUnit for unit tests, Espresso and UI Automator for the interface, running on every push through a GitLab CI pipeline that linted, built and tested before anything merged. SonarLint sat on top of it flagging what we had written badly.

What I did

I led the team, and the coordination turned out to be the harder half of the job. Six people, three of them working in Mandarin, all writing into the same Android project on separate branches. I ran the branch and merge process, wrote up the deadlines and task breakdowns, chased the pieces that were blocking other pieces, and did a lot of merge conflict resolution in the last week of each iteration.

We had a real language barrier on the team, and it got worse as the codebase got more complicated: the same task would be understood three different ways. Setting up a second Discord channel that carried every announcement in Mandarin alongside the English was the single most useful thing I did on the project, and it is not a technical contribution at all.

On the code, I owned the payment flow end to end. That meant wrapping the PayPal SDK in a reusable helper, gating payment behind the employer actually approving the completed job, and writing the paid status back to the database. The interesting part was that the SDK's API is bound to an Android activity and therefore almost impossible to test, so I pulled the validation logic out into a plain class with no framework in it and tested that properly instead. I also built the location detection and map view, the multi-step password reset, and a chunk of the test suite.

Zach took the initiative to coordinate his group's efforts. He created a Discord channel for communication and established a separate channel that provided messages in Mandarin to assist three group members with limited English proficiency. This thoughtful approach helped bridge a language barrier that could have otherwise impeded their progress. He was a proactive leader who kept the team on track by notifying them of deadlines, clarifying tasks, and organizing out-of-lab meetings. Zach's ability to take on a leadership role, manage complex group dynamics, and make significant contributions to the team's output makes him a valuable asset.
Mehil Shah, CS PhD candidate, Dalhousie · RA at RAISE Lab
Teaching assistant for the course, managed Zach directly · August 2025

What I took from it

What it left me with: Java, Android SDK, Firebase (authentication, realtime database, push notifications), Google Maps and location services, PayPal SDK integration, JUnit, Espresso and UI Automator testing, Git and GitLab CI, static analysis with SonarLint, and Agile in practice: planning poker, user stories and acceptance criteria, burndown charts, retrospectives, and leading a team through all of it.

Built with Nathan Dsouza, Andrei, Xueqian, Yizhou Chen, and Deyang.