John Randall

Full-Stack Developer

Full-Stack Developer

I've spent a decade solving problems in a diverse set of domains- designing technical tools and processes, educating people about the possibilities of technology, advocating for better Internet laws and regulations, and helping people collaborate.

I plan to spend the next decade doing these things with code.

Prior Work

  • Junior Full-Stack Developer: Recent General Assembly WDI graduate.
  • Highly Technical Lawyer: Focusing on startup law and telecommunications policy issues (network neutrality, equal access, fiber infrastructure).
  • Organizer: Co-founder and Organizer of the worlds first and largest Legal Hackathon and Legal Hackers meetup group.
  • Privacy, Internet, and Copyright Scholar: I've worked on Internet policy issues at Harvard's Berkman Center for Internet and Society, The Roosevelt Institute, and Brooklyn Law School's BLIP Clinic.
  • NYU graduate: Studied Digital Communications and Media, focusing on video game design and web production.
  • Composer and Music Producer, award winning Audio Engineer, and touring Musician.)

Dev Projects


A Family Calendar App

This app helps pre-schoolers know "Who is watching me?" and "What am I doing today?" by connecting to a parent's Google calendar and displaying age-appropriate iconography. In addition to reinforcing learning concepts like "time" and "days of week", the app empowers children to feel more control over their lives and eases separation anxiety.

Technical Challenges

  • Straddling a traditional Ruby on Rails application (administration area) and a one-page Backbone.js application (the calendar view)
  • Hand-rolled oAuth and Google Calendar API sync
  • Dynamically positioning calendar entries and sunrise/sunset markers at appropriate positions on the page
  • Data structure using single-table inheritance and polymorphism to enable user and non-user caregivers

Next Steps

  • Further refinements to UI, streamlined picture uploads
  • Audio events allowing parents to record messages associated with appointments
  • Child friendly weather reports encouraging child to dress appropriately

Commuter Cal

Perfecting the Art of Commuting with Public Transportation

A "set it and forget it" web app, Commuter Cal automatically scans a users on-line calendar for appointments in their destination city and adds the appropriate options for inbound and outbound train and/or bus rides.

Technical Challenges

  • Parsing General Transit Feed (GTFS) data from multiple transit providers (10k+ lines of CSV each) into relational databases. (Check out the ERD diagrams on github!)
  • Hand rolling an oAuth2 connection to Google calendar services

Next Steps

  • Automate the updating of GTFS data upon transit agencies release (typically quarterly). (In the form of 20MB zip files)
  • Make the parser more tolerant of data that isn't entirely to spec, allowing the app to be used on transit systems outside of the NYC area


Simplifying Communication between Contractors and Clients

Contracto allows contractors to log and share their construction job records with clients and their sub-contractors! It is designed to be simple to use by users who don't typically keep digital records.

Technical Challenges

  • Keeping the UX extremely simple was essential. Editing records 'in place' required us to dig deeply into Backbone.js and jQuery.
  • Making batch 'drag and drop' picture uploads involved digging deeply into the interaction of browser default behaviors and JavaScript overrides.
  • Polymorphic relationships!

Next Steps

  • Polish the UI, expand the authorization controls for clients, employees, and subcontractors.

Guess Whom

A riff on the classic game, using your friend's selfies

'Guess Whom' is a take on the classic 'Guess Who', but using your friends selfies as game cards.

Technical Challenges

  • This is the very first web-app we built, the week we learned about persistent storage, databases, and Sinatra

Next Steps

  • The app is held together with duct-tape right now. (It isn't even session-aware.) We are refactoring it into a proper Rails+Backbone app.
  • The game will eventually be built out to allow you to tag your friends attributes and persist that storage in our database to make it easier for users to pull in a set of pre-existing game cards.
  • Long Term plan: This should be a Facebook game. Duh.


  • Programming Languages: Ruby, Javascript, HTML, CSS, basic Action-Script
  • Back-End Development: Ruby on Rails, Sinatra, PostreSQL, Node/Express, MongoDB
  • Front-End Development: jQuery, AJAX, Backbone.js, Underscore.js, HTML5, CSS, Sass
  • Process Management+Testing: Git, Git-Flow, Github, Agile Development, Trello, RSpec, Jasmine
  • UX/UI design: wire-framing, Garret AI diagramming
  • Graphics: proficient with majority of Adobe Creative Suite and similar software
  • Telecommunications: strong understanding of networking and Internet protocols, network interconnection economics, in-depth knowledge of last-mile telecommunications technologies and video delivery protocols
  • Traditional Media: Final Cut, production and management of media-rich web content and traditional media, workflow optimization, digital asset management, audio post-production, basic video editing, video and audio compression compression, music composition and arranging, voice acting, guitarist and vocalist

Code & Process