Since 2007, I've been working as a software consultant. From my office in Seattle, I've carried out numerous projects with teams from across the US and as far flung as Delhi, Minsk, and Belfast. In 2011, I created b.fly to consolidate my offerings as a consultant and iOS developer.
I have fifteen years of experience as a software engineer, and began developing for iOS shortly after the initial iPhone was release. I have a background in performance testing enterprise applications.
I received my bachelors degree in computer science from Haverford College, and my masters degree in International Relations from UCSD with a focus on non-profit management and economic development in Latin America.
Ben came up to speed in a very short amount of time, built a
highly complex test environment, and successfully benchmarked
the system using several thousand concurrent virtual users.
Ben's technical contribution is outstanding, as are his
communication skills, sense of urgency, and organization.
-Aaron Perry, Director of Quality Assurance, Oracle Corporation
When I purchased my first iPhone in the fall of 2007, I realized that mobile devices had finally reached the point at which developing for them could actually be fun. I found Apple's development tools and AppStore ecosystem immediately appealing. I began devoting an ever-increasing amount of time and effort into mastering iOS development tools.
I am currently a senior iOS developer at Big Fish Games. Separately, I have been developing an iOS app (Experience App) with a web application backend for performing social psychological and other research.
I specialize in the construction of iOS apps and also have experience with web application development and testing.
I have designed, implemented, run, and overseen load and performance testing projects at ATG (now Oracle), Nokia, and Brightcove. I developed such tools as a multi-process pure Java load testing framework, a tool for creating complex datasets across multiple interdependent Oracle database tables, and a mini-HTTP server written in Ruby to receive and process test results from a Jasmine test harness. I have set up and run scalability tests across multiple WebLogic servers running commerce applications. I have stress tested email delivery servers using HP's LoadRunner. I have directed a team of six performance engineers working on various projects both ensuring quality and delivering marketable data to the sales team.
I have found that I quickly pick up on new technologies and can be using a new testing tool or coding language within a short period of time when the need arises.
I am excited to also begin to offer my services to non-profits, particularly those with a focus on economic development in Latin America. I certainly enjoy and have a proficiency in software development, and I realized a few years back that I would like to reach out and work with the non-profit world.
To develop a deeper understanding of this world, I attended the School of International Relations and Pacific Studies at UCSD. I have also traveled extensively in Latin America and speak Spanish at a high intermediate level. I realize that non-profits face a number of information technology hurdles as they pursue their goals and am looking forward to assisting in such efforts.
Experience App enables you to participate in research studies from the convenience of your iPhone® or iPod touch®. A study consists of questions for you to answer, often accompanied by images for you to evaluate. When you join a study, Experience App will notify you when it is time to participate, and relay your answers back to the research team. Experience App comes with a sample study involving images of beautiful outdoor scenery.
If you are a participant in a Experience App study, please contact the study coordinator with your questions.
If you are a study coordinator and need assistance with Experience App, or if you would like information about running your own study, please contact me at firstname.lastname@example.org
As I move from project to project, I often find myself needing to put one language or tool on the back burner as I learn another. I feel comfortable learning a new language for a job, but here is rough list of what I have used in the past.
Objective-C After wrapping my head around the syntax, I've come to really enjoy writing Objective-C. When I started writing it one still needed to manage one's own reference counting, which was a great way to focus on the mechanics of the language. I find Xcode an efficient IDE (particularly when it's not crashing, which seems to happen less and less often).
Java. I've done more with Java than any other language over my career. A load testing framework with accompanying Swing UI and an application to create dummy data in a commerce catalog were the largest challenges and required writing multi-threading, file and database IO, and networking. The backend of Experience App is written with Java servlets.
UNIX shell programming. Almost all of the jobs I have done have required at least some UNIX shell programming (sh, bash, csh). Generally they get written to assist in running a series of OS commands during some fully or automated process. I try to keep these scripts short and sweet.
C Occasionally I've needed to write in C though I much prefer its super-set: Objective-C.
Swift The next big thing from Apple, I've looked it over and plan to begin writing in it soon, at least partially.
Perl. Roughly once a year I need to write something in Perl and relearn the basics. Ages ago I wrote a hack for the mail server majordomo to integrate it more closely with a system alias list to prevent duplicate mailings, back when that was an issue.
BASIC. Need some Apple or Commodore BASIC written? I might remember how. I was a national semi-finalist in a middle school Apple programming contest when I was in fifth grade. That and my varsity letter in squash for being the eleventh guy on the ladder at my small liberal arts college are probably what convinced my fiancee that I was marriage material.