Matthew's Work Examples

All Projects

Decent Fintech Inc#fintech
DecentFinance.club

I host a small community powered by matrix.org.

See details →
Project example
Storing STC results using JavaScript – Ookla Speedtest Custom

To help with proving a popular use case, we provided a code sample written in PHP to help demonstrate how data could be exchanged from JavaScript to a SQL database.

See details →
Project example
Visit on:ookla.com
Unable to verify HTTPS server configuration – Ookla Speedtest Custom

To support the latest browser security protocols, it was important that vendors follow guidelines to ensure their server networking software could pass the routine security monitoring watchdog process developed by Ookla.

See details →
Project example
Visit on:ookla.com
Ookla (Speedtest.net)#technical-writing
Using browser networking tools to troubleshoot client-side errors – Ookla Speedtest Custom

As Ookla release the beta version of their HTML5 client, many of their customers (networking engineers) had trouble understanding how to debug and troubleshoot unexpected results. We used this opportunity to teach these users about the built-in DevTool's Networking features that are often overlooked.

See details →
Project example
Visit on:ookla.com
Hosting the HTML5 front-end Test UI on your site – Ookla Speedtest Custom

Since many of Ookla's customers were new to the concept of using a iframe hosted from another web server, we needed to build a template to assist users with building their company web pages that displayed the test content in an HTML5 friendly manner.

See details →
Project example
Visit on:ookla.com
Updating your NetGauge site to host the STC test – Ookla Speedtest Custom

The client-side technology used to execute and host a test on a customer's website was completely rehauled and required a different approach to get similar results on the client's site. We worked to make this process as simple as possible for users who were used to a more complicated approach to hosting the test engine.

See details →
Project example
Visit on:ookla.com
How Do I Upgrade to Speedtest Custom from NetGauge? – Ookla Speedtest Custom

Many of Ookla's licensed vendors were using the legacy Flash technology that was quickly becoming discontinued and blocked by security enhancements to major browsers. Our major effort involved helping ISPs and other networking vendors understand the new technology involved and provided high-level tutorials to help ensure that their plan to update their website would go as smoothly as possible.

See details →
Project example
Visit on:ookla.com
Ookla (Speedtest.net)#technical-writing
User Migration - Ookla Speedtest Custom

Ookla—the team behind Speedtest.net—also offers an enterprise version of their flagship software used to measure network performance between a client and server. During the transition from legacy Flash protocols to new HTML5/JavaScript APIs, I lead a small team of technical service contractors to assist with the increased workload from the transition.

See details →
Project example
Visit on:ookla.com
Compatibility of your existing NetGauge OoklaServer Daemon – Ookla Speedtest Custom

To ensure network software was compatible with the latest JavaScript client technology, Ookla's database of licensed vendors needed to update the server-side component hosted in their network. Since it was not always possible to remotely verify each instance due to vendor side networking security limitations, we provided a tutorial to help manually check the version on the server.

See details →
Project example
Visit on:ookla.com
Passing Test Results To The Browser – Ookla Speedtest Custom

Ookla's Speedtest Custom provided automatic storage of test results hosted in the online reporting dashboard for each license, however sometimes users needed to capture more information than we provided by the licensed features. To help with customer use cases, the JavaScript client leveraged the browser's Window.postMessage() method to enable safe cross-origin communication between the client's test instance and their self-hosted desired database.

See details →
Project example
Visit on:ookla.com
Ensuring your OoklaServer allows Speedtest Custom domains – Ookla Speedtest Custom

The JavaScript client used with Ookla's Speedtest Custom often required updating server side configurations to help ensure that resources accepted or rejected connections from certain domains and that connections were testing using the preferred API as optimized for reach browser.

See details →
Project example
Visit on:ookla.com
Setting up your Test URL (Pending Subdomain Setup) – Ookla Speedtest Custom

Ookla's Speedtest Custom was hosted on speedtestcustom.com as a service to help licensed vendors to configure and eventually reference through an HTML5 iframe on their website. This required every test instance to define a custom subdomain that worked as their licensed Test URL. As this detail was a major change for users used to the self-hosted legacy technology, it required a guide to help vendors understand the purpose of the major step in setting up their process.

See details →
Project example
Visit on:ookla.com
Burger Time! (CSS Only)

Not sure why this is the first thing I thought of when I saw a daily CSS challenge on the topic of "hamburgers", but building this demo using only CSS compontents brought back a lot of fond memories!

See details →
Project example
Visit on:codepen.com
NinjaTrader LLC#fintech
Beta Release Notes - NinjaTrader 8 Help Guide

Through the two-year beta release cycle of NinjaTrader 8, I was responsible for compiling and writing release notes that described the changes for each iteration up until the final release candidate.

See details →
Project example
Arthur's Nightlight

A robot designed with CSS only that illuminates the page when powered on.

See details →
Project example
Visit on:codepen.io
Canvas Dots on Mouse Events

Just a simple demo using the browser Canvas API used to draw graphics on a web page via JavaScript. Dots are created and highlighted by interacting with mouse (or touch) events.

See details →
Project example
Visit on:codepen.com
Google Inbox Sun and Clouds

An animated version of the image used in Google's Inbox zero inbox layout.

See details →
Project example
Visit on:codepen.com
NinjaTrader LLC#fintech
Content Management - NinjaTrader 8 Help Guide

As a Product Manager for NinjaTrader, one of my core day to day responsibilities was maintaining the online help content aimed at an audience of both financial day traders and C# developers.

See details →
Project example
NinjaTrader LLC#fintech
Multi-Threading Consideration for NinjaScript - NinjaTrader 8 Help Guide

NinjaScript was event-driven and multi-threaded, which meant that 3rd party C# developers needed to be aware of how to handle programming scenarios that sometimes needed to be dispatched between parallel threads.

See details →
Project example
NinjaTrader LLC#fintech
NinjaScript Best Practices - NinjaTrader 8 Help Guide

Over 6-years of work supporting C# developers and the end-users of custom scripts, I accumulated a nice collection of tribal knowledge. Sometimes, the solutions to common scenarios were not always clear to end-users how to implement custom scripts. To ensure the best performance and maintenance for their users, one of my last assignments for NinjaTrader was compiling a list of common scenarios, gotchas, and workarounds to help optimize the code distributed through the ecosystem.

See details →
Project example
NinjaTrader LLC#fintech
NinjaScript Lifecycle - NinjaTrader 8 Help Guide

NinjaTrader provided a custom classes of programming interfaces that were given low-level access to core software objects to make it easy to develop custom add-ons, yet were wrapped in abstract layers that were sometimes not so easy to understand in common debug scenarios. To help with the learning curve, I worked with the team of product managers and engineers to help ensure that 3rd party developers understood how each instance of their custom NinjaScript types would be expected to be handled by core NinjaTrader platform.

See details →
Project example
NinjaTrader LLC#fintech
Share Service - NinjaTrader 8 Help Guide

NinjaTrader version 8 introduced a new class of objects that could be used to communicate to 3rd party APIs like Twitter, Facebook, or custom made to meet customer use cases. This was the API Reference that enabled a developer to start using this group of methods and types.

See details →
Project example
NinjaTrader LLC#fintech
Software Product Management - NinjaTrader 8 Beta and Major Release

I was promoted to Product Manager after working as a technical support lead for the NinjaTrader platform. When I was promoted, much of the early planning and specification was already completed, so I was brought on to help with the engineering implementation, user acceptance testing, and documentation up until the first major release of NinjaTrader 8 in November of 2016.

See details →
Project example
NinjaTrader LLC#fintech
SuperDOM Column - NinjaTrader 8 Help Guide

A flagship order entry feature for day traders was enhanced to allow users to write custom add-ons using C# scripts that would interact with the WPF layouts provided by NinjaTrader. This is the API reference documentation to allow a user to start using these types.

See details →
Project example
NinjaTrader LLC#fintech#front-end
Using SharpDX for Custom Chart Rendering - NinjaTrader 8 Help Guide

NinjaTrader 8 Charts used a .NET Library called SharpDX that worked with the native Microsoft DirectX API. This was a major overhaul from the previously used GDI namespace and in efforts to help provide better for support for custom chart rendering, I was tasked with designing a tutorial to help users understand the new information that came along with the updated requirements.

See details →
Project example
NinjaTrader LLC#fintech#front-end
Working with Brushes - NinjaTrader 8 Help Guide

NinjaTrader used two different APIs for rending UI components, depending on the performance required. This often caused confusion between the types of .NET objects used for certain tasks, and also required a little bit of guidance to help developers understand some of the multi-threaded implications of using certain types across the life cycle of each object.

See details →
Project example
NinjaTrader LLC#fintech
Video Library - NinjaTrader 8 Help Guide

One of the primary goals of the new NinjaTrader 8 help guide was to make it media-rich and user-friendly. Where possible, we tried to include videos to help users understand software operation concepts and tutorials. I was involved with planning and writing many of the scripts that were used in our collection of videos, and was also responsible for updating the help guide with the video content as each new video was released. This page shows an overview list of all the videos available through the help guide.

See details →
Project example
NinjaTrader LLC#fintech#front-end
Working with Pixel Coordinates - NinjaTrader 8 Help Guide

To help support multiple device layouts and resolutions, 3rd party developers needed to be aware of the discrepancies that can occur between pixels and devices, as well as how to correct and prevent these issues from arising.

See details →
Project example
NinjaTrader LLC#fintech
CME Reduces Tick Size of EUR/USD Futures - NinjaTrader Blog

Between my time as a technical support lead and product manager, it was often my job to help catch wide-spread issues before they caused issues for the ecosystem of users. We often authored In Product Advisories that were also re-hosted on the NinjaTrader blog to assist in these scenarios. This is one example of the many advisories that I helped write and edit.

See details →
Project example
Attach to Indicator - NinjaTrader 8 Help Guide

One of the major enhancements to NinjaTrader 8 was the ability to attach a live market order to be updated automatically by a 3rd party script (without needing to know how to program). This was a simple operation guide to introduce users to the platform features.

See details →
Project example
NinjaTrader LLC#fintech#front-end
Drawing Tools - NinjaTrader 8 Help Guide

When looking at technical financial data, it's common to need to annotate certain data points on the chart that can be saved and shared for others - we took this approach one step further and extended access to our class of "Drawing Tools" to allow users to develop unique drawing tools, building off the concepts we designed to implement the standard set of tools that came with the platform. This was the API Reference that enabled a developer to start using this group of methods and types.

See details →
Project example
NinjaTrader LLC#fintech
Code Breaking Changes - NinjaTrader 8 Help Guide

One of my major assignments as a Product Manager for NinjaTrader was discovering and documenting many of the changes our community of 3rd party developers needed to use to convert their C# NinjaScript types from Version 7 to Version 8.

See details →
Project example