Computer science background, self-taught design practice. I've shipped two products end to end, from the first layout decision to a live URL, and I write down why I made each choice along the way.
A browser-based planner built on a simple constraint: no accounts, no cloud sync, no subscription. Just open it and plan.
Most planning tools ask for an account before you've written a single task, then bill you monthly for the privilege. I wanted the opposite: open the page, start planning, and never think about a login screen.
I started from the week grid itself, since that's the one view a planner can't get wrong. From there I layered in sections, inline editing, and a Pomodoro timer, testing each addition against the same question: does this still feel calm, or does it start to feel like a dashboard?
Shipped and in active use today. Since launch I've added drag-and-drop reordering, a dark mode toggle, and JSON/CSV export based on my own week-to-week use of it.
The monochrome constraint keeps the interface quiet, but it also means status at a glance (done vs. overdue vs. in progress) leans entirely on position and strikethrough rather than color. A future pass would test a narrow, deliberate use of color for state, without breaking the calm the palette was built for.
A concept marketing site for a fictional Charlotte soccer club, built to design a full sports funnel: awareness through the hero, to a ticket purchase CTA.
I set this brief for myself deliberately: design a real-world marketing layout, not an isolated component demo. That meant a hero, roster, schedule, news cards, ticket CTA, and sponsor placements all working together as one identity.
I built the identity around live sports broadcasts rather than generic sports-brand cliché: charcoal, steel blue, amber, and teal, paired with a condensed display face that reads the way a scoreboard reads.
An auto-scrolling, skewed ticker strip styled after a broadcast lower-third. It's the one element I let carry all the personality, everything else on the page stays quiet so the ticker keeps its edge.
prefers-reduced-motion on the ticker animation rather than treating accessibility as an afterthought.Charlotte Ironclad FC is a concept, not a live client. I built it to prove I can design a complete, multi-section marketing site with a real identity, not just a single polished screen.
A self-directed concept project: a full mobile app flow for browsing, saving, and organizing home design inspiration, designed to prove I can think in systems and flows, not just individual screens.
I set this brief to close a gap in my own portfolio: everything else I'd built was a single-purpose site. I wanted to design a full loop instead, discover, save, organize, to show I can think about information architecture and flow, not just one polished screen.
I mapped the core loop first: browse a feed, save something in one tap, find it again later in an organized board. Every screen after that was built to protect that loop rather than add features on top of it.
Four core screens designed end to end: onboarding, discovery feed, item detail, and board view, as a coherent system sharing one navigation pattern and one visual language.
This is a concept exploration, not a built or coded product, and the imagery is a curated color system standing in for photography rather than real photos. I designed it this way deliberately, to keep the focus on layout, hierarchy, and flow rather than sourcing.