I’ve been making websites since 1996. that’s a long time, but what’s more impressive is what I’m going to do next.
Development
I develop front-end:
- CSS3 including transitions, animations
- CSS2 and graceful degradation for down-level browsers
- SASS to generate the above
- HTML5 semantic markup, polyfills for older browsers
- raw javascript and jQuery
- slicing and optimization of production graphics
And back-end:
- PHP – raw PHP and WordPress API coding: themes, plugins, administrative customizations
- Ruby on Rails – just learning, but I’ve attended thoughtbot’s intro to Ruby and Rails and am working on a few projects
Design
I am not an Visual Designer. I am also not an Interaction/User Experience Designer. But, for most of my career, I have been in organizations working closely with both.
I see design as a problem comprised of three major parts: aesthetic, emotional, and technical. In order to successfully execute any one of these responsibilities, one must understand and appreciate the others. In my technical implementations I constantly consider the intentions of the Visual and Interaction designers. I avoid arbitrary decisions and shortcuts.
Environments, Hosting and Deploying
My primary development machine is a Mac (a really nice one). My editor of choice is Sublime Text. For employers and clients in the past, I’ve used Windows, but I am not as happy or proficient.
At various times in my career, I’ve administered my own VMS, FreeBSD, Linux, Solaris, Windows, Mac OS 8/9 and Mac OS X web servers.
I currently develop on my local machine for Ruby projects, and use a Mac Mini Server for WordPress and other PHP projects. I run a local DNS server, which lets me create an artificial top-level domain “.dev” and “clientname.dev” domains for testing from any device on my network.
For production environments, I maintain a variety of Virtual Private Servers, and a shared-hosting account for low volume sites that I can lock down.
For extra fun, I have a Raspberry Pi (low-power linux server) on my network, interfacing with my weather station and reporting statistics to Weather Underground. Here’s my weather station page, if you’re interested. I’ve also made a plugin to display this data, find out more about that here: WX Weather.
Management and Methodologies
Source Control
I actively use git and subversion (svn). I’ve also used Perforce, Mercurial, Team Foundation Server, VSS, and CVS.
The important points to remember are:
- I never edit files that aren’t under source control (if you don’t have a repository, i make one)
- I don’t quit for the night with files checked out
- I check things in when I have working, atomic functionality completed (each checkin represents a completed piece of functionality) no ‘code dumps’ at the end of the day
Testing
Modern Browsers: i test cross-platform using virtual machines, in Chrome, Firefox, Safari, and IE8+.
Downlevel Browsers: IE7 is the oldest downlevel browser I test on, let’s take a look at your site statistics before we commit resources to going older than that. I also generally check everything in text browsers, with stylesheets turned off, etc. to make sure the baseline experience is good content and good layout.
Mobile Browsers: I test with live iOS devices, iOS simulated devices, and emulators for other devices.
Task and Project Management
I’ve worked in almost every methodology: waterfall, sashimi, agile. both real agile (working on a project with thoughtworks) and institutionalized agile (using software like IBM’s Jazz server). I prefer real agile if it is embraced 100% by all parties.
My personal workflow consists of GTD-like task management, maintained in text files for each project I work on. The files are stored in Dropbox, and I manage them in nvALT on my Mac, WriteUp on my iPad, and I append to them using Drafts on my iPhone. It’s pretty slick.
Other Tools
Additional tools I use and love: Live Reload, Adobe Creative Cloud Apps (Photoshop, Illustrator, Fireworks), Alfred, nvALT, Dropbox, OmniGraffle.
How I communicate: email, IM, IRC (freenode). I also keep an eye on Twitter all day (say hi! @mikesusz)
Anything else you need to know?
Please. drop me a note to get in touch.