Hi! My name is Lou, and I'm a freelance web developer specializing in static site generators including Gatsby, Jekyll, and HUGO. I have experience with a11y, AWS, Google Analytics, and the Adapt Framework for online learning content. My expertise also includes SCORM, Moodle, and WordPress online learning plugins like LearnDash and Edwiser.
I have 10 years of experience in the online learning industry, and I got my start doing front-end and PHP development for the Moodle LMS. What I love most about freelancing is that I am constantly learning new programming languages and frameworks. I prefer clients invested in elegant, efficient, and future-forward solutions with minimal technical debt. If you ask me for something that's not a very good idea, I'm sure to tell you so. ;)
I specialize in blazing-fast, bespoke, static sites that leverage the software-as-service model to reduce costs and maximize site flexibility, reliability, and SEO. These sites work great for small businesses, independent service providers, and startups.
HUGO and Gatsby are my favorite static site generators. Netlify Forms meets client needs for simple inputs and contact forms. Netlify Lambda Functions allow integration with virtually any service that provides an API. This allows clients to have the lean, mean site they want without the burden of server maintenance and security monitoring. For clients with higher traffic or more advanced needs, AWS Lambda often hits the sweet spot.
Extensive LAMP stack development experience and a hearty OSS ethos. My web development experience includes Vue, Angular, React.js, Node, Backbone, Jekyll, eCharts, D3, and Google Maps.
My background also includes projects which prioritize a11y and L10n.
I have extensive Moodle and SCORM expertise. I wrote the SCORM documentation on Moodle.org. I specialize in debugging and consulting services for your SCORM content in Moodle. My Moodle experience includes both custom development and instructional design.
For SCORM content authoring that's open-source, accessible, and developer-friendly, I highly recommend the Adapt authoring tool and framework.
This map allows users to explore indicators of child opportunity across the United States, with different norming levels for national, state, and metro areas. Features include:
Skills: React.js, MapBox, GeoJSON, SCSS, Material UI, Node.js, nwb, npm, python, pandas, Docker
Check it outThis map allows users to explore indicators of social mobility in the North Texas region. Project features include:
Skills: React.js, MapBox, GeoJSON, SCSS, Bootstrap, nwb, npm, Gatsby
Check it outThis map allows users to explore indicators of child opportunity within a school zones, a 2-mile radius around a school, for all schools the Dallas ISD school district. Users can visualize indicators in relation to the distribution of racial and ethnic groups. The project encourages equitable distribution of school bond resources across the district. Project features include:
Featured in:
Skills: React.js, MapBox, GeoJSON, SCSS, Bootstrap, nwb, npm, Gatsby
Check it outThis site feature ranks all US states by COVID-19-related tenant protections (or lack thereof). This interface and the individual state details pages all fetch and render data from a Google spreadsheet of eviction policy data maintained by Eviction Lab. Featured in:
Skills: jQuery, Bootstrap, Google Sheets API, mobile-first, a11y
Check it outThis dynamic table loads a list of national and local Covid-10 eviction policies. Project features include:
Featured in:
Skills: JavaScript, jQuery, AJAX
Check it outAnother project with the talented folks at Hyperobjekt. Project features include:
Skills: Angular, Handlebars, PptxGenJS, Headless Chrome, Typescript
Check it outAnother project with the talented folks at Hyperobjekt. Project features include:
Skills: Angular, d3, Typescript, npm
Check it outAnother project with the talented folks at Hyperobjekt. Project features include:
Skills: HUGO, Golang, gulp
Check it outAnother project with the talented folks at Hyperobjekt. This project generates custom PDF reports based on locations selected by the user. The report is generated by rendering a Handlebars template in headless Chrome, then printing it to a PDF data stream for download.
Skills: Puppeteer, Handlebars, Headless Chrome, node.js, scss, AWS
Check it outAnother project with the talented folks at Hyperobjekt. Project features include:
Skills: HUGO, eCharts, Golang, Bootstrap, React.js, nodejs, Netlify Functions, Netlify CMS, Google Analytics, Google Tag Manager
Check it outAnother project undertaken for the talented folks at Hyperobjekt, this custom React.js component allows users to compare their student loan debt to that of various US demographics. It also allows users to explore how loan refinancing would affect their payoff timeline and overall payment on a loan.
Skills: React.js, HUGO, Golang, Bootstrap, Netlify
Check it outTeachingLab wanted to display recent tweets on their site. I wrote JavaScript and a nodejs Netlify Function to fetch the tweets through Twitter's oAuth API, render the tweets, and animate them.
Skills: HUGO, Twitter API 2.0, Golang, Bootstrap, React.js, nodejs, Netlify Functions, Netlify CMS
Check it outPrimedIO wanted a static site with blazing-fast SEO. They needed internationalization, Nelify Forms, and were capable of editing blog posts and other content themselves once the site was up and running. This site features extensive CSS work to implement design elements and responsiveness without negatively affecting load time.
Skills: HUGO, Golang, CSS, Bootstrap, JavaScript, PHP, JSON, Netlify, Netlify Forms
Check it outThis corporate client needed SCORM online learning content that would be responsive, WCAG A compliant, and easily translated into several langauges. They selected a subway map theme for content organization, and the content pages reflect this theme by portraying color-coded subway "paths" and subway stop "nodes". I developed several custom Adapt plugins in order to give the client the highly customized format they preferred. These Adapt plugin customizations include:
Skills: SCORM, Adapt, Backbone.js, Mustache, a11y, L10n
This was my first project with the talented folks at Hyperobjekt. This site uses Bootstrap 4 for navigation and layout responsiveness. Content pages loop through custom data files stored outside of the HUGO content directory. Many content fields are editable using Netlify CMS.
Skills: HUGO, Golang, CSS, JavaScript, PHP, JSON, Netlify, Netlify CMS
Check it outUser1st wanted to use a static site generator to create a documentation reference for their automated remediation tool and developer training programs. This site uses a modified version of the DocDock theme. I created a custom template for the rule documentation pages, and wrote a PHP script to convert CSVs of rule documentation into individual markdown files.
In subsequent updates to this site, I have added a Netlify CMS schema so that a11y criteria are editable via Netlify CMS. I have also added JSON custom content types to output all a11y standards, standards sorted by WCAG guideline, and standards sorted by tag. I have also retooled the navigation menu to sort all items by WCAG Guideline.
Skills: HUGO, Golang, CSS, JavaScript, PHP, JSON, Netlify, Netlify CMS, a11y
Check it outLaurel needed a robust online promotion, scheduling, and marketplace solution. The theme Laurel had selected required a custom child theme for additional styling and course enrollment functionality. We did development in stages, using separate production and test environments to handle code pulls and site upgrades. Laurel now earns a significant passive income selling video courses with the WordPress CMS, combined with WooCommerce and LearnDash plugins.
Skills: Wordpress, LearnDash, WooCommerce, PHP, CSS, JavaScript
Check it outUser1st wanted an online learning environment for the delivery of accessible SCORM training modules. The content we produced needed to meet the exacting accessibility standards advised in the training they contained. We chose the Adapt framework, and when it came time to test the SCORM content for accessibility, I was able to use CSS and JavaScript to alter the Adapt theme and plugins in order to improve screen reader accessibility.
Skills: Moodle, Adapt, SCORM, PHP, CSS, JavaScript
Check it outMorel needed a simple web site to advertise her wellness service offerings and in-person traiings.
Skills: Squarespace, CSS, JavaScript
Check it outAmy needed a simple web site to advertise her consulting and analytics offerings. Amy came to me with a very particular aesthetic and image set in mind, and this site required extensive image editing, as well as some font set embedding, to make the site look just right despite the constraints of the Squarespace platform.
Skills: Squarespace, CSS, JavaScript
Check it outSumLogix came to me with a legacy Moodle site and several existing Moodle courses. Their existing WordPress/Moodle integration was no longer functioning, and their Moodle site was long outdated. I manually upgraded the Moodle database through several major versions, updated the WordPress plugins and theme, added a child theme for UX updates, and tested and configured PayPal and Stripe purchase workflows. This site accepts transactions in multiple currencies, using the WordPress Currency Switcher plugin and geolocation to provide the customer with the appropriate currency.
Skills: Moodle, WordPress, WooCommerce, Edwiser, PHP, CSS, JavaScript
Check it outWallaroo Labs needed updates to an existing blog using the Hugo static site generator. I updated the display of individual posts and post indexes. I also added a slideout panel for additional links.
Skills: Hugo, golang, CSS, JavaScript
Check it outI have made 13 contributions to Moodle core. MDL-57785 reduces the server load resulting from SCORM content access by eliminating a navigation menu refresh when the navigation menu is not shown in the display. MDL-60478 improves performance of the network connectivity check performed during SCORM sessions, increasing the interval at which checks were performed, increasing the request timeout value to prevent false positives, and reducing the default number of alerts shown to 1.
Skills: PHP, YUI, JavaScript, Grunt, git, Travis, SCORM
Check it out