James Roy
Verified Expert in Engineering
Software Developer
James is an outgoing, entrepreneurial-minded web developer and designer who's been in the industry since 2002. He specializes in multilingual WordPress and WooCommerce solutions. His background is in design and usability which gives him a deep understanding of the full website development life cycle and user interactions. He works seamlessly with teams but is also totally comfortable with working on his own.
Portfolio
Experience
Availability
Preferred Environment
Git, IntelliJ IDEA, PhpStorm, OS X
The most amazing...
...project was building a premium WP theme with a drag-n-drop layout control, customizer integration, event/portfolio management, and WooCommerce compatibility.
Work Experience
Web Developer | Designer
Freelance Work
- Headed the full website lifecycle development with clients—including conceptualization, design, layout, development, browser compatibility, QA, and testing.
- Delegated and managed contractors or service providers through the project’s duration.
- Developed websites using WordPress, Catalyst, Vortex, Squarespace, and Concrete5 CMS in addition to overseeing phpBB forums and static non-CMS websites.
- Programmed CMS enhancements to enable and simplify website management.
- Deployed end-to-end eCommerce solutions based on WooCommerce and Catalyst using payment gateways and SSL.
- Advocated novel UI/UX solutions for enriching the client and customer connection.
- Collaborated with clients on social media and SEO strategies.
- Advised on unifying print and web brands along with designing online and offline marketing ventures.
- Developed WordPress multi-sites and multilingual websites.
Developer
Nanosteam Foundation
- Extensively enhanced the commercial crowdfunding platform, Ignition Deck, to meet the special requirements for managing the users of the system.
- Created team management and collaboration capabilities for project creators allowing up to 10 additional people to contribute to updating a project's progress and to interact with supporters of the project directly.
- Developed a Stripe Connect Custom payment processing system for managing the payment flow between creators and backers.
- Developed financial, project and user reports both in Stripe Sigma and directly from the Website.
- Programmed database queries for tracking a project's full lifecycle which are created by users on the site.
- Integrated real-time error checking and feedback for project creation and user signup flows.
- Developed a tracking system allowing users to earn rewards based on their involvement with the creation and/or support of projects on the site.
- Implemented fully custom CSS/SCSS built on a supplied unique design using Bootstrap 4+.
- Translated PSD files to HTML along with realizing a fully integrated custom theme.
- Built custom Gutenberg plugins for enhanced layout and design controls.
Full-stack WordPress Developer
Classic Cable Cars
- Developed an Ajax coupon system that queried a remote API for the discount type and then validated the coupon entered which then applied the appropriate discount on checkout without the page refreshing.
- Built a logging and metrics system which tracks the entire transaction process from date selection through to payment confirmation. It also tracked any failure points along this process. The metrics data followed the logging process and would report to a StatsD server using a PHP StatsD client.
- Improved the user experience by querying the remote ticket management API and dynamically disabling dates on the jQuery date-picker based on vacancy availability per day and per tour type.
WordPress Developer and Designer
Moto-Center Thun
- Designed the core theme for a family of five websites on a VPS with a multi-site WordPress installation.
- Integrated a drag-n-drop layout builder and developed over 40 tools for the client's publishing needs.
- Built a custom event management system for 2 of the websites that tied directly into the drag-n-drop page builder.
- Integrated WooCommerce and WooCommerce bookings for three of the websites along with adding a direct integration into the drag-n-drop layout builder.
- Installed multilingual capabilities and customized it for compatibility with WooCommerce.
- Developed and designed a reusable skeleton framework for their email newsletter campaigns.
- Built a custom plugin for managing the multilingual duplication of WooCommerce stock for products and rentals.
- Installed Let's Encrypt SSL on the WHM VPS.
Web Developer
Thoemus Veloshop
- Handled the PSD to HTML conversion for the supplied design concept.
- Installed The Events Calendar plugin and customized it to meet the needs of the client.
- Set up and customized WooCommerce.
- Established and tested a payment gateway.
- Integrated a drag-n-drop layout builder for custom layout control on the part of the client for all their pages and posts.
Web Developer and Designer
Tangfish
- Designed and developed a custom photography theme built on the Squarespace developer framework.
- Migrated and installed a visually identical, though entirely different back-end theme for the client's Tumblr account which is used to generate traffic to the rest of the site.
- Installed and customized alternate gallery systems for both Tumblr and Squarespace.
- Optimized the site for mobile viewing with larger screen sizes as the fallback.
Experience
Extension of a Custom WordPress eCommerce Plugin
The company sells tickets for four tour types. Centaman’s system allows for a coupon to be only for a specific tour or apply to some or all of them. Each tour has its own set of rules which can be set by the company.
The goal was to allow a customer to enter their coupon on checkout which would then query Centaman's API, if the coupon were valid then it would be processed against several checks to ensure that it was applicable for the tour type. If confirmed as valid, then the price would be updated on the page showing the discount applied along with a new total. This was all done with Ajax.
The logging system was built using Monolog. Its sole focus is whether a transaction succeeds or fails and if it fails, why. The metrics system piggybacked on the logging process so it would trigger at the same points while sending it’s data to a StatsD server using a PHP StatsD client.
The first step of the transaction is to select a date for a tour using a jQuery date picker. Using the Centaman API, a new system was built to confirm vacancies. If it were unavailable for any reason, the dates would be disabled and indicated with a visual at the start.
WooCommerce Bookings Multilingual Plugin
WooCommerce Bookings is not very multilingual friendly. As an example, a booking done in English will not automatically make the booking for the German translation of the product. There was a lot of manual work required to ensure no double bookings for a product occurred when a reservation was made.
The Solution:
When a user made a reservation, the plugin would duplicate the same information and its state (paid, pending, and more) for each language installed on the website. There were three additional functions. As new products were added, they were duplicated for each language, so the web administrator only needed to change the text for each respective language while having the specifications remain identical. Lastly, the administrator could upload an Excel file to the website for any in-store bookings, which would automatically book the respective product and its associated translations. It also would free up any products which had been returned that were noted in the Excel file as well.
SCSS Compiler Plugin
How to use the WordPress Customizer to manage the variables of the Bootstrap framework and how to process SCSS files into a CSS file directly within the website.
The Solution:
Integrate the SCSSPHP compiler to handle the the compiling of the SCSS files into an optimized CSS file. In total, there were approximately 30 variables which when changed would require the compiler to process a new stylesheet. Unlike LibSass, SCSSPHP is resource intensive and relatively slow. The plugin produced a reference file which was used to see if the compiler needed to run so that there were no unnecessary program initiations if a setting changed within Customizer that was not related to one of the managed variables. The plugin also produced a cache busting CSS file so that any changes which were made would automatically be downloaded by previous visitors to the website.
Moto-Center
http://moto-center.chFrom there, the goals for each are unique in scope. These included the flagship sites (Moto-Center Thun & Bern), a primary informational site (Tacho-Bar), event management (Racing Tours) to a bike rental site with online booking capabilities. Additionally, these sites all run from a multi-site WordPress installation with a multilingual setup on some plus the websites with a customized drag-n-drop layout builder with over 40 custom layout tools.
Skills
Languages
CSS, HTML, SCSS, JavaScript, PHP, CSS3, Sass, Less
Frameworks
Bootstrap, Presto
Tools
Adobe Illustrator, Adobe Photoshop, Coda 2, PhpStorm, Gutenberg Editor, Git, Terminal, Atom, IntelliJ IDEA, NPM
Paradigms
Responsive, REST
Platforms
WordPress, WooCommerce, OS X, Tumblr
Libraries/APIs
jQuery, Stripe Connect, Stripe
Storage
WP Engine, MySQL
Other
Squarespace, Ajax, StatsD, Monolog
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring