User-focused leading-edge software developer.
Currently, I am a Software Engineer for Zignal Labs in San Francisco, CA. I've been in the tech industry since 2000 and love using the latest technologies to build my solutions. The world is increasingly mobile and web-based, so that's where I tend to focus my efforts. I'm proficient with JavaScript, Angular, Node.js, Android-based Java, Objective-C, C# — whatever language it takes to do the job.
I have a strong focus on user interaction while designing and developing software. A well-designed application explains itself. It's easy to use, yet razor-focused on doing one thing well. The design process for making something easy to use is extremely difficult to get right, but it's a challenge I readily accept. Before any code is written, I make sure I understand the target user completely through interviews. Then, several collaborative design sessions occur that iteratively narrow down potential interactions to the final solution. The solution is delivered to the customer, and feedback is obtained to feed into the next design iteration.
I pride myself in my ability to create entire applications from design to back-end and front-end implementation. This allows me to excel in startup environments where resources are limited, yet high-quality results are necessary for success.
My main development machine is a late 2013 27-inch iMac. It's a blazing-fast machine, and the display is amazing. I prefer the small Apple Bluetooth keyboard and Magic Mouse. I type using the Dvorak keyboard layout. When I'm mobile, I use a 13-inch 2011 MacBook Air, which is also a great piece of hardware. I listen to music while programming using an old pair of Sony MDR-7506 headphones. They still sound great.
I don't use much else, hardware-wise. I'm a minimalist at heart. My work desk consists of the iMac, the mouse and keyboard, and my coffee cup. Oh yeah, I'm also a coffee enthusiast and I've been roasting coffee from Sweet Maria's for years. I use a Behmor 1600 to roast my beans, grind with a Rancilio Rocky and brew with an AeroPress.
The main tool for any software developer is the text editor. I've played with many over the years, but I always come back home to Emacs. It's less of a text editor, and more of a programmer's playground. Once you understand how it works under the covers, it's hard to use anything else.
I use Mac OS X for everything that I can. For web development, I really like using Grunt and gulp.js for automating tasks. Chrome for debugging, but Safari for day-to-day use. For Android, I use IntelliJ IDEA. I use Balsamiq for quick, low-fidelity mockups and Illustrator and Keynote for more high-fidelity mockups. For iOS, XCode is getting better all the time. And I'd be useless without Homebrew -- I started off as a Linux nerd, but I'm convinced Mac OS X is the best UNIX out there. I also use Rdio for music, 1Password for security, Fantastical for calendaring, and TextExpander to keep keypresses short and sweet.
I'm pretty close, but if you could somehow magically put the power and display of the iMac into the form factor of the MacBook Air, that would be machine for me. Also, if you put that magic machine next to a QuickMill Vetrano 2B, I'd be set for life.
A MEAN (MongoDB, Express, Angular, Node.js) web application for creating requests for information and displaying reports. Leverages socket.io for real-time updates.
Android app that provides real-time notification of requests and generates multimedia reports for the RAIN web application.
Android app for quick sharing of multimedia to other mobile devices in a bandwidth-constrained environment.
A .NET web application for creating interactive charts and graphs automatically from CSV data sources. Uses MonetDB, NancyFx, and Razor templates.
iOS application and REST backend for quickly viewing all attachments in your GMail inbox. Project was built from scratch and went live on App Store within two weeks.
A generic iOS and Android framework for creating brandable soundboard applications without any coding required.