I have 41 years of experience programming, on systems from the smallest to the largest. Since 2008 I've specialized in Ruby on Rails, with a side of iOS/OSX and whatever else is needed to get the job done - recent work also includes Elixir, VueJS, Sinatra, AngularJS,CoffeeScript, node.js, Arduino, Swift, and the Pebble SDK.
I treat my code as an expression of art and beauty, and often say:
software is to poetry as
architecture is to sculpture
In addition, I have a well-rounded interdisciplinary background with over 15 patents and three degrees - Computer Science, Art and Dance. Whatever your specific domain, I'm sure to catch on quickly and implement your vision with passion and enthusiasm.
Bring my agile and responsive development style to your project. I communicate well, will make sure you're comfortable with every aspect of the development process, and will not sell you anything you don't need.
I strive always to underpromise and overdeliver, ahead of deadline and under budgetemail me
You'll find a very thorough and generally up-to-date version of my resume online at StackOverflow
You're looking at one! stephan.com is written in Rails, running on a Heroku instance. The current version took about two days to build and launch, thanks to ActiveAdmin. It will, of course, never be "done".
You can find samples of my code at github/stephancom
- open source
- coding tests
The following is incomplete - I cannot discuss every project, and some are too small to be worth noting.
consulting as stephan.com 1q-2q 2019
Ruby CLI utility
proprietary data manipulation
- Ported from idiosyncratic node.js code
- 95%+ reduction in memory usage.
- collates JSON/CSV data for PowerBI
- Special challenges include
- HIPAA compliance
- inferring limited specs by reading code
- ActiveRecord without Rails to MS-SQL Server
- Dozens of separate Mongo databases
- streaming writes minimize memory overhead
- handling failed Azure Blob Storage uploads
Green field Rails 5 project
launching 2q19, spinoffs planned
- Modular reusable platform
- Authorize.net/ Taxjar
- Lob.com mailed hardcopy
- PDF generation
- heroku puma redis sidekiq bootstrap coffeescript jquery slim sass aws s3 ActiveJob ActiveStorage circleci rspec capybara vcr
- stats after 12 weeks/600 hours:
- 16k lines, 12k LOC, ~20 models
- 1:5.4 code/test ratio
- 100% Test coverage @ 44 hits/line
- avg. 1000 LOC/week, or 20/hour
- CTO (hands-on) at Photopon
- Maintain, extend and improve photo/coupon sharing web and mobile app.
- Refactor Parse back end
- Clean up Angular grunt build processes
- Replace PHP server with simple S3 bucket
- Convert QR generation from PHP to Sinatra
- extracted QRinator open source version for general purpose use
- Senior Full-Stack Developer, Social Media Link
- refactored and decoupled monolithic application
- improved overall application performance by 50%
- more than doubled conversion rate
- identified and resolved several serious security flaws not noticed in a professional audit
- upgrade rails 4.0 -> 5.1
- security audit & upgrade
- rewrite tests in rspec
- mentor junior developers
- create V1 API using Grape w/ Swagger
- front end work in Vue+Vuex+Axios
- attended AWS Big Data week
- proof-of-concept development for stealth chatbot project
- Senior Applications Engineer, Medidata Solutions
- Full time contract via Twenty Recruitment
- Worked on Medidata Balance™ clinical trial inventory management system.
- Primarily contributed to a large migration wherein several key models that had previously been owned by a single central model now needed to be shared between central models.
- join tables added
- hilarity ensued
- cucumbers repeatedly repaired
- Secret registration site for Dwimmer Ties.
- QR-code on back of tie leads to hidden site with registration and features
- Additional Unity3D VR work for (art) n laboratory
- Full time for Xura (formerly Acision )
- Responsible for implementing, extending and maintaining AngularJS client for white label enterprise WebRTC messaging, voice and video conferencing
- Implemented cross-platform web-iOS-Android messaging protocol for Mobile World Congress demos and Microsoft Azure OAuth login
- Buildmaster - responsible for setting up and maintaining Jenkins automated build/deployment for Android/iOS/AngularJS to HockeyApp betas and nginx web servers
- Researched best practices for iOS automated testing, established system using bwoken & tuneup.js
- Collaborated with internal and external teams in Nice, Reading, Richmond, Brno and Kharkiv
- Unity 3D programming for (art)n laboratory
- VR Architecture tour shown at National Arts Club November 2-14 2015
- Reviewed in the Huffington Post
- With architects.io
- MobileXlabs builder v0.1
- product recommendation startup in stealth mode
- two unreleased iOS apps with Rails back ends
- project for mass parsing of pdf documents
- iOS RSS feed app for mentoring high school students
- Zertica (aka CADsurf)
- Marketplace to connect with providers of 3D print and CAD services
- Features include:
- Client opted to publish site as open source
- V1.0 of node.js site. Current site has greatly simplified spec.
- Introduced Rails-style conventions, testing, and order to the hipster junkyard
- LOTS of CoffeeScript, I finally get the difference between -> and =>
- exposure to backbone, jade, less, mocha, underscore, elasticsearch, stripe, others
- Coached CTO Dave Govea to write factory-castrado
- jsfiddle test
- Sand Hill Services Oy
- Pebble + iOS location-based demo
- Social geolocation service experiments
- OSX update of my 1995 program that originally targeted SGI workstations
- Except, literally, about 1000 times faster
- Implements the algorithm disclosed in our 1996 patent "Computer-Generated Autostereography Method and Apparatus", #5,519,794
- Legacy Marketing Partners - internal site, "EventNet V3"
- Manages companywide operations for 350 employees located in 40 markets nationwide
- 7 months to rebuild site from scratch and rescue a project that was three years overdue
- I am extraordinarily proud of the massive amount of work I did on this project and wish I could show it - around 10000 LOC
- Features include:
- Scheduling events across hundreds or thousands of venues such as bars and supermarkets for dozens of brands and marketing campaigns.
- Drag and drop form builder to create custom event recap forms for each campaign, including ability for users to design new metric field types
- Collecting and collating event recaps in aggregate across brands/campaigns/markets
- System for tracking notes about venues such as hours of operation and features, including history of who changed what when.
- Upload of photos and receipts associated with venues, events, etc
- Employee document management
- Shipping, receiving, inventory and transfer of promotional items between markets with full history and reconciliation
- Admin control of access by groups of users to relevant records with CRUD granular control based on membership in markets/campaigns
- Mission-critical Sinatra billing system
- manages balance of minutes, repeat bills the user via Braintree
- ~250 lines of code, ~400 lines of tests, 93% covered
- every time you make a call on RingPlus, this code gets hit
- Logical Reality Design- work on SalesBump(rip)
- Privacy-oriented social network similar to Google+
- Which is funny, because G+ launched about halfway through development
- 8 weeks from start to launch
- Extensively tested, some of my best code
- On hiatus at present
- Watch for a resurrected demo server soon!
- iOS app
- Originally contracted for this
- Back end Java site was not ready; built my own, duplicating most site functionality, in 7 days so I could start working
- Core site rewritten in Scala, some work done integrating with back end in 2013
- Has not launched; still being used for internal demos connecting to my back end
- Front end work
- Contract extended to develop wireframes extending graphic designer's original plan for implementation by offshore Java team.
- Offshore team simply had to copy the markup from my Rails app
- CSS/JS required virtually no modification to work with their Java app
- My own iPhone app
- Playlist manager for dancers
- Still live on the app store
- I may rewrite this in Swift in 4q14
- Improvements to existing app
- Also worked on CityParkingUsa and other properties
- Abandoned project for affiliate tracking: Affiliated Pull (I may open source this)
- Crank Apps - Gazopa Answers
- iOS app to interface to image search question site
- Contributed to Rails back end for integration
- Gazopa project shut down, app never launched
- "Project Bluefoot" - client identity under NDA
- Reports module for scheduling events such as birthdays and weddings across client's network of theme park properties
- CIO - Dekasu: Your career. Your move.
- Dekasu is a free-to-use career management toolkit designed to give you the advantage you need in today's competitive job market. We provide a secure record of your career history, tools to easily generate tailored CVs and other career development resources.
- ~10,000 lines of code, more features than I can easily list
- Travelled to London to work with the rest of the team
- Currently on hiatus, may be redeploying to international markets in 2q16
- CIO - MobileGates
- Movietickets.com iOS
- ~80% complete when I left company
- existing app appears to be substantially my code
- innovative horizontal-scrolling movie posters
- Movieticket.com mobile
- Implemented three times, in Ruby, Perl, and PHP
- I do not know which one is running; I hope it isn't the PHP one. I learned PHP in one day to implement this. I never want to use PHP again.
- Seven Mildly Embarrassing iOS Apps
- Three sound effects app with numerous features
- motion sensor
- piano keyboard
- record your own
- wide selection of sounds
- But, um, yeah, these are fart apps
- Two pattern repeat games (like Simon)
- Simon Says Fart
- Simon Says Party
- These apps are, mercifully, no longer on the app store. They were quite good for the genre.
- Abandoned concept for widget-based information dashboard available across platforms including WAP.
- My introduction to Rails
- It looked surprisingly like the iOS finder, which is funny, because I was working on it before the iPhone came out.
- Routing and travel planning app
- Create a route to your destination, get a printable list of all exits with ratings of facilities
- Contributed to redesign and new features
- All in Perl. Which I do not ever want to use again.
- Introduced Mason templates, greatly simplifying developments
I could go on, with projects reaching back to 1986, including an assembly language for a game on the TI-99 and a Z80 system for driving a laser show projector; contributions to a programming language used for museum displays, including implementing the language for an unusual image processing board; scientific visualizations; OSX Widgets; more mobile web apps; etc.