Reformat all projects

This commit is contained in:
2026-08-08 22:07:30 -04:00
parent 1a44d4acf6
commit 4256b03948
9 changed files with 93 additions and 29 deletions

View File

@@ -4,13 +4,21 @@ title: CMES Mobile App
![cmes-mobile-app.png](../assets/project/cmes-mobile-app.png "Screenshots of the CMES app, showing the My Library screen and a web view.") ![cmes-mobile-app.png](../assets/project/cmes-mobile-app.png "Screenshots of the CMES app, showing the My Library screen and a web view.")
**App development project for volunteer organization Techies Without Borders.** I helped implement the CMES mobile app, facilitating the download, viewing and playback of medical education content in resource-constrained countries. **App development project for volunteer organization Techies Without Borders.**
I helped implement the CMES mobile app, facilitating the download, viewing and
playback of medical education content in resource-constrained countries.
In the early stages, I built the download screen and business logic, the PDF viewer integration, and background audio playback using native code. Later, I built the native web view to integrate with the [CMES-Pi](https://cmesworld.org/cmes_product-Pi.html) solution, simplifying the business logic while adding support for future edge platforms. In the early stages, I built the download screen and business logic, the PDF
viewer integration, and background audio playback using native code. Later, I
built the native web view to integrate with
the [CMES-Pi](https://cmesworld.org/cmes_product-Pi.html) solution, simplifying
the business logic while adding support for future edge platforms.
The app's front-end uses Capacitor and Angular, with several Capacitor plugins in Swift + Java to bundle native functionality. The app's front-end uses Capacitor and Angular, with several Capacitor plugins
in Swift + Java to bundle native functionality.
This app is actively used in medical facilities in Uganda and Nepal, to name a few. This app is actively used in medical facilities in Uganda and Nepal, to name a
few.
- [App Store](https://apps.apple.com/us/app/cmes/id1276335909) - [App Store](https://apps.apple.com/us/app/cmes/id1276335909)
- [Google Play](https://play.google.com/store/apps/details?id=org.cmesworld.www.cmes_piandroid_app) - [Google Play](https://play.google.com/store/apps/details?id=org.cmesworld.www.cmes_piandroid_app)

View File

@@ -5,9 +5,15 @@ isIndexPage: 1
permalink: / permalink: /
--- ---
I'm Brendan, a recently graduated Software Engineering student who attended Chapman University. I'm currently an associate software engineer at Cargill. I'm also the creator of [OpenAppLock](https://github.com/brendan-ch/OpenAppLock), an open-source time blocker for iOS, and [Interchange](https://interchange.bchen.dev), a free shuttle app for Chapman students. I'm Brendan, a recently graduated Software Engineering student who attended
Chapman University. I'm currently an associate software engineer at Cargill. I'm
also the creator of [OpenAppLock](https://github.com/brendan-ch/OpenAppLock), an
open-source time blocker for iOS,
and [Interchange](https://interchange.bchen.dev), a free shuttle app for Chapman
students.
I believe that no matter which path an app's development takes, it should be grounded in real experiences. I believe that no matter which path an app's development takes, it should be
grounded in real experiences.
Feel free to [say hi](mailto:brendan@bchen.dev)! Feel free to [say hi](mailto:brendan@bchen.dev)!

View File

@@ -4,13 +4,23 @@ title: Power to the People
![power-to-the-people.png](../assets/project/power-to-the-people.png "Screenshots of Power to the People, an iOS app designed to make traffic stops safer.") ![power-to-the-people.png](../assets/project/power-to-the-people.png "Screenshots of Power to the People, an iOS app designed to make traffic stops safer.")
**An iPhone app designed to make traffic stops safer for marginalized communities.** Record interactions with police, assign and text emergency contacts, and be informed of your rights. I worked in a student team of 4, including [David Sohn](https://www.linkedin.com/in/sohn-david/), [Jacob Zamore](https://www.linkedin.com/in/jacob-zamore/), and [Patrick Smith](https://www.linkedin.com/in/patrick-smith-ld/), to prototype and build a proof of concept in 36 hours. The app was selected for the **President's Pick award** at [CruzHacks 2024](https://cruzhacks.com/), the premier hackathon of UC Santa Cruz. **An iPhone app designed to make traffic stops safer for marginalized
communities.** Record interactions with police, assign and text emergency
contacts, and be informed of your rights. I worked in a student team of 4,
including [David Sohn](https://www.linkedin.com/in/sohn-david/), [Jacob Zamore](https://www.linkedin.com/in/jacob-zamore/),
and [Patrick Smith](https://www.linkedin.com/in/patrick-smith-ld/), to prototype
and build a proof of concept in 36 hours. The app was selected for the *
*President's Pick award** at [CruzHacks 2024](https://cruzhacks.com/), the
premier hackathon of UC Santa Cruz.
- [GitHub](https://github.com/brendan-ch/PowerToThePeople) - [GitHub](https://github.com/brendan-ch/PowerToThePeople)
- [Devpost](https://devpost.com/software/power-to-the-people-lbhxyd) - [Devpost](https://devpost.com/software/power-to-the-people-lbhxyd)
My contribution was the iOS app prototype, of which a demo is shown below. I
My contribution was the iOS app prototype, of which a demo is shown below. I built the primary user flow of recording a police interaction, simultaneously using the front and back iPhone cameras to capture all angles. Activating the recording also displays the "Know Your Rights" screen, displaying basic dos and don'ts. Finally, I built a way to view previous recordings and share the files using the iOS share sheet. built the primary user flow of recording a police interaction, simultaneously
using the front and back iPhone cameras to capture all angles. Activating the
recording also displays the "Know Your Rights" screen, displaying basic dos and
don'ts. Finally, I built a way to view previous recordings and share the files
using the iOS share sheet.
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/Un8JWXkpcW4?si=CfQ0qOuUjSpas0ny&amp;start=89" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/Un8JWXkpcW4?si=CfQ0qOuUjSpas0ny&amp;start=89" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

View File

@@ -23,17 +23,22 @@ title: Projects
- [[teech.ai]] - [[teech.ai]]
- Cal Hacks 12.0 - Cal Hacks 12.0
- A tutoring app to make education more accessible, built with SwiftUI and Gemini Vision API. - A tutoring app to make education more accessible, built with SwiftUI and
Gemini Vision API.
- [[Power to the People]] - [[Power to the People]]
- **President's Pick**, CruzHacks 2024 - **President's Pick**, CruzHacks 2024
- An iOS app designed to make traffic stops safer for marginalized communities. - An iOS app designed to make traffic stops safer for marginalized
communities.
## Work ## Work
- [[The Farmer's Dog Trivia Game]] - [[The Farmer's Dog Trivia Game]]
- A Windows kiosk application designed to connect customers with the Farmer's Dog experience. - A Windows kiosk application designed to connect customers with the
Farmer's Dog experience.
## Community ## Community
- [[CMES Mobile App]] - [[CMES Mobile App]]
- One of my earliest projects. A cross-platform mobile app to deliver educational medical content to end users, part of [Techies Without Borders](https://techieswithoutborders.us/). - One of my earliest projects. A cross-platform mobile app to deliver
educational medical content to end users, part
of [Techies Without Borders](https://techieswithoutborders.us/).

View File

@@ -4,16 +4,37 @@ title: Resonance
![resonance-screenshot.png](../assets/project/resonance-screenshot.png "Screenshot of Resonance") ![resonance-screenshot.png](../assets/project/resonance-screenshot.png "Screenshot of Resonance")
Resonance is a cyberpunk-themed game show shooter. Enter the arena, blast your opponents, and become the star of the show. I worked with a student team of 12 to create this game over multiple months. The game was selected as an **IEEE GameSig finalist**. Resonance is a cyberpunk-themed game show shooter. Enter the arena, blast your
opponents, and become the star of the show. I worked with a student team of 12
to create this game over multiple months. The game was selected as an **IEEE
GameSig finalist**.
*Steam link coming soon!* *Steam link coming soon!*
My core role was to implement the game's networking logic using PurrNet, an open-source library for Unity. My core role was to implement the game's networking logic using PurrNet, an
open-source library for Unity.
My first project was to implement networking for **Arena**, a free-for-all PVP game mode, where the player with the most eliminations wins. I learned how to isolate game logic on the server and synchronize state on each client. The networked API for Arena is used by every aspect of the game, including the scoreboard UI and spotlight mechanic. Following a pivot in the games core direction, I successfully handed this system to another engineer, who implemented a rating system for style points. My first project was to implement networking for **Arena**, a free-for-all PVP
game mode, where the player with the most eliminations wins. I learned how to
isolate game logic on the server and synchronize state on each client. The
networked API for Arena is used by every aspect of the game, including the
scoreboard UI and spotlight mechanic. Following a pivot in the games core
direction, I successfully handed this system to another engineer, who
implemented a rating system for style points.
Another project was the **build system**. Having a server dependency and Steam integration meant that the environment differed from development to production. We found it painful to prepare a build for each class-mandated playtest. With the help of Claude, I created a two-step system: an editor script to build and configure dependencies in one step, and a nightly GitHub Actions pipeline. Besides simplifying the build process, this created another positive side effect by ensuring we fixed compiler issues proactively. Another project was the **build system**. Having a server dependency and Steam
integration meant that the environment differed from development to production.
We found it painful to prepare a build for each class-mandated playtest. With
the help of Claude, I created a two-step system: an editor script to build and
configure dependencies in one step, and a nightly GitHub Actions pipeline.
Besides simplifying the build process, this created another positive side effect
by ensuring we fixed compiler issues proactively.
I'm currently working on a client-side prediction model to match other FPS games on the market. I'm currently working on a client-side prediction model to match other FPS games
on the market.
Even with our team size, the most important thing I learned was how to manage scope and scale. Each one of us pushed ourselves to the limits of our knowledge, going from bare theoretical understanding to practical working implementations. The goal was never to get things right on the first try; it was to learn and realize new ideas in multiple passes. Even with our team size, the most important thing I learned was how to manage
scope and scale. Each one of us pushed ourselves to the limits of our knowledge,
going from bare theoretical understanding to practical working implementations.
The goal was never to get things right on the first try; it was to learn and
realize new ideas in multiple passes.

View File

@@ -6,7 +6,8 @@ title: Tad-Pool
**A mobile app designed to make carpooling easier for college students.** Find **A mobile app designed to make carpooling easier for college students.** Find
carpools based on time and location, and get rewarded for helping to reduce CO2 carpools based on time and location, and get rewarded for helping to reduce CO2
emissions. I worked with [Jazmine Stanek](https://www.linkedin.com/in/vjazminestanek/) emissions. I worked
with [Jazmine Stanek](https://www.linkedin.com/in/vjazminestanek/)
and [Isabelle Woo](https://www.linkedin.com/in/isabellewoo/) to create the UI/UX and [Isabelle Woo](https://www.linkedin.com/in/isabellewoo/) to create the UI/UX
design using Figma and FigJam, in a period of 24 hours for design using Figma and FigJam, in a period of 24 hours for
[FullyBeyond 2024](https://fullybeyond.acmcsuf.com/). [FullyBeyond 2024](https://fullybeyond.acmcsuf.com/).
@@ -14,7 +15,7 @@ design using Figma and FigJam, in a period of 24 hours for
The project reached the finalist judging stage. The project reached the finalist judging stage.
- [High-fidelity design](https://www.figma. - [High-fidelity design](https://www.figma.
com/design/nTKCcwftKrg27wlP5mmy9e/Tad-Pool-Design?node-id=13-1837&node-type=canvas&t=YKuVvM6RAPs4hTIo-11) com/design/nTKCcwftKrg27wlP5mmy9e/Tad-Pool-Design?node-id=13-1837&node-type=canvas&t=YKuVvM6RAPs4hTIo-11)
- [Low-fidelity design](https://www.figma. - [Low-fidelity design](https://www.figma.
com/design/nTKCcwftKrg27wlP5mmy9e/Tad-Pool-Design?node-id=0-1&node-type=canvas&t=YKuVvM6RAPs4hTIo-11) com/design/nTKCcwftKrg27wlP5mmy9e/Tad-Pool-Design?node-id=0-1&node-type=canvas&t=YKuVvM6RAPs4hTIo-11)
- [FigJam board](https://www.figma. - [FigJam board](https://www.figma.

View File

@@ -4,13 +4,24 @@ title: teech.ai
<iframe width="100%" height="480" src="https://www.youtube-nocookie.com/embed/luVIdLB9id0?si=1sTE9Z3MeyWntRmd" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> <iframe width="100%" height="480" src="https://www.youtube-nocookie.com/embed/luVIdLB9id0?si=1sTE9Z3MeyWntRmd" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
**A proof-of-concept tutoring app for students learning math.** Using the phone camera, the app sees and understands math problems, guiding students through problems with hints and step-by-step questions. We added text-to-speech (TTS) to give our app a voice, further engaging students and making it feel like a more personal experience. **A proof-of-concept tutoring app for students learning math.** Using the phone
camera, the app sees and understands math problems, guiding students through
problems with hints and step-by-step questions. We added text-to-speech (TTS) to
give our app a voice, further engaging students and making it feel like a more
personal experience.
[Tri Vu](https://www.linkedin.com/in/tri-q-vu/) built a web interface prototype and Python-based backend utilizing the Gemini Vision API and Fish Audio for TTS. [Tri Vu](https://www.linkedin.com/in/tri-q-vu/) built a web interface prototype
and Python-based backend utilizing the Gemini Vision API and Fish Audio for TTS.
I built a native proof-of-concept using SwiftUI, AVFoundation, and other native frameworks. In the app, I built a chat and camera interface, integrating with Tri's backend by sending image and prompt data. Swiping to the right reveals the user's chat history, which is also continuously synced with the backend. Design-wise, I decided to use this gesture-based approach in order to bring the camera interface front and center. I built a native proof-of-concept using SwiftUI, AVFoundation, and other native
frameworks. In the app, I built a chat and camera interface, integrating with
Tri's backend by sending image and prompt data. Swiping to the right reveals the
user's chat history, which is also continuously synced with the backend.
Design-wise, I decided to use this gesture-based approach in order to bring the
camera interface front and center.
The app was built in 48 hours for **Cal Hacks 12.0**, the world's largest collegiate hackathon. The app was built in 48 hours for **Cal Hacks 12.0**, the world's largest
collegiate hackathon.
- [GitHub](https://github.com/brendan-ch/teecher-ios) - [GitHub](https://github.com/brendan-ch/teecher-ios)
- [Devpost](https://devpost.com/software/teech-ai) - [Devpost](https://devpost.com/software/teech-ai)

View File

@@ -12,6 +12,7 @@ screens for the app using React Native for Windows.
"Ive worked with Brendan for many years, and he is the first person I turn to "Ive worked with Brendan for many years, and he is the first person I turn to
for web/app development. Hes knowledgeable and efficient, and his task for web/app development. Hes knowledgeable and efficient, and his task
management skills make him an ideal project member." — Walter Cheng, project overseer management skills make him an ideal project member." — Walter Cheng, project
overseer
[The Farmers Dog](https://thefarmersdog.com/) [The Farmers Dog](https://thefarmersdog.com/)

View File

@@ -4,7 +4,8 @@ title: Timestamp
![Screenshot of the Timestamp app and the settings window.](../assets/project/timestamp-screenshot.png) ![Screenshot of the Timestamp app and the settings window.](../assets/project/timestamp-screenshot.png)
A simple, unintrusive Pomodoro timer for macOS which lives in the menu bar. I built it with SwiftUI and made it open source. A simple, unintrusive Pomodoro timer for macOS which lives in the menu bar. I
built it with SwiftUI and made it open source.
[Download the app](https://github.com/brendan-ch/timestamp/releases) [Download the app](https://github.com/brendan-ch/timestamp/releases)
[View the code](https://github.com/brendan-ch/timestamp) [View the code](https://github.com/brendan-ch/timestamp)