lee nathan

I am a full stack, but back-end oriented, web developer.
I use rack based technologies (Rails, Sinatra, Heroku)
to build fully functional, well structured websites from the ground up.

stack level tech used
dynamic SEO google webmaster tools
simple design Gimp / Inkscape
clean layout HTML5 / CSS3
AJAX javascript / jQuery
flow control Ruby on Rails
authorization CanCan
authentication Ruby on Rails
logic Ruby
data Postgres

if you need:

  • a functional web application with a smooth layout
  • a database backed website
  • a site that is clean and well organized
  • a web app that uses the latest technologies
  • a website that adopts modern standards
  • someone who is honest and professional to build it


I'm your man.

my showcase piece is

bettatest.com is at an MVP state waiting for a marketing, fundraising and business superstar. If you fit that bill and want to help me get this off the ground I'm very interested in finding a 50/50 co-founder.

bettatest.com is a simple but powerful service that lets software companies and developers run closed, focused, community driven beta tests and open help desks. It also lets people who love new software try it before the public and get involved in shaping the final product.

bettatest.com is currently in an Alpha release and includes blogs forums and the gaming / community management elements that make it great. In the future there will be many more features including polls, achievements for testers and ticket tracking.

bettatest.com focuses on dead simple setup and community based maintenance. This makes it faster and easier for developers to set up and stay in communication with their audience. And when the beta testing is done your test can be turned into a help desk with the push of a button.

showcase technology highlights

built with TDD

Test-driven development offers more than just simple validation of correctness, but can also drive the design of a program. By focusing on the test cases first, one must imagine how the functionality will be used by clients (in the first case, the test cases). So, the programmer is concerned with the interface before the implementation. This benefit is complementary to Design by Contract as it approaches code through test cases rather than through mathematical assertions or preconceptions.

home brewed authentication

User authentication is a means of identifying the user and verifying that the user is allowed to access some restricted service. For example, a user must be identified as a particular user in order to get his or her email.

There are a number of authentication plugins for Rails. However, creating your own system allows for more flexibility, control and compatibility with other plugins.

14 role authorization system
  • visitor - no account
  • unconfirmed - new user
  • naughty - suspended
  • user - email confirmed
  • developer - running a test
  • subscriber - paying developer
  • tester - in a test
    • waiting - signed up
    • activated - participating
    • active - in a test
    • involved - in a test
    • inactive - no longer testing
  • admin - super user
affordable credit card processing with stripe

Stripe handles everything, including storing cards, subscriptions, and direct payouts to your bank account.

Credit cards go directly to Stripe's secure environment, and never hit your servers.

2.9% + 30 cents per successful charge. No setup fees, no monthly fees, no card storage fees, no hidden costs: you only get charged when you earn money. Earnings are transferred to your bank account on a 7 day rolling basis.

normalized data structuring

Database normalization is the process of organizing the fields and tables of a relational database to minimize redundancy and dependency. Normalization usually involves dividing large tables into smaller (and less redundant) tables and defining relationships between them. The objective is to isolate data so that additions, deletions, and modifications of a field can be made in just one table and then propagated through the rest of the database via the defined relationships.

dynamically generated sitemap.xml for SEO

The Sitemaps protocol allows a webmaster to inform search engines about URLs on a website that are available for crawling. A Sitemap is an XML file that lists the URLs for a site. It allows webmasters to include additional information about each URL: when it was last updated, how often it changes, and how important it is in relation to other URLs in the site. This allows search engines to crawl the site more intelligently.

solid, reusable and extensible Restful design
HAML and SASS for beautiful front-end code
loosely coupled Object Oriented server code