Noah Gibbs
Email: redacted (not currently looking via recruiters)
GitHub: noahgibbs
Portfolio: https://codefol.io/portfolio
Summary:
Ruby on Rails developer, author and speaker;
data science and visualization;
Full-Stack Web Developer;
Deep C, OS and systems experience
Work Experience
Shopify, Senior Staff Software Engineer, Inverness, Scotland - 2021-2024
- 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.
- Worked 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
of teaching.
- 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
resilience
- 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,
git, SVN
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 Languages: Ruby, Javascript, C/C++, Java
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
Education
Carnegie Mellon University, Pittsburgh, Pennsylvania
B.S. Computer Science and B.S. Mathematics May 1998
Miscellaneous
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.