Nate's Web Projects & Resume
Take a look at my resume or you can also check out my...
Projects


Web Developer Designed custom Content Management System (CMS) to catalog weekly recording & podcasts Live Video Streaming Server Administration Database Design & Administration



& Rural Life Museum

About Me
To put it simply, I just like to build stuff. Most of the time, I don't even care what it is. Whether it's building a website, a piece of furniture, a set of speakers, a home brew Linux PVR, a little auto-body work, or some random MacGyver-ish contraption in the garage, I just enjoy the process and pushing myself to do it better the next time. I think I came to this realization some time in college while studying both Art and Computer Science. I loved the Art classes, but fit in better with the computer geeks. My artwork rarely had any grandiose meaning. While others did things like pour Pepto-Bismol on the floor and expound on the meaning of it all (really!), I concentrated on technique. If I had one word to describe myself in my work life, it would be "technician."
I also love finding new ways to accomplish a task, but not for the novelty or just to be different. If the tried-and-true way works, that's great, but I at least question if it really does work. This is why I love technology. I'm always discovering some new way to get things done.
Building websites and web applications has been a great outlet to combine both artistic tendencies and a desire to build stuff that has a function other than looking good. I love the instant gratification that can happen. I can be coding away and beating my head against the wall trying to figure something out, then try one more thing, hit refresh on my browser and Eureka!
Specialties:
PHP, Ruby on Rails, MySQL, JavaScript, JQuery, Web Graphic Design, Content Management Systems, Shell
Scripting, Unix/Linux System Administration, Apache Administration, Web Server Architecture &
Design, Web Security, Single Sign-On, Business Process Automation. And a little of... Adobe Flex, Oracle DB
Experience:
Limos.com
Web Developer (officially 'Technology Manager'), March 2009 — Present
Working on everything from UI to the Database and everything in between. I love the many hats you get to wear at small companies!
Freelance Web Consulting
October 2008 - Feb 2009
Coghead Inc
Sr Software Engineer, January 2008 — October 2008
I left iPass at the end of 2007 desiring to broaden my work experience and try something new. At
Coghead I was the lead developer for the public website and the website's interaction with the
Coghead 'SaaS' back-end platform. There I developed custom web applications, improved upon
their Content Management System, architected new web server design, automated back-end
processes for production deployments and synchronization with development environments. On
the Coghead product side I worked directly in Flex to help improve the layout and design of the
Coghead 'SaaS' application. I also helped design the look through several iterations of projects
using detailed mock-ups and requirement documents.
Good Ground Media
Co-Owner, Web Developer, March 2007 – Present
Good Ground Media is a small side-business I've started with
my cousin just for the fun of it. GGM is a Christian video-on-demand website reselling works by
independent artists directly to churches. We started the business after my cousin (a writer and
director) had several bad experiences with other such websites charging exorbitant fees. Here I
created the whole site from the ground up. This included graphic design, server administration,
database design & administration, business process automation, bookkeeping automation, and a
completely custom shopping cart using AJAX.
iPass Inc
Sr. Web Developer / Webmaster, March 2000 — December 2007
I started at iPass right out of college in the Spring of 2000. My first role there was Software
Deployment Engineer, assisting customers through their complex server installation procedures. I
quickly out grew that position and moved over to the webmaster position within 9 months. I then
worked my way up to Sr. Web Developer within 3 years. During my tenure at iPass, my duties
included being the webmaster, developing custom internal and customer-facing web applications,
web server administration, and back-end automation of many business processes.
Education:
University of California, Davis
BA, Fine Arts (Studio Art), Minor in Computer Science, 1999
Tools
Here are some of my tools of choice:
Macbook Pro
I made the switch in late 2007, but I'm no Apple fanatic. I freely admit that it's crashed on me every bit as much as my last XP machine. However I want/need to test my work on both Windows and Mac, and only a Mac can run both. I love that it's built on Unix though and I can jump right to the command line.
Firefox
My browser of choice. I use/test them all, but Firefox is my bread and butter. It has the greatest breadth of plugins available and is the most consistent across Mac and Windows. Here are my most-used plugins:
Web Developer: I use this constantly! Especially the real-time CSS editor. It's saved countless hours.
Firebug: Great for JavaScript debugging and more in-depth inspection.
YSlow: Yahoo's performance testing extension to Firebug
ColorZilla: Super handy color picking utility
Greasemonkey: This one is not so handy for development, but so cool for tweaking sites I use but don't like! (can you say Facebook?)

Oh PHP, how do I love thee? Let me count the ways...

JavaScript Library "write less, do more"
Have you seen the latest speed tests for jQuery 1.3? Faaaaaast!
http://docs.jquery.com/Release:jQuery_1.3#Performance
VI (text editor) Good old vi. My constant companion. I dig programs like Coda, but I'm just too cheap to pony up for it when a shell window on the server with vi gets the job done so efficiently. I also use TextWrangler quite a bit. I've used Eclipse and tried out other IDEs but so far nothing beats the speed and simplicity of vi. (OK, lots of the vi commands are not so simple, but they are powerful!)
FireworksThis is my only (semi) expensive program. It's a great swiss army knife to create images for the web. I've tried all the free ones, wanting so badly to like them (again I'm a cheapskate) but I keep coming back to Fireworks.
TidyHTML Validation
EvernoteGreat for remembering everything and staying organized. Can't wait until the Android version is out.
DropboxMost convenient file sharing *ever*
DimdimFree web conferencing. It works great on Mac too.
QuicksilverI'm definitely not a power user here and just use it as an app launcher.
VMWare FusionFusion or Parallels? 6 to one, half a dozen to the other.
SuperGenPassVery handy way to create unique passwords for sites. I love bookmarklets! What an ingenious way to add new functionality to your browser.
Android G1I love my android phone! I have not developed yet specifically for Android, but have been playing with the SDK.
Misc. Stuff
Thoughts On Development
While I'm not married to the idea of Extreme Programming
or Agile Software Development, I very much like the idea of breaking a project up into manageable steps that can be accomplished quickly. I like the term 'baby steps'. I believe the key here is to keep the steps focused on how they affect the big picture. One of the first concepts I was taught about coding was to "design top-down and build bottom-up". In other words, get your concept right, break it up into manageable pieces and build out each part. Where you get into trouble is when the baby steps go off in random directions in an ad-hoc manner without regard to the big picture. That said, I'd like to walk you through an example process of building a small "widget." Here's how it went down when I decided to update the navigation on this page:
- Slept on it.
- Mocked it up in Fireworks.
- Decided to use a single CSS sprite image for the tabs & created that image.
- Wrote the HTML & CSS to make the static tabs look right in all browsers.
- Added code for moving the tabs as the page scrolled. (and checked in all browsers)
- Added code to smoothly scroll from one anchor point to the next. (and more testing)
- Added code to switch the CSS sprite image to the correct tab when selected. (and test)
- Added code to fade the tabs in and out during the jump to anchor points. (test some more)
- Test. Tweak. Test. Tweak. Test.
- Push it out!