Email: redacted (not currently looking via recruiters)
Ruby on Rails developer, author and speaker;
data science and visualization;
Full-Stack Web Developer;
Deep C, OS and systems experience
Shopify, Senior Staff Software Engineer
- Co-author of "YJIT: A Basic Block Versioning JIT Compiler for CRuby" for VMIL '21
- Primary author of yjit-metrics for benchmarking and reporting
- Built speed.yjit.org for continuous benchmarking, latest benchmarks and graphs, etc.
- Ruby committer; worked heavily on CRuby internals since YJIT is a fork of CRuby (a.k.a. MRI)
Entrepreneur/Founder, Codefol.io, Inverness, Scotland - 2013 to present
- Wrote and sell Rebuilding Rails, an ebook and video class on understanding Ruby on Rails
by building a Rails-like fully functional Ruby MVC framework.
- Wrote and sell Mastering Software Technique, an ebook on improving practical coding
skill via a learning and practice regimen from a nontechnical role with a longer history
- Other contract consulting work, esp. related to SkotOS
- Wrote articles, email, marketing and everything else; Did all development, customer support, operations and other supporting work
Ruby Fellow, AppFolio, Fremont, CA - May 2016 - Dec 2019
- My Ruby benchmarks were repeatedly cited by Ruby's creator as one of the official measures of progress toward Ruby 3x3
- Wrote and maintained the Rails Ruby Bench and Rails Simpler Bench benchmarks for the core Ruby language
- Spoke at Ruby conferences, including RubyKaigi (2017,2018,2019), RailsConf, Southeast Ruby, RubyConf (USA), RubyConf Malaysia and others
- Wrote over 40 articles about Ruby configuration, performance and optimization at engineering.appfolio.com; frequently cited in Ruby Weekly
Architect and Principal Engineer, Daqri, Sunnyvale, CA - Mar 2015 - May 2016
- Architect and Principal Engineer for 4DStudio, an Augmented Reality scene design interface
- Served as Team Lead, Infrastructure
- Separated and designed smaller services from an initial monolith
- Reliability and DevOps/SRE work to improve overall service
- Mentored engineers, gave tech talks, recorded tech videos.
- Ruby, Rails, Git, Application Servers, Puppet
Lead Rubyist, OnLive, Mountain View, CA - Mar 2013 - Feb 2015
- Lead of Analytics - archaeology, maintenance,
extension and replacement of a neglected Java/Esper/MySQL analytics system.
- Acted as Principal Ruby Engineer company-wide, building tools and providing training and mentoring.
- Served as team lead and manager, analytics team
- Replaced ancient Adobe Air app and Pentaho Reports server with a
new, much smaller Ruby on Rails analytics dashboard.
- Ruby and Cassandra architect for new HTTP platform infrastructure.
- Mentored engineers, gave tech talks, wrote and socialized eng blog.
- Wrote tools and procedures for SVN-to-Git transition.
- Transitioned Rails apps for DevOps to new tools and Rails versions
- Ruby, Cassandra, svn, Git, Kafka, Coral8, Pentaho, Java, MySQL,
Esper, InfoBright, more
Tools and Infrastructure Engineer, Ooyala, Mountain View, CA - Sep 2011 - Mar 2013
- Co-architect, Hastur
metrics & monitoring system
- Wrote and maintained tools for metrics, monitoring, dark deploys, support
engineering, logging, code review, various
- Other infrastructure tools including documentation, storage and query.
- Rails, Cassandra, ZeroMQ, git, Hadoop, various
Analytics Software Engineer, Ooyala, Mountain View, CA - Mar 2011 - Sep 2011
- Wrote and maintained Hadoop, Cassandra and MySQL analytics system
- Co-built centralized logging accumulation system, 33k lines/sec
- Wrote prototype for analyzing playback errors and drilling into them
- Wrote and maintained player, mapreduce and UI code for analytics
- Acted as general Rails/Ruby/RVM/rbenv/Bundler/git guru and mentor
- Ruby on Rails, Hadoop, Cassandra, Sinatra, MySQL, Scope, Shoulda, git, various
Assistant Consulting Professor, Carnegie Mellon University West, Mountain View, CA - 2011-2012
- Tutored CMU Masters of Software Engineering students in Ruby on Rails
- Part-time, simultaneous with Ooyala. Rails, git, Devise, various tools
Software Engineer, On-Site.com, Mountain View, CA - Oct 2009 - Mar 2011
- Wrote and maintained business reports in Ruby on Rails
- Wrote and maintained infrastructure and models in Java and JRuby
- Transitioned On-Site to using Rails migrations and other best practices
- Added MongoDB database and reporting infrastructure for site metrics
- Gave a talk
about how we use JRuby at On-Site
- JRuby, Ruby on Rails, Java, JSP, MongoDB, DB2, RSpec, jQuery,
Software Engineer, ACCESS Systems Americas, Sunnyvale, CA - May 2007 - Oct 2009
- Architect and co-implementor, 'Force' OpenGL UI server for ALP 3.0
- Transitioned large body of apps to new Force UI framework
- Guided customers in writing apps and graphics for Force
- Worked with Clutter OSS project, submitted patches
- UI refresh work ('tiger team'), ALP 2.x
- Extended and maintained GTK+ apps and middleware for ALP 2.x
- C/C++, Perl, 32-bit embedded Linux, ALP (ACCESS Linux Platform)
Software Engineer, PeakStream, Inc. Redwood City, CA - Feb 2006 - April 2007
- Wrote, upgraded & maintained Python code-generation framework for stream processing
- Added code-reuse sections to optimize recompiles for stream processing
- Deployed Win32 job queueing system based on Platform Software's LSF
- C/C++, Python, Perl, Linux, Win32, Visual Studio
Software Engineer, Sharpcast, Inc. Palo Alto, CA - August 2005 - January 2006
- Implemented new Win32 GUI photo viewing application for desktop and mobile
- Wrote image thumbnail and conversion server for Linux and Win32
- Wrote eval apps for JPEG2000 libraries incl. Kakadu and LuraTech
- Wrote multi-format image loading and manipulation libraries based on Kakadu
- Ported several libraries, incl. parts of ACE and STLport to WinCE platforms
- C++, Win32 MFC, Visual Studio, PocketPC, Windows Mobile
Software Engineer, Tapwave, Inc. Mountain View, CA - June 2004 - July 2005
- Ported FFMPEG libraries to PalmOS
- Integrated Kinoma video framework into PalmOS applications
- Implemented LcdOverlay hardware acceleration library for TapWave devices
- C, Win32, Visual Studio, ARM ADS toolsuite, PalmOS, Linux
Software Engineer, NVidia, Inc. Santa Clara, CA - April 2003 - March 2004
- Maintainer for IA64 Linux graphics drivers; upgrades to new cards and drivers
- Linux/ia32 desktop graphics driver maintenance and debugging work
- Worked on non-X11 embedded Linux driver libraries, tools and setup
- Linux (iTanium and x86), Win32, gcc, vtune and icc tools
Software Engineer, Broadcom, Inc. San Jose, CA - March 2002 - April 2003
- Worked on Porting Interface code for bcm97115, 7110, and other chips on CC, CGMS, WSS and TeleText formats, with HDTV support. Linux & Win32 platforms, C. Some documentation tool testing using Perl.
- Win32, Visual Studio, C
OS Software Engineer, Palm Inc. Santa Clara, CA - March 2000 - March 2002
- PalmOS 'Sahara', pre-6.0 - Launcher and Expansion work, plugin component manager
- PalmOS 5.0 Launcher & Expansion work on ARM processor, including SmartMedia
- Integrated storage and filesystem support into OS APIs incl. SD/MMC and RAMdisk. Performed Launcher app integration work for new APIs
- Designed and wrote HostFS, a developer tool to mount desktop directories on Poser
- Win32, MacOS 9, CodeWarrior, VC++, C, 68K assembly
Software Engineer, NOW Solutions, Inc. Santa Clara, CA - March 1999 to March 2000
- Implemented realtime detection for hydraulic sensor features, plus analysis tools.
- Programmed device drivers for pressure sensor, autogyro (compass)
- Wrote and supported RIPC, an automatic code generation tool in Perl that turns C++ headers into Proxy/Stub pairs for CORBA-like RPC.
- Ported multithreaded OO vehicle control apps and infrastructure to WinCE.
- Embedded Windows, C++, Visual Studio, Visual SourceSafe
Software Engineer, MetaCreations Corporation, Carpinteria, CA - June '98 to Sept '98
- Worked on Bryce, a ray-tracer, and several unpublished speculative projects
- Windows and MacOS 9, C++, Visual Studio
Dylan programmer for Gwydion Group, Pittsburgh, PA - May '95 to Aug '96
- Worked on Dylan projects including Melange, a tool for C callout.
Computer Experience, Platforms and Languages
Primary Platforms: Linux, Mac OS X
Some Tool Specialties: Git, Rails, Rack, Chef, Vagrant, Cassandra, RVM/rbenv/bundler
I have used many, many tools and languages. I can learn yours.
Personal Products and Projects
Carnegie Mellon University, Pittsburgh, Pennsylvania
B.S. Computer Science and B.S. Mathematics May 1998
US citizen, teaching experience, professionally trained massage therapist and hypnotherapist; long-term UK visa
I'm not currently interested in hearing from external recruiters ("headhunters".) The word "currently" may be treated as meaning between 2010 and 2090, inclusive.