All Projects and Articles

Blog posts

From a Funhouse of Mirrors: Finding Your Way in the World

8 July 2021

There are two mirrors that everyone holds. One mirror is depicting of admiration and encouragement. And the other mirror is a distorted echo of judgment and critique.

Read →

Working smarter with 36-minute playlists with frequent breaks

24 June 2021

From personal experience, it’s easy to recognize that listening to music while I work is enjoyable. But I’ve recently experimented with how music can help me focus on my goals.

Read →

What is a Wyoming DAO?

1 June 2021

(and how to form one for yourself.)

Read →

Where to earn APY for your Cryptocurrencies (May 2021)

13 May 2021

3 simple methods of earning cryptocurrencies rewards

Read →

Understand Cardano Native tokens

25 April 2021

A practical breakdown of multi-asset tokens

Read →

LinkedOut

23 March 2021

Looking for me on LinkedIn? Well, good news - it looks like you found me, anyway!

Read →

How to plan your day so your creativity and focus will flourish

12 August 2020

The best way to genuinely improve mental performance is to understand the natural limits of our brain. By paying attention to your habits, you can learn to cultivate the mind to create your best work.

Read →

Install Notion.so as an App on Chromium-Based Browsers

4 August 2020

Recently, I've been using an innovative tool for keeping me focused on my daily tasks and priorities (along with a lot of browser add-ons for writing).

Read →

What do you ask yourself during growth in daily life?

27 December 2019

Worry and doubt will surely strike at the worst of times. And it’s usually impossible to catch at the moment — it’s not until I’ve started acting and reacting that I realize that stress drives my behaviors or words.

Read →

Living through the social and economic factors of despair

26 December 2019

They will tell you, "someone’s sitting in the shade today because someone planted a tree a long time ago".

Read →

Why I practice time-in

24 December 2019

Each day, I try to spend at least 1-hour of time to myself in moments I've learned to call Time-in.

Read →

Unfolding the Reasons Behind An Illogical Action

11 June 2019

When I first heard this, I didn't take it to heart and didn't put much time into trying to understand it. With enough time, I've come to understand what she was trying to tell me – if anything, I hope I can help someone suffering from these ruminating thoughts.

Read →

Buying yourself little rewards to keep you going

26 February 2019

How does your routine bring motivation in your daily life, your goals, and fuel your desires?

Read →

Your Ego's End is an Honest Start

18 October 2018

I think it's a good habit to keep yourself grounded; occasionally it's helpful to let go. Allowing yourself to disassociate, you can see thoughts & themes for what they are—separate from your defenses.

Read →

Work Projects

DecentFinance.club

1 February 2020

I host a small community powered by matrix.org.

Read →

Storing STC results using JavaScript – Ookla Speedtest Custom

5 March 2019

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.

Read →

Unable to verify HTTPS server configuration – Ookla Speedtest Custom

10 January 2019

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.

Read →

Using browser networking tools to troubleshoot client-side errors – Ookla Speedtest Custom

16 February 2018

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.

Read →

Hosting the HTML5 front-end Test UI on your site – Ookla Speedtest Custom

21 December 2017

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.

Read →

Updating your NetGauge site to host the STC test – Ookla Speedtest Custom

10 December 2017

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.

Read →

User Migration - Ookla Speedtest Custom

9 December 2017

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.

Read →

How Do I Upgrade to Speedtest Custom from NetGauge? – Ookla Speedtest Custom

9 December 2017

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.

Read →

Compatibility of your existing NetGauge OoklaServer Daemon – Ookla Speedtest Custom

6 December 2017

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.

Read →

Passing Test Results To The Browser – Ookla Speedtest Custom

1 December 2017

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.

Read →

Ensuring your OoklaServer allows Speedtest Custom domains – Ookla Speedtest Custom

27 November 2017

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.

Read →

Setting up your Test URL (Pending Subdomain Setup) – Ookla Speedtest Custom

18 September 2017

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.

Read →

Burger Time! (CSS Only)

30 January 2017

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!

Read →

Beta Release Notes - NinjaTrader 8 Help Guide

9 January 2017

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.

Read →

Arthur's Nightlight

29 November 2016

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

Read →

Canvas Dots on Mouse Events

18 November 2016

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.

Read →

Google Inbox Sun and Clouds

16 November 2016

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

Read →

Working with Pixel Coordinates - NinjaTrader 8 Help Guide

1 June 2016

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.

Read →

Working with Brushes - NinjaTrader 8 Help Guide

1 June 2016

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.

Read →

Using SharpDX for Custom Chart Rendering - NinjaTrader 8 Help Guide

1 June 2016

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.

Read →

Video Library - NinjaTrader 8 Help Guide

1 June 2016

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.

Read →

SuperDOM Column - NinjaTrader 8 Help Guide

1 June 2016

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.

Read →

NinjaScript Lifecycle - NinjaTrader 8 Help Guide

1 June 2016

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.

Read →

Software Product Management - NinjaTrader 8 Beta and Major Release

1 June 2016

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.

Read →

Share Service - NinjaTrader 8 Help Guide

1 June 2016

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.

Read →

Multi-Threading Consideration for NinjaScript - NinjaTrader 8 Help Guide

1 June 2016

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.

Read →

NinjaScript Best Practices - NinjaTrader 8 Help Guide

1 June 2016

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.

Read →

Content Management - NinjaTrader 8 Help Guide

1 June 2016

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.

Read →

CME Reduces Tick Size of EUR/USD Futures - NinjaTrader Blog

8 January 2016

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.

Read →

Drawing Tools - NinjaTrader 8 Help Guide

28 May 2015

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.

Read →

Code Breaking Changes - NinjaTrader 8 Help Guide

28 May 2015

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.

Read →

Attach to Indicator - NinjaTrader 8 Help Guide

28 May 2015

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.

Read →