About Craig
I am a Python Test Engineer. I live in Brighton, UK.
I have a background in Web based business applications, AI, ML, Django, Python,WordPress, JavaScript and
finance.
As a former Microsoft Certified DBA (SQL 2000), I have a strong interest in data integrity as well as using
browser storage (IndexedDB) for robust and fast data retrieval.
I originally trained as an Accountant Technician, working freelance for a range of SMEs. This
enables me
to speak both business and development, bridging the gap between these two worlds, leading to a role as a
Business Information Architect for a nationwide recycling
company.
At this time, I am developing a range of incrementally functional Test Suites with documentation, videos and
templates for
developers and testers - Python Testing Framework.
My Github CV.
Speaking
I enjoy giving talks and workshops on WP-HTML, Web Components and Progressive Web Apps.
Talks previously given:
- TALK: Offline and instant websites, aka Progressive Web Apps - AsyncJS, Brighton, September
2021.
- LIGHTNING TALK: WordPress as a Micro Service to any framework - WordFest, July 2021.
- TALK: WP REST API and Web Components => 100% Internet - WordCamp Santa Clarita, July 2021.
- TALK: Web Components in WP, Gutenberg and as HTML plugins. - WordCamp North East Ohio, May 2021.
- TALK: Leveraging the power or the WordPress REST API - WP Leeds, April 2021
- WORKSHOP: WP REST API and you -> Best Friends Forever - WordCamp Greece, April 2021.
- TALK: Web Components as Micro Apps - NDC London, Jan 2021.
- TALK: Unifying frameworks with Web Components - Brighton AsyncJS, Nov 2020.
- WORKSHOP: Progressive Web Apps Workshop (2hrs) - NDC Oslo, June 2020.
- WORKSHOP: Web Components Workshop (2hrs) - NDC Oslo, June 2020.
- WORKSHOP: Progressive Web Apps Workshop (2hrs) - Brighton WordUp, June 2020.
- WORKSHOP: WordPress REST API with AJAX Forms and Pages - WordCamp Denver, June 2020.
- WORKSHOP: WordPress REST API with AJAX Forms and Pages - WordCamp Kent, Ohio May 2020.
- WORKSHOP: What is the WP REST API and how can I use it to make forms and pages that don’t need to do be
reloaded? -
WordUp Brighton May 2020.
- WORKSHOP: WordPress REST API and AJAX Forms - WordCamp Geneva, March 2020 [EVENT CANCELLED due to virus
concerns :( ]
- TALK: WP-HTML: The marriage of WP and JS Frameworks for expansion, ubiquity and profit - WordCamp Vienna
February 2020.
- WORKSHOP: WordPress REST API - WordCamp Vienna, February 2020.
- TALK: Progressive Web Apps - Brighton WordUp, November 2019.
- TALK: Decoupled WordPress (code along style) - WordCamp Dublin, October 2019.
- TALK: JWT and Authentication - WPHooked London, September 2019
- TALK: Decoupled WordPress and WP Components - WordCamp Brighton, August 2019.
Portfolio
- WordPress REST API and AJAX Forms and Pages
opens up the possibility of WP being used 100% of the Internet, a topic I have spoken about at WordCamps
and used in non-WP talks and workshops. I created an online course on creating REST APIs for pages and
forms that do not need to be refreshed for commercial reasons as well as being able to offer a free
resource to attendees at WordCamp workshops.
- WP-HTML creates Custom HTML tags, (Web Components)
that are part of the browser specifications. They have two powerful characteristics:
1). They are fully
encapsulated preventing bleeding out of CSS and JS, as well as having protocols for passing CSS and
functionality between them and the web page. 2). Attributes in the the Custom HTML tag can be configured
to
be 'watched', so that when we change them programatically, they create a rerender of the tag.
This site has a variety of Custom HTML tags, in a headless WordPress site. Combined with added
functionality of using the Intersection Observer API, (lazy loading), and IndexedDB,( the browser's own
database), to store posts locally
for offline and near instant access, we can create a WP site that has all the modern day power of JS
Frameworks, yet code
our page semantically.
By making use of certain events in the browser like page loaded or teh Browser Idel API, we can manage
our local database of posts so that data is accessed locally rather than through network requests.
Additionaly. the use of a Service Worker JS file, we can create a local web server, as it were, to
increase our offline and near instant page load.
- WP Plugin Boilerplate
This is a YouTube video series with GitHub repo and pdf guide to set up the WordPress Plugin Boilerplate
along
with the following included in the app:
- Create admin pages links.
- Create a custom MySQL table and have some pre-made CRUD operations.
- Create a REST API. (I have an online course 'WP REST API for AJAX pages and forms', that is
also given
to attendees at WordCamp and MeetUp workshops and talks.)
- Create an admin form with image uploader that uses the REST API and WP-Nonce for security to upload
events
to
the custom
MySQL table.
- Admin list pages of events with edit and delete facilities using REST API.
- Creating of blank pages as a placeholder for demo JS, React and Svelte apps, using
page_template_filter to
have the HTML
within the plugin rather than a custom page, thereby making the plugin and its pages self-contained.
- wp-forms.co.uk
Forms are a converstation with users. The base form has live validation, AJAX requests and error
handling and styling. Use of other JS libraries such as RxJS Streams, React, and Svelte are also used to
give the best
possible user and developer experience.
- Online
Courses lists
a number of courses on
Udemy, (PWA or Offline Websites, WP REST API for AJAX Forms and Pages) as well as Web Components on YouTube.