Dear Analyst #50: Walking through a VBA script for trading billions of dollars worth of derivatives with Shawn Wang

This little podcast/newsletter started as a little experiment last year. I never thought I would make it to episode number 50, but here we are! Thank you to the few of you out there who listen/read my ramblings about spreadsheets.

I decided to give you all a break and invite my first guest to the podcast: Shawn Wang (aka @swyx). Shawn currently works in developer experience at AWS, but has a really diverse background (check out his site to learn more). I’ve mentioned Shawn in previous episodes (25 and 49) and was honored he agreed to be the first guest on Dear Analyst. We dig into a variety of topics including negotiating your salary, Javascript frameworks, creating, and whatever else tickled my fancy.

Shawn Wang (source:

Becoming a Jedi

I was particularly interested in a 4,000-line Excel VBA script he wrote while working as a trader in a previous job. You can learn a lot about someone from looking at their code, and that’s exactly what we did during this episode. Shawn was kind enough to share a VBA script he built back in 2012 for his team to price billions dollars worth of derivatives. I honestly don’t understand 90% of this script, but Shawn walked through a lot of the derivative concepts he had to translate into this VBA script. You can see some of his thoughts about this script in the Tweet thread below:

I think it’s amazing that his bank relied on traders using this homegrown script to price everything from interest rates to mortgages.

One of the main takeaways from our walkthrough of this script is that the code isn’t pretty. Shawn had a problem that he needed to solve, picked up the tool that could solve that problem, and started hacking away at the solution. Shawn shared a story from his senior trader at the time on building tools for yourself:

One of the rights of passage for becoming a Jedi is building a light saber. Once you have the light saber, you just use it, and stop building it.

—Shawn Wang

For the benefit of other traders out there, Shawn also believes in learning in public. Releasing this script is just one example of that. By producing content and acknowledging gaps in your knowledge, you’ll learn faster than being a “lurker,” as Shawn puts it.

No-code is a lie

We talked a bit about an article he wrote called No code is a lie, and how programmers sometimes need to get over themselves. Programmers may get caught up in the style of their code, but the end-user just cares about whether the thing works and solves their problem.

After finance, Shawn moved from Excel and VBA scripts to Haskell, Python, and Javascript. He still has a soft spot for Excel, however. With Excel, you have your database and user interface right in front of you. This not only gives people an easy way to create, but makes creation more inclusive.

Excel is creation over code. I don’t define myself as coding, I define myself creating.

—Shawn Wang

Taming the Javascript community

Shawn got really involved with the ReactJS community and eventually became one of the moderators of the subreddit after Dan Abramov asked him to help with the community.

Shawn recently stepped down from moderating the community as he started coding with Svelte, another Javascript framework. In terms of moving from community to community, Shawn made an interesting point on encouraging renewal in communities. Mods, leaders, managers, and political figures should have limited terms to encourage innovation and different perspectives. Plus, I think when you are new to a community, you get a chance to learn from the ground up from others who are more experienced. Once you’re at the top, it’s time to find a new place and rinse, lather, and repeat.

Getting $50,000 added to his salary

We both talked about our interests in Haseeb Qureshi’s blog posts on salary negotiation. If you were a developer 4-5 years ago, you most likely came across Haseeb’s posts because it shows step-by-step how Haseeb went from finishing a coding bootcamp to getting a 6-figure salary at Airbnb.

Shawn also cited Patrick McKenzie’s post and Josh Doody’s guide on salary negotiation as good resources. I remember when I was interviewing, I relied on Haseeb’s concepts to get me through the negotiation process. Long story short? You should always negotiate.

The fallacy of measuring developer advocacy programs

I’ve read various blog posts and listened to podcasts about this subject, so figured I’d ask Shawn what he thinks about measuring developer advocacy efforts since he works at one of the largest companies on the planet. Rest assured! His team has not come up with the perfect formula either. Guess where they keep track of all their speaking engagements and content? You guessed it: in a spreadsheet.

Shawn mentioned one startup called Orbit that is trying to crack this nut. They dub themselves as the “operating system of vibrant developer communities.” Their orbit model is a bit cheesy but does attempt to quantify someone’s engagement in a community:

  • Love is a member’s level of engagement and activity in the community.
  • Reach is a measure of a community member’s sphere of influence.
  • Gravity is the attractive force of a community that acts to retain existing members and attract new ones.
  • Orbit levels are a practical tool for member segmentation and used to design different programs for each level of the community.

I’m currently working on a similar program and commend them on tackling this problem :).

Other projects

Shawn finally shared what he’s working on these days:

  • Wrote a book called Coding Career Handbook and maintaining a community for that
  • Growing the Svelte society on Twitter
  • Angel investing
  • Scouting for a VC fund
  • Writing on his blog

He talked about being disappointed in his writing and I completely agree with that sentiment. Writing these posts definitely take time but I always feel like more time can be put into the writing to make it more clear, structured, and precise. Having said that, I’ll take a page out of Shawn’s notebook and #LearInPublic 😀 .