Ross Bower

UX Engineer with more than ten years of experience building high quality interfaces and experiences, specializing in animation design, performance optimization, and human factors

Ross Bower

Co-op Jobs

Thomson Reuters

Junior Developer – EndNote Team
2010 – 2011

I was hired by the EndNote team within Thomson Reuters to develop a prototype iPhone companion app for their popular reference management desktop product. I knew a bit of objective sea by this point having developed iLog the previous summer. I worked mostly by myself building an iPhone app capable of displaying the data EndNote stored. I used standard APIs throughout, including CoreData for my internal data store.

The EndNote desktop app supported plug-ins through a C API. Using that API I was able to develop a sync plugin that could synchronize changes between the iPhone app and the users desktop app (this was in the days before ubiquitous cloud access). This gave me a foundation in C programing and debugging.

After completing my six-month co-op placement I was hired part time for another six months to contribute to the primary EndNote team. I joined the team for standups and contributed bug fixes and small feature modifications.

Drexel University College of Medicine

Web Application Developer – Medical Training Simulator
2008 – 2009

I was hired by a medical training team within the Drexel College of Medicine as part of a six-month co-op placement. They were developing an interactive video-based training simulator to facilitate remote learning. They wanted students to be able to perform a simulated auscultation exam (listening to the heart and lungs) in a live video chat setting, manipulating simulated instruments on the real video image.

The challenge was to identify the location of the person, and the relative position their heart and lungs, within the video feed. I was a Sophomore with no computer vision experience, and Flash at the time had no computer vision APIs that I could use. Everything I built was implemented manually on raw pixel data, and all of the image analysis had to run in 1/24th of a second so the video did not lag.

I implemented edge detection algorithms which then enabled point-set analysis using the Hausdorff Distance. Through this I was able to identify the outline of person in in the camera, and then the relative location of any point within that outline. Eventually with fine tuning I was able to achieve reliable identification of a person without the need for a bluescreen/greenscreen in typical lighting conditions while maintaining close to 24fps video performance.