Josh Johnson

Notes from JJ

Week 06 July 19, 2026 · 4 min read

HCP Targeting, WebGL Shaders, and Project Launches

Dynamic rep lists in Veeva, and the math of live GPU shaders

This week, we wrap up a six-week sequence with a look at HCP targeting models in data engineering and how playing with WebGL math on the side is opening up new UI design ideas.

Pharma Data Strategy: Dynamic HCP Targeting

In pharmaceutical marketing, you don't just target every doctor. You use predictive modeling to identify healthcare providers who are most likely to treat patients within your therapeutic area. The challenge is keeping these targeting lists dynamic.

Typically, sales ops teams generate targeting lists once a quarter, leaving field representatives with stale targets. This week, I've been setting up a pipeline that pulls weekly medical claims data, calculates rolling patient volumes, and dynamically updates rep target lists in Veeva CRM. Dynamic targeting means the field force is always aligned with the highest-opportunity accounts.

Side Projects: Controlling Shaders in Motion

On my side sandbox, Motion, I've been exploring how user inputs can dynamically affect GPU-compiled WebGL shaders.

Normally, shaders are static formulas that run on the GPU. By wiring up slider controls and mouse position trackers through a custom JavaScript front-end, I've made it possible to adjust shader variables (uniforms) in real-time. The result is fluid, organic animations that ripple and change color based on cursor coordinates.

Builder Life: The Magic of Math in Code

Writing shaders forces you to think in pure math rather than standard logic blocks. There are no if/else statements in high-performance fragment shaders; there is only math. Stepping outside of standard relational databases to solve visual problems with linear algebra has been a great way to keep my engineering mind sharp.

— Josh