Personal brand website for a B2B sales executive transitioning into tech sales
Kevin Lam, a B2B sales executive with 8+ years of experience, wanted to transition into tech sales and needed a professional online presence to stand out to recruiters. He had an existing WordPress site that was slow and difficult to update, plus an MIS background from San Jose State University. This became a dual opportunity: migrate his portfolio from WordPress to a modern stack while pair programming with him through every feature—giving him both a polished product and renewed technical confidence to discuss in interviews.
Migrate Kevin's portfolio from WordPress to Next.js, expanding it with detailed case studies, analytics integration, and a deployment strategy he could maintain. Use pair programming to rebuild his technical fundamentals while integrating Tina CMS—chosen specifically because it doesn't require learning a query language like GROQ or GraphQL, making it easier for Kevin to manage content independently.
Conducted discovery sessions to understand Kevin's career goals, target audience (tech recruiters), and current site pain points with WordPress
Migrated existing content from WordPress, restructuring it for better storytelling and SEO
Pair programmed project initialization with Next.js and TypeScript, walking through ecosystem changes since his college days
Designed personal brand visual identity collaboratively, teaching component-based thinking in React
Built responsive layouts with Tailwind CSS, connecting utility-first CSS to his HTML/CSS background
Integrated Tina CMS for content management—no query language needed, just visual editing and Git-backed content that Kevin could manage independently
Implemented PostHog for user behavior analytics and Google Analytics for traffic insights
Created compelling case studies showcasing his sales achievements with metrics-driven storytelling
Set up deployment pipeline on Vercel with preview environments, explaining CI/CD workflows
Configured custom domain, SSL, and performance monitoring
Built documentation so Kevin could continue maintaining and updating the site independently
Supported Kevin through consulting discovery calls and stakeholder negotiations for his sales work
Kevin received 3x more recruiter outreach within first month of launch
Site ranks on first page of Google for 'Kevin Lam sales' and related searches
Kevin regained confidence in technical discussions, able to speak credibly about web technologies in interviews
PageSpeed score of 98 demonstrates technical quality to recruiters viewing source
Kevin can now update content and make minor code changes independently
Project became a talking point in interviews, showcasing Kevin's initiative and technical aptitude
MVP, stretch goals, and future vision
Development phases and milestones
Personal portfolio website for Kevin Lam
Complete portfolio website with project showcases
Common questions about this project, answered in STAR format
Tell me about a time you helped someone learn a new skill.
Key Takeaway: Effective teaching meets people where they are. Kevin wasn't a beginner—he had dormant knowledge from his MIS degree that needed reactivation, not replacement. Connecting new concepts to existing mental models accelerates learning dramatically.
Describe a project where the process was as important as the outcome.
Key Takeaway: Sometimes the journey matters more than the destination. A website I could have built in a week became a month-long mentorship that delivered lasting value far beyond the final product.
How do you adapt your communication style for different audiences?
Key Takeaway: Great communication isn't dumbing things down—it's finding the right translation layer. Kevin was smart; he just needed concepts connected to what he already knew from his MIS background. Everyone has existing knowledge you can build on.
Quick answers to 'Why did you choose X?' questions
Kevin wanted to speak credibly about technology in tech sales interviews. Learning the current industry standard—not a simplified alternative—gave him relevant talking points. Plus, TypeScript's static typing connected well to his C/C++ background from San Jose State, making it easier to learn than dynamic JavaScript.
Used driver-navigator with Kevin driving most of the time. Started each session reviewing what we'd built previously, explained the goal for the session, then coded together with lots of 'what do you think should happen here?' questions. Ended with Kevin summarizing key concepts. This kept him active rather than passive.
Two reasons: First, it taught Kevin about headless CMS architecture without requiring him to learn a query language like GROQ or GraphQL—Tina CMS uses a simpler approach where content is stored as Markdown/JSON files in the Git repo. Second, it meant Kevin could update his achievements, add new case studies, and maintain the site without touching code, which was important for long-term independence.
Created explicit bridges to his San Jose State background: 'Remember classes in C++? Components are similar—encapsulated, reusable units.' Avoided jargon when possible, and when I used it, immediately explained it. Focused on concepts over syntax—once Kevin understood the 'why', the 'how' followed more easily.
Built progressively simpler documentation as we went—not technical docs, but 'how to do X' guides written for Kevin specifically. Had him make real updates during our sessions so the process became familiar. Tina CMS's visual editing mode made this intuitive—Kevin could click directly on content to edit it. Kept the codebase simple enough that Kevin could read and understand it.
Every decision has costs — here's how I thought through them
Kevin's goal wasn't just a website—it was to re-engage with technology. Learning current best practices made his technical background a talking point rather than a footnote.
The website was a vehicle for learning, not just a deliverable. Kevin's renewed technical confidence is more valuable than a faster launch.
Building from scratch taught Kevin how pieces fit together. Templates hide complexity; we wanted to understand it.
Understanding CMS architecture gives Kevin credibility when discussing content platforms with prospects. The learning investment pays dividends in his sales conversations.
The hardest problems I solved on this project
Started with concepts he knew from his MIS coursework (HTML/CSS, basic programming logic) and built bridges to modern equivalents
Drew parallels: 'TypeScript interfaces are like the structs you learned in C', 'npm is like package managers you might remember'. Pair programmed everything so he saw concepts in context rather than abstract tutorials
Lesson: Rusty developers aren't beginners—they have mental models to build on. Honor their existing knowledge while updating it.
Conducted a mini brand workshop, teaching Kevin about personal branding for tech while gathering design direction
Created a simple but professional design system together. Used high-quality stock imagery strategically while planning for future professional photos
Lesson: Constraints drive creativity. Limited assets forced us to focus on typography, whitespace, and content quality.
Identified which parts were best for learning vs. where I should lead to maintain quality and momentum
Kevin drove on components and content areas where mistakes were recoverable; I led on architecture and critical path items while explaining decisions
Lesson: Mentorship on real projects requires intentional task allocation—not everything is equally suited for learning.
Drew on Kevin's sales training—he understood the difference between bragging and demonstrating value
Framed achievements in terms of business impact with specific numbers, letting metrics speak for themselves. Used testimonials to add third-party validation
Lesson: Sales professionals often have better instincts about self-presentation than developers—leverage their expertise.
Want to discuss this project?