- Jim Kang: Resume
-
To view or more or less information, use the
slider above.
I've been a software developer since the year 2000. You can reach me at
jimkang@fastmail.com.
-
- Work Experience
-
-
-
-
- Spotify
- May 2016 to Nov. 2020, Experienced Developer
-
- Using vanilla JavaScript, built a kit that allows
non-developers (designers and researchers) to author
full-featured voice prototypes that parse user
speech, ask questions, and play music. Dozens of
prototypes were built and used in user tests every two weeks.
- Built a data pipeline that composes and renders
thousands of
playlist covers each day based on the current
contents of the This
Is playlists using Python, Docker, Node, and
headless Chrome.
- Built web apps, Chrome extensions, and Electron apps
for music content prototypes and evaluating and editing algorithmically-generated content.
- Built promotional web sites for features (e.g. Time
Capsule).
-
Wrote design documents for experimental features for the Spotify iOS client and built and A/B
tested them.
-
Wrote design documents, built prototypes, and designed and administered unsupervised user tests
for experimental features.
- Built voice-activated speaker prototypes with Node and the Alexa Skill
Kit.
- Designed and administered Qualtrics surveys to gather user data to inform
the design of an
algorithmic playlist.
-
- Harvard Department of Continuing Education
- June 2015 to April 2016, Senior Software Engineer
-
Made modifications to an open source video app written in JavaScript.
-
- Childcare
- February 2015 to May 2015
- Spent time at home taking care of my infant son. (The PayPal Boston office was laid
off.)
-
- PayPal
- February 2014 to January 2015, Software Engineer
- Built features and fixed bugs on Node backend and Angular front end of the PayPal Shop site, which
served coupons from various PayPal partners to hundreds of thousands of people per day.
- Followed test-driven development and pair programming practices. Prioritized mobile web
functionality.
-
- NPR
- June 2013 to February 2014
- Added OAuth to the Composer API Node server.
- Wrote the first automated tests for the API server.
- Built features for Composer, a browser app used by over 200 NPR member stations used
it to add program
schedules to their web sites and keep track of music they
played, as part of a small Kanban-driven team.
-
- Ghost Crab Workshop
- April 2012 to May 2012
- Started a one-person indie development company.
- Designed and developed Jotunheim, a journal and social media app for iOS.
- Consulted on a product built in Unity 3D.
-
- Modo Labs
- July 2010 to March 2012, Senior Developer
- Built features and fixed bugs in Objective-C for university clients' iOS apps (e.g. Harvard and MIT apps).
- Maintained PHP back end and HTML/CSS mobile web sites.
-
- Voter Activation Network
- April 2009 to June 2010, Developer
- Contributed to MiniVAN
Touch iPhone app in Objective-C and SQL and server side support for it in VB .NET.
- Wrote a WYSIWYG form editor in JavaScript with jQuery.
-
- Obama for America
- 2008, Data Fellow
- Analyzed voter file records using MySQL and Perl to help make decisions about canvassing targets.
- Wrote Perl and Greasemonkey scripts to free up staffers that were spending whole
days doing tasks
manually.
- Helped to win Indiana, which had not been won by the Democratic Party since 1964.
- 2008-2021 experience available on jimkang.com/resume.
-
- GN Resound
- 2004 to 2008, Senior Software Developer
- Worked on a Windows hearing aid adjustment app code in C++, C#, and SQL.
- Rapidly prototyped new UI designs in Flash.
- Wrote a data graphing feature that visualized hearing device data.
-
- InstallShield
- 2000 to 2004, Software Developer
- Worked in C++ on IDEs that let users create Windows software installation programs.
- Worked on multiple large-scale, short time-frame efforts to merge and
integrate products into one
another.
-
- Projects
-
- Interactive explanation of quadtrees
- jimkang.com/quadtreevis
-
- Step-by-step explanation of quadtrees that lets learners get hands-on.
- Written in JavaScript using D3.
-
- Channel vocoder walkthrough
- jimkang.com/channel-vocoder
-
- Step-by-step explanation of how the original channel vocoder worked.
- Written in JavaScript using the Web Audio API and D3.
-
- annoy-node
- github.com/jimkang/annoy-node
-
- Bindings that allow Annoy, a C++ library used in machine learning for finding nearest neighbors in
high-dimension vector spaces, to be used in Node.
- Written in C++ and JavaScript.
-
-
-
- Education
-
- Recurse Center
- August 2021 to September 2021
- Studied audio DSP (digital signal processing). Participated in and lead study groups and pair
programming sessions.
-
- Northwestern University, Evanston, IL.
- 1995-1999
- BS in Computer Science.
-
- Skills
-
- JavaScript
- Node.js
- Test-driven development
- Modular architecture
- LevelDB
- CSS
- Browserify
- Objective-C
- Git, GitFlow
- Tape, Mocha
- D3
- C++
- SQL
- HTML
- Linux admin
- Docker
- BigQuery
- AWS Lambda
- Alexa Skills Kit
- Product design
- TypeScript
- Svelte
- Rollup
- Web audio
- Puppeteer, Playwright
- …and more!