Hi Elessar
Well done on taking this initiative. I wish you best of luck with it. I would love to contribute - however, I don't seem to be able to find much free time at the moment, so I won't promise anything. I am a C programmer by trade, and like yourself a recent college graduate, but with no empeg and very little linux programming experience.
Perhaps I can help by looking over any design docs or code you produce, like an informal technical review or something. I find that that often helps to eliminate a lot of bugs without the pain of real-time debugging.
One thought I had on the design is that there could be a parent app, like an application launcher which could be used to open and close apps such as the player app or gpsapp or emptriv or whatever, and to switch between them - sort of like a simple window manager I guess. That way, everything becomes an individual app, running as a child of the parent app, and the player app doesn't own the empeg when its running. I imagine it would make things easier for developing other non-player apps, although I don't really know that since I haven't tried developing one myself.

-Dan