Hi. My name is Stephen Poletto. I'm a software engineer and recent graduate of Brown University. I currently work on the iOS team at Dropbox.
I'm interested in building impactful software. I believe code is written for other human beings, and only incidentally for machines to execute.
Billr is the quickest way to split the bill and calculate the tip at restaurants and bars.
Billr: A feature-complete tip calculator and check splitting utility for iPhone and iPod Touch.
SquareQuote is the easiest way to create and share beautiful quotes.
Hear a friend say something quotable? Read a brilliant line in a book? Save it in a beautiful, visual format with SquareQuote.
Browse curated collections of funny quotes, inspirational quotes, and the quotes your Facebook friends have created. Share quotes via Tumblr, SMS, email and Twitter.
Kleio is an online experiment in revitalizing the high school history textbook.
Kleio is centered on exploration and historical inquiry. Content is structured into digestible chunks on different "cards," each of which begins with a prompt question and a primary source for students to read, view or listen to. To gauge student learning, each set of cards ends with multiple-choice prompts, and each section features paragraph-response questions. Teachers can log in to customize the content their students see, review student responses to prompts, and track individual student progress.
I spent two summers interning on the Developer Tools team at Apple. In addition to performing maintenance work on the codebase, I contributed two new features to Xcode 4.
iOS and Mac developers use IBActions and IBOutlets to establish connections between their Interface Builder documents and source code.
In summer 2011, I added a feature that allows developers to view which connections have already been established by looking in the gutter of their source code editor.
Developers can use these annotations to find the Interface Builder object to which a variable is connected. These annotations are also useful in identifying which IBOutlets and IBActions have not yet been connected. Forgetting to establish a connection is a common mistake for beginner iOS developers.
Cocoa Bindings allow Mac developers to keep their view and model in sync. As the user interacts with a bindings-driven application, changes are automatically propagated to the underlying model without the developer needing write additional "glue code."
In summer 2010, I added a feature that allows developers to control-drag from an object in Interface Builder to their source code in order to establish a binding. After the developer has made the connection, Xcode displays a dialog used to configure the binding.
When the developer is configuring a newly established binding, a simple mistake can lead to a long debugging process. To reduce developer error, I added key path resolution and validation to both the configuration popover and the bindings inspector. These features assist the developer by auto-completing specified key paths and providing visual confirmation that an entered key path is correct.
I have a number of open source projects on Github.