FoShoA career snapshot platform built on short video profiles — the space between a formal CV network and informal social media. Web and mobile clients on a Spring Boot API, with recording, editing, discovery, messaging and job posting in one product. Live at fosho.ie.
Formal professional networks are built for long-term career identity and high-commitment networking; social platforms are built for everything except hiring. Casual, part-time and entry-level work falls between the two, where the thing that decides a fit — how someone communicates — never reaches the page. FoSho targets that gap: job seekers introduce themselves in a short video, employers post roles the same way and review applicants by watching rather than parsing.
Record in the browser with camera and microphone access, a teleprompter and framing controls — or upload an existing clip.
Non-destructive trimming, crop, zoom and mirror, previewed against the timeline before publishing. The source file is never overwritten.
Snapshots publish with title, city, segment and tags, then appear on the profile and in public discovery once processing and moderation status clear.
Browse and search public profiles and postings. Employers publish roles as snapshots; applicants respond with their own.
Thread-based, with a request/accept step before a conversation opens — spam has to get past consent first. Inactive tabs pause polling.
Theme, high contrast, reduced and paused motion, large text, hide-images and language are user settings — persisted locally and applied as document-level attributes, so they survive reloads.
Users can report content, and moderation records are first-class rows in the schema rather than an afterthought.
Media never touches the database; interface, business logic, persistence, object storage, processing and AI stay separate concerns.
React, TypeScript and Vite as a single-page app on the web; Expo and React Native on mobile. Both talk to the same REST API, so behaviour stays consistent while interaction patterns stay native to the device.
Spring Boot with JWT access tokens and stored refresh tokens. Signup and login validate client-side first, then hash-verify server-side; sessions survive refreshes without re-authenticating.
PostgreSQL through JPA, with Flyway migrations so a schema change is reproducible from development to production. Users, snapshots, job posts, threads, messages, refresh tokens and moderation jobs are modelled explicitly.
Uploads land in S3 and are served through CloudFront; FFmpeg handles validation and transformation in the backend runtime. Postgres stores object keys and metadata, never the video itself.
Static frontend build, Dockerised backend on Java 21 with FFmpeg available, managed Postgres running migrations at startup, and every credential injected as a platform secret rather than committed.
Co-founded and built with a co-founder on the front end.
I run the hosting and the PostgreSQL layer — schema design, Flyway migrations, environment secrets, S3 and CloudFront delivery, and the deploy path that keeps them in step.
The Spring Boot API is mine: authentication and refresh tokens, profile, snapshot, messaging and job endpoints, and the media processing path around FFmpeg.
I review what goes into the repository across web, mobile and backend — the reason the CI matrix exists and the reason it stays green.
The interface is co-designed — I shape flows, accessibility behaviour and component structure alongside my co-founder rather than owning it outright.
Every push runs frontend typecheck, lint and production build, mobile typecheck, and backend compile and test. Web, mobile and backend all have to pass before anything is considered buildable.
The backend suite exercises real behaviour rather than proving the code compiles, and it ran throughout development rather than being bolted on before submission.
Camera and microphone permissions, recording usability, preview behaviour, responsive layouts, accessibility modes and message requests get tested by hand — automation can't judge whether a recording flow feels usable.
Richer moderation dashboards and review workflows for reported content.
End-to-end tests across signup, login, recording upload, browse and messaging, plus wider frontend and mobile coverage.
Employer analytics for applicant review and posting performance.
More discovery filters — location, role type, availability, profile tags.
Media processing queues and structured logging, monitoring and alerting as upload volume grows.