Bio

👋 I'm Brock Whittaker and I'm a product engineer & designer working and living in San Francisco.

I was the founding engineer at two startups and built tech used by dozens of companies ranging from multi-variate testing and elastic price segmentation, to building software and processes with HIPAA compliance for many of the largest tech companies.

Contact me at whittakerbrock@gmail.com.

Recent Experience

Available on Request

Currently working on a contract to build a mobile web application with a strong focus on creating a refined design.

Sparrow Site

Built tech from the ground up, including all data intake, processing, automation steps such as auto-PDF generation, and HIPAA-level compliance for sensitive medical records.

Portico Pay Site

Built a platform for multi-variate testing, price differentiation, and one-click micropayments across the web for publishers like The San Francisco Chronicle.

Zulip Chat Site

A software engineer working on scaling front-end components to work for organizations with thousands of users.

Experiments

I've been interested in the markets for longer than I’ve been interested in programming; in fact it was the desire to better model equities that forced me to write my first line of code in PHP six years ago.

One thing that eluded me for a while is the narrative around Implied Volatility – a phenonemon that only presented itself after the black swan crash of 1987 where the markets went down double digit percentages.

The effect appears to be created by options buyers in the market that are willing to pay more for options far out-of-the-money and far in-the-money, however the concept of flat volatility space is dependent on the concept that market returns are normally distributed – which as of the crash in 1987 we know they are not.

If we know markets are abnormal, and we can more closely model returns than with a normal distribution, we should in theory be able to model those returns to find the effective Black-Scholes values, and find an implied volatility curve for a given option.

The what: I created a better model for equity returns and applied it to create implied volatility curves for equities to find option mispricings on Robinhood.

The result: A much better guide for quickly selecting options strategies that gives me a market neutral advantage on options that are over/underpriced by the market.

Click here to read a more in-depth overview.

Computers are excellent at perfection — they excel at doing exactly what they're told. With standard font support on computers, we've become constrained by the perfection of our computers’ typesetting ability. Before the NYC Subway signs were digitized and developed using Helvetica, they were made by hand with a mélange of fonts like Akzidenz Grotesk and set with far less precision than any modern program. This demo has been created using a descendent of Akzidenz Grotesk to best resemble the feel of the 1970's NYC subway signs.

The what: I created a way to deconstruct fonts as their constituent SVG characters, where I re-set them using any built in kerning information (or not!) and a collection of important esoterics like horiz-adv-x and cap-height.

The result: A subtly more “human” font display. Similar to the result of an unskilled typographer setting letters on a poster. This can also be used to open the door to SVG-level animations – but on text. Inspect element on the graphic demo to see how it's created.

59 St-Lexington Av Station
N
Q
R
W
S
Port Authority
42 Street Station
Uptown & Queens
Above is a live demo of the routine in action.

While programming a markov chain backtesting strategy I was holding millions of booleans. This was in the 2010s, so while the optimization was not worth making as I wasn't running this on my grandpa's Commodore 64, I was curious about the speed tradeoff and memory savings you could save by converting an array of booleans to a bit-flag array.

The what: I created a bit-flag array using 32-bit fixed arrays in javascript.

The result: A structure that was 98.7% smaller than an array of booleans, and 30% faster than a dynamically allocated array.

Click here to see the github repo.