I design and build websites that are useful, beautiful, and built to last, combining creative design with clean, elegant code. As a seasoned full-stack developer, I specialize in WordPress and custom CMS solutions that balance aesthetics, performance, and scalability.
Every project starts with understanding the client’s goals and audience. From there, I craft intuitive architecture, clear messaging, and smooth navigation that makes the experience feel effortless. Working closely with designers and stakeholders, I translate vision into functional, responsive builds powered by modern workflows (SASS, task runners, and version control) ensuring maintainability long after launch.
Whether it’s a high-traffic enterprise platform or a small business site, my goal is simple: create something that looks great, works flawlessly, and stands the test of time.
Years of experience with a variety of clients has taught me many important lessons, the most important of which is to do what's best for your users. Ultimately, that's what is best for your business.
Corporate marketing site for global cybersecurity leader. Website makes extensive use of WordPress custom post types and custom fields to manage heavy content and Bootstrap for responsive mobile design.
WordPress, custom theme, Bootstrap, webpack | Senior UI Developer / UI Engineer III
Baseball articles and statistics website built on WordPress VIP for enterprise-grade performance and scalability. As Web Team Manager, I managed a small team of developers, maintained a scrum-based agile workflow, organized documentation, worked closely with the data science team, and oversaw deployments to production. My primary development focus was the data-heavy player pages, which feature comprehensive data visualization using Chart.js and interactive tables powered by DataTables with advanced filtering, sorting, and export capabilities. The system integrates custom REST API endpoints for efficient data delivery, handles API data pulls with local storage, performs on-the-fly processing, runs nightly cron jobs for updates, and implements server-side caching for optimal performance.
WordPress VIP, custom theme, Foundation 6, REST API, Chart.js, DataTables, Dart Sass, Grunt | Web Team Manager
News and events website for an Illinois restaurant group, built with responsive design using the Foundation framework. The site features dynamically updatable menus powered by SinglePlatform API integration, merchandise carousels, a newsletter subscription form, and a blog. Dynamic content filtering using Isotope enhances the user experience, while the client's Twitter, Instagram, Facebook, and YouTube feeds are seamlessly integrated in the footer.
WordPress, custom theme, Foundation, SinglePlatform API, Isotope, SASS, Grunt | Lead Developer
National restaurant chain requested a new site to update their corporate brand and streamline the experience for franchise owners. Features menus and event calendars that can me managed at the corporate and franchise level. Franchise owners can offer unique menu items, drink specials, and integrate local social media accounts. A corporate approval system manages content before it is published to the live site. Geolocation services find the nearest locations for users. A new Kilt Girl is featured on the calendar every month.
responsive layout, WordPress, Foundation, Facebook/Instagram feeds | Tech Lead
Global youth organization needed a refresh of their internationally recognized brand. An updated design was created, and a new back-end content management system allowed for easier organization and maintenance of their deep content. Structured page templates ensure that content is always cleanly presented. Section 508 rules for accessibility were respected.
responsive layout, WordPress Multisite, Foundation, Webdam integration | Tech Lead
Digital mobility company needed a site that showcased its newly acquired divisions and business capabilities. Content and image-heavy site features angled content areas, magazine-style transitions, multi-level horizontal navigation, and embedded video and PDF content. A government subsite with graceful degradation to IE7 was required.
responsive layout, WordPress, Foundation, Google Tag Manager integration | Tech Lead
A showcase of a technology security company's products and service offerings. The WordPress site features a custom theme based on FoundationPress, a mobile responsive layout with breakpoints for phone, tablet, and desktop. JavaScript libraries like Isotope and D3.js enable dynamic filtering, interactive page elements, and subtle animations to data presentations. Sticky subnavigation and sidebars ensure that users never get lost in long, scrolling content. Page and browser caching ensures fast site performance. Social networking tools increase shareability. A comprehensive WordPress back-end allows for easy maintenance of site content by the client.
responsive layout, WordPress, FoundationPress, Isotope, D3.js | Developer
Organization works with the NFLPA to collect articles and resources for former NFL players. Features dynamically filtered content, social media sharing tools, and an accordion-driven FAQ section.
responsive layout, WordPress, Isotope | Lead Developer
Collection of resources on issues impacting older foster youth transitioning out of foster care. Client requested that the resources be easily filterable and fully functional on mobile devices. Site features advanced filtering logic and dropdown panels showing all available filters. Preloaded content and dynamic animation quickly delivers results. Back-end tools allows the organization to easily add new resources and categorize them for proper filtering.
responsive layout, WordPress, Isotope | Lead Developer
Mediterranean-inspired restaurant in Wellesley, Massachusetts. One-page site features navigation with animated scrolling, an online menu populated by SinglePlatform, gift card and cookbook ordering integration with PayPal, and a photo gallery.
responsive layout, WordPress, Foundation, PayPal integration | Lead Developer
Autonomous vehicle and industrial robotics software company requested a site which showcased the technology. A hero carousel with content transitions and scroll-driven parallax interactions were added to make the browsing experience more dynamic.
responsive layout, WordPress, Foundation | Lead Developer
A gated site where users with the right access code can browse and download a selection of published PDFs as a ZIP file.
WordPress, custom theme, Bootstrap | Developer
Web app that uses the ResourceGuru API to determine appropriate resource allocation for our team of account managers, project managers, strategists, copywriters, UX, designers, and developers. Visual charting of the data helps determine at a glance if resources are appropriately allocated for the week. A detail view shows specific clients and projects assigned to each resource. Filters may be used to display resource from specific departments.
responsive layout, Foundation, ResourceGuru API | Lead Developer
Other clients include:
When I have a need for a site that doesn't exist or an idea for something clever, I'll build it myself. Here are some of my favorite personal projects.
A community-driven archive collecting, organizing, and sharing recordings of old Loveline radio shows. Loveline was a nationally syndicated radio call-in program featuring Adam Carolla and Dr. Drew that offered medical and relationship advice to listeners. Built with the FoundationPress theme framework, the site hosts over 3,000 recordings, all indexed, searchable, and available to the public for free. Features include a jQuery MP3 player, call tagging, integrated community features via BuddyPress, forum discussions powered by bbPress, and comprehensive search functionality. Back-end tools allow admins to upload and archive new recordings, moderate content, and manage users. Wasabi cloud storage handles the recording files while Cloudflare CDN delivers cached content for optimal performance.
WordPress, FoundationPress (Foundation 6.5.1), BuddyPress, bbPress, Wasabi cloud storage, Cloudflare CDN, Gulp
A movie discovery platform that helps you find the best films to watch by combining data from multiple sources with proprietary ranking algorithms. The site aggregates movie information from TMDb, OMDb, and Guidebox APIs, supplements it with IMDB data scraping, and applies custom algorithms to generate comprehensive rankings. Daily automated cron jobs keep the database fresh with the latest releases, ratings, and streaming availability. Dynamic filtering powered by Isotope allows users to discover hidden gems, mark movies as seen, build personalized watchlists, and instantly see which streaming services offer each title. Built with Foundation 6 and featuring smooth animations via Motion UI.
Foundation 6, Isotope, TMDb/OMDb/Guidebox APIs, IMDB data scraping, Grunt, PostCSS
A non-partisan platform that clearly and objectively presents presidential candidates' positions on key issues, helping voters make informed decisions. Built with custom PHP and MySQL, the site features highly optimized database queries that reduced page load queries from over 200 to just 4, ensuring fast performance even with extensive candidate and issue data. The system includes secure authentication with password hashing, prepared statements for SQL injection protection, and environment-based configuration. Content is organized by issue with clear for/against indicators, source citations, and integrity scoring to help users understand each candidate's stance.
Custom PHP, MySQL, optimized database queries
A cost-splitting tool that eliminates the complicated math of sharing expenses with friends. Whether you're splitting travel costs, rent, or any group expenses, the app automatically calculates who owes money to whom. Users can create events, add participants, and log expenses by category. Interactive pie charts powered by Flot.js visualize how costs have been distributed, making it easy to see the breakdown at a glance. The system sends email notifications via PHPMailer to keep everyone informed about shared expenses and payment status.
Custom PHP, PHPMailer, Flot.js
A comprehensive team management system for recreational baseball and softball teams. Built to fill a gap in free team management tools, it allows team managers to maintain player rosters, post schedules, send game invites via email, and track detailed team statistics. The system features a robust baseball statistics engine with advanced calculations for batting averages, ERA, WHIP, and other key metrics. Advanced form functionality with extensive data validation ensures accurate record-keeping. A unique physics-based simulator calculates how far a ball can be hit under various conditions, adding an educational element to the platform.
Custom PHP, PHPMailer/Mailgun, advanced statistics calculations
An archive cataloging the fans who have caught the most famous home run balls in Major League Baseball history. The site features stories collected from news outlets, interactive modals with embedded videos showing each historic home run, and photos of the lucky fans. Built with custom PHP and jQuery UI for smooth interactions, the site includes user-submitted content capabilities with moderation tools and CAPTCHA protection via Securimage to maintain content quality.
Custom PHP, jQuery UI, Securimage CAPTCHA
A Super Bowl squares game platform where users pick numbers before the big game and win if the scores at the end of each quarter match their selections. Built with WordPress and responsive design, the site features secure user authentication for each participant and automated email notifications via Mailgun that send game updates and results. The front-end is built with SASS and compiled using Grunt for efficient development workflow.
WordPress, responsive design, Mailgun, SASS, Grunt
A graphic representation of how an inevitable losing streak in the Martingale betting system can break you.
A childhood game brought to life online, where players compete in a home run derby format. The site features an advanced Glicko-2 rating system that provides competitive rankings based on player performance, ensuring fair and accurate skill assessment. Interactive charts powered by Chart.js display each player's performance over time, showing trends, streaks, and improvement. The site also includes fun stories, official rules, photos, and videos. Built with custom PHP and Bootstrap for responsive design.
Custom PHP, Bootstrap, Chart.js, Glicko-2 ranking algorithm
A ranking system for office ping pong or any other competitive event. The system is built as a ladder, where players can challenge players above them and must win to move up. Email notifications for challenge matches and reminders of upcoming games are automatically sent out. Playing statistics including all-time records, streaks, and easiest/toughest opponents are calculated on the fly. Back-end tools allow admins to add and remove players.
responsive layout, Foundation
A personal inventory management system for eBay purchases that automates transaction tracking. The app integrates with eBay's XML-based API to automatically pull in transaction information and product thumbnails for recent purchases. All data is stored in a local MySQL database for quick access and historical tracking. Users can add comments to items, track shipping with tracking numbers, mark items as received, and manage seller feedback—all from one centralized dashboard.
Custom PHP, MySQL, eBay API (XML-based), transaction tracking
A proprietary baseball prospects research tool designed to identify future stars for investment in baseball cards. The system uses web scraping via ScrapFly API to gather prospect data from multiple sources, then processes and scores players based on custom algorithms. Built on WordPress with Advanced Custom Fields for flexible data management, the tool runs automated cron jobs to continuously update player information and rankings. The scoring system helps identify high-potential prospects before they become widely known, providing a competitive advantage in the collectibles market.
WordPress, Advanced Custom Fields, ScrapFly API, custom PHP, MySQL
A comprehensive analytical engine for Diamond Mind Baseball simulation software, built to support research for a historical fantasy baseball league. This complex custom PHP application processes extensive baseball statistics from multiple data sources including the Lahman database and Retrosheet. The system calculates park factors, analyzes player performance across different eras, generates depth charts, and provides draft analysis tools. Features include interactive data tables with TableSorter for sorting and filtering, automated data updates via cron jobs, and sophisticated statistical calculations. The tool includes park factor calculations for historical ballparks dating back to 1893, with support for left/right batter splits and component statistics.
Custom PHP, MySQL, Lahman/Retrosheet data integration, TableSorter, Simple HTML DOM parser
A technical analysis tool for stock market investing that tracks stocks and generates investment recommendations. The system integrates with Yahoo Finance for real-time market data and allows users to manage multiple portfolios. Automated cron jobs update stock prices and metrics daily, while CSV import functionality enables bulk portfolio management. The tool features interactive tables with TableSorter for sorting and filtering stocks by various criteria, tracks buy/sell recommendations, and provides links to detailed Yahoo Finance quotes and charts. Built with custom PHP and MySQL for efficient data processing and storage.
Custom PHP, MySQL, Yahoo Finance integration, TableSorter, CSV import/export
Some guiding thoughts on building better websites.
I’m not the person to invent a visual identity from scratch, but I have the analytical eye to know great design when I see it. I collaborate best with expert designers, translating their vision into clean, functional builds that work as beautifully as they look.
Fast is beautiful. If a site takes longer to load than it does to lose a visitor’s attention, it’s already failed. Optimization isn’t optional, it’s respect for your audience’s time.
More links aren’t better, smarter ones are. A site should guide users through organized content with clarity and intent. Duplicated links are like having 48 crooked signs pointing to the same library section, confusing and unnecessary.
Unless I press play, silence is golden. Autoplaying audio is the digital equivalent of someone barging into your conversation mid-sentence. Let users control what they hear.
Ads should complement content, not compete with it. When they block or distract from what users came to see, they fail both the audience and the brand.
Use them only when they serve a purpose. If I didn’t ask for it, I shouldn’t have to close it.
Visitors should understand who you are and what you do in five seconds. Keep text scannable, words consistent, and grammar deliberate. “Email” and “website” are single words. “Click here” is not a strategy. And yes, the Oxford comma belongs.
The best CMS is the one your client can actually use. Fancy tools mean nothing if the client’s afraid to touch them.
I love working with great people: designers who push pixels with purpose, UX teams who understand what users need, developers who obsess over clean code and performance, and clients who value clarity and craft.
Need help with a website project? Send me a note below.