one man dev team - fatc 2011
TRANSCRIPT
Jane Blob
i got really good at clarisworks.jane blob story, couldn’t change license name.i didn’t know much about how digital stuff worked (apps, games, etc)...
I was really into video games and made websites for video game cheats/moves using geocities & angelfire, but they always had banners....
tried really hard to ‘brand’ myself, but was never happy with the result, so the website remained a ‘coming soon’ page for months
it was around this time that i learned about flashi was the tech person for the middle school morning announcements
...and robert hodgin, so i made experimentsthey had such cool names, so i thought i needed one myself
FIRST-IN-LINE.NET
jonhallman.com wasn’t cool, so i also got first-in-line.net, possibly the worst domain name to remember
inspired heavily by praystationi’m the kind of person who feels empty when i’m not producingalways had a stack of loose papers with sketches on themcoded the ideas when i got home from school each daysuper lame, had multiple email addresses for no reason
around flash mx 2004, i had enough and gave up on it...I got deep into PHP and made dynamic web apps, like jpixel
i got into graphic design during pre-college at risd and mica and turned my digital work into printI tiled outputted JPixel images, making huge 12x10 ft prints
SHAW JELVEH DESIGN
started working for a small studio called shaw jelveh designfirst thing they asked is whether i can make flash websites
they had me design and develop 3 sites in my first 2 monthswith tight deadlines, i learned how to code fast, esp since i worked 10 hours a weeki also learned to keep things simple
produced a dozen websites in less than a yearsome of them, i only had a week or 2 before they were due
on my friend’s birthday, I was at his house and I challenged myself by coding luke’s site in the duration of high fidelity
as well as learning how to code fast, i also learned how to learn fastgreenbuild, conference for sustainability
in my junior year, I heard about AIR and fell in love with the idea of apps rather than websitesI replaced most of my gd classes w/ independent studies
USERS VS CLIENTS
TOOL VS PRESENTATION
INCREMENTAL VS ONCE AND DONE
I liked app development because of thisyou have to please clients. try to make users happy, but don’t have please them all.
DESIGNER
DEVELOPER
PROJECT MANAGER
CUSTOMER SUPPORT
YOU
requires many rolesI was ready because of shaw jelveh
we used flickr for critiquingi hated the site - white background, static pages, very slow to navigate
i thought of taking this opportunity to make my own app using flickr’s apii started sketching and brainstorming
since i was new to UI design and had such a heavy background in web design, the app looked just like a website, but on the desktop.
(sorry, Ryan)
and i wasn’t an icon designer by any means, so i took inspiration from CS3, since most of my dock was adobe apps.i later met the icon designer during my adobe interview.
(movie of DestroyFlickr too large for download)
the end result was an app that had a better environment for photos (dark background)it was very fast because it only needed to load the imagesyou could page through hundreds of photos in seconds with animated transitions
i tried to make features that were unique and that I would get a lot of use from, like drag and drop downloading.you could drag a handful of thumbnails and it would download the hi-res versions.
I took it a step further and made it so you could drag and drop a contact to download their entire photo library
i released it for free and shared it with friends and famthe install count went from 30 to 3000i started getting tons of emails. some reported bugs, others requested features, and some just said thanks.I tried to respond to every single one.many didn’t realize I was one guy.someone even gave me a ps3
flickr caps the api at 1 query per second, once destroyflickr reached that, instead of throttling DF...
on top of that, i won an adobe design achievement awardi knew now that maybe app dev was a good direction
THE WORD “DESTROY”SCARES PEOPLE
many didn’t use it because they thought it would delete their account.at the same time, many used it because of the name.
DON’T DEVELOP ANAPP YOU WON’T USE
you’ll miss essential features and ux will sucki didn’t use flickr much, so i missed essential features like sets/groups
NO APP SHOULD REQUIREA GIG OF MEMORY
memory - not a concern for web, but definitely for appskeep track of everything you allocate memory for
MOST GOOD FONTS DON’TSUPPORT A WIDE
RANGE OF CHARACTERS
selecting all the glyphs you want to embed doesn’t mean the font has those glyphsarial ms unicode is the only font with (almost) every glyph
USE PROVEN METHODSAND CONVENTIONS
i didn’t go to school for programming, so i didn’t know any design patterns or any of the terminologyuse an architecture framework (mvcs, robotlegs)follow a common coding styleotherwise you’ll spend more time refactoring when you discover your way doesn’t work well.
since I only ever dev’d by myself, I didn’t really know what good code looked like.the style I used was based on what I found useful and it was soooo bad
KEEP APPS UP TO DATEWITH DEPENDENCIES
if you want to continue developing an app, keep it current with your librariesI was able to develop DF fast because I had a lib for common classes, like images, text, etc.i forgot to update DF with my libs, and it was too late
To me, Twitter is a background service, like IM. It’s not fulltime, like Photoshop or Flash Builder. When I want to tweet, I’ll open it, tweet, then hide it.All the current apps were bloated and cumbersome, so I made DT super light and super intuitive. Hotkeys galore.
DESTROYTWITTER
spent a day researching others, jotting down pros/consthen coded v1 in 10 days over christmas break
PERFECT APP FORCOLLECTING FEEDBACK
also made it easier to respond to users, instead of emails bottling up
It was my first persistent app—open for long periods of time. Because of this, I paid extra attention to memory and CPU usage.
And once I got the basic Twitter functionality down (tweeting, streams, etc), I started adding special features I wanted.Because of unfollow drama and events, I added filters. DMs and unfollow notifiers make things awkward, and i’ve been confronted
Since Twitter is reading-intensive, people want it to be easy for them to read. For some, that means black text on white, for others it’s white text on black, so I made themes. Now no one complains.
With so many users, you have thousands of opinions. Everyone wants the app to work different, so I added preferences when anyone wanted something a specific way. It quickly overflowed the preference pane.
Place a file called ‘debug’ here to receive RTEs with full stack traces.I set up a script to email users’ stacktraces to me.
I kid you not, this is what my version control system was.I didn’t know version control existed, so I’d zip the folder.
PUT FRESH EYESON YOUR CODE
working alone on something for too long makes you too familiar and you miss things.go open source or set up code reviews. everyone learns.
AUTOMATE AS MUCHAS YOU CAN
since you’re just one man, the more you set up to run automatically, the more time you have to be productiveuse build scripts, unit testing, continuous integration, make a common lib
MAINTAINING ANAPP IS A HUGECOMMITMENT
(especially alone)
think years and make sure you’re ready to invest your time and energy
MOTIVATE YOURSELFWITH VARIETY
if you code all day for work, the last thing you’ll want to do is code all night.your work will use up all of your creative juices and you won’t have much left for your apps.
website destroytoday.comemail [email protected] @destroytoday