I find my greatest professional joy when I am designing, developing and inventing new technologies that are meant to enrich the lives of the people that use them. The subject areas I am most fond of are: collaboration and social software, novel and transparent user interfaces, and information visualization. I am a compassionate manager and leader, a sincere teammate who thrives in an environment of smart and creative people that regularly challenge each other, and a prolific inventor with over 70 patents pending.
Findings.com (a Betaworks company) - New York City, NY (07/2012 - present)
One of two software engineers working on the full stack of findings.com, primilary responsible for the product's front-end. Findings is a service which allows people to clip, collect and share text snippets from the web.
- Conceived of and implemented "staff mode" for the site. This function allows staff members to toggle their view of the site to either emulate a user's view, user mode, or enter staff mode where all elements on the site have staff controls added for promoting content or acting on spam quickly.
- Wrote and manage releases of the findings Chrome extension - a tool that highlights text on a web page which has been collected to the findings service.
- Wrote a tool for scraping the Amazon Kindle Highlights page to work around the fact that Amazon does not provide an API for highlights.
- Develped a page for site administrators that shows a breakdown of various statistics related to site activity.
- Wrote the backend for the user activity stream. The previous implementation was restricted to a static list of possible acitivites. My rewrite made it dynamic allowing for additional types of activity to be added in the future.
Software Engineer; Team Lead
Google - New York City, NY (06/2010 - 07/2012)
Software engineer and team lead for a display ad management software product. Still working past the acquisition as a startup would, so I wear many hats in this role.
- Took over and streamlined the release process for the product. Implemented a release strategy and wrote release code that allowed minor releases to happen without system downtime.
- Wrote a custom task queue management system based on MongoDB for offloading long-running tasks from the web server process.
- Managed the infrastructure for the front and back end of the product, including PostgreSQL, MongoDB, memcached, Nginx, Django/Python/uWSGI and Java/Jetty based application servers.
- Built a system, based on Django/Chronograph, for doing server and system health monitoring and alerting.
- Built a system status console application to display server and system health to augment monitoring and help identify early problems.
- Architected a system for doing real-time and batch alerting for customer concerns about their ad campaigns.
- In the absence of a dedicated UX designer, I step into make decisions-based-on-experience when product teams and engineers reached an impasse on the details of implementing a feature.
- Implemented a variety of code and infrastructure updates to improve application speed and performance.
Software Engineer; Team Lead
Invite Media - New York City, NY (10/2009 - 06/2010)
Software engineer and team lead for a display ad management software product. Invite Media was acquired by Google.
Independent Software Engineer
Self - Long Island, NY (03/2010 - 10/2009)
Spent time working on projects of my own personal interest.
- Memoreact - Wrote an iPhone game that combined reaction time and memory. Source and details
- Twitter Year - Wrote an visualization tool for a year's worth of twitter trends. Source, details, and demo
- twoletterscrabblewords.com - Wrote a small instructional tool for teaching people the set of permissible two letter words in scrabble. Source and demo
Senior Software Engineer; UI Warlord; Problem Solver
IBM Software Group - Lotus Connections Development - Research Triangle Park, NC (06/2008 - 03/2009)
UI lead for the Lotus Connections development team, serving as the UI development subject matter expert across all eight of the Lotus Connections applications.
- Choreographed the efforts of 13 UI engineers, in 3 countries, working on a family of 8 applications, to insure that the product's design points are consistently applied and implemented.
- Developed, refined and maintained the UI Java / JSP code that is common to all services.
- Regularly harmonized with the user experience and visual design teams to assess which features were possible in the release cycle, and to come up with creative ways to implement their designs.
- Lead the product-wide effort to improve the performance of all of 8 applications.
- Crafted a performance improvement strategy which uses open source and originally developed libraries along with current best practices.
- Delivered an implementation of the strategy which has lead to a nearly four-fold performance increase in the reference application.
Technical Evangelist; Business Partner Liaison; Social Software Consultant
IBM Software Group - Lotus Business Partner Enablement - Research Triangle Park, NC (06/2006 - 06/2008)
Supported the Lotus brand as a technical evangelist, business partner liaison and consultant for the portfolio of collaboration and social software.
- Developed reusable collateral in the form of documentation, articles, interactive learning labs and code samples in support business partner efforts to integrate with Lotus products.
- Delivered over 70 presentations on collaboration and social software technologies to a variety of customer, business partner and internal IBM audiences.
- Lead a series of brainstorming sessions to help business partners discover news ways to integrate with Lotus software.
- Called on as a subject matter expert by several internal groups to consult on plans to implement social technologies inside and outside of the company.
- Supported over 80 business partners in delivering solutions in time for the annual Lotus trade show.
- Represented the business parter enablement department on the Lotus Connections product offering team to insure that the needs of our business partners were addressed in product plans.
Software Engineering Manager
IBM Systems and Technology Group - Research Triangle Park, NC (07/2004 - 06/2006)
Managed a distributed team of UI software engineers located in New York and North Carolina.
- Performed every aspect of personnel management including hiring, separating, developing, promoting, mentoring and coaching, for a department of 18 employees.
- Delivered a balanced budget for employee, contractor and capital expenses in our cost recovery subdivision every year.
- Mentored a team of engineers developing web-based prototypes for the next generation of mainframe system administration tools.
- Lead a team of peer managers in creating a set of expectations and standards which were applied universally across a previously disjoint team.
- Designed and developed a set of tooling for managers to be able to allocate bonus budgets according to HR policy.
- Designed and developed a set of tooling for creating distribution lists, team rosters and organization charts with faceted browsing capability which still serves over 40,000 users per month.
Visiting Software Engineer
IBM Research - San Jose, CA and Hawthorne, NY (11/2003 - 07/2004)
Hand selected for a six month rotational assignment as a visiting software engineer with IBM Research.
- Consulted for the WebFountain text analytics team to identify a rich client technology platform to use for custom end user applications.
- Delivered a reference implementation of the platform, based on Eclipse, which accommodated plugging-in various text analysis and visualization tools.
- Presented assignment's findings at an internal technology fair attended by 4,000 people.
Rich Client UI Software Engineer, Team Lead and Product Manager
IBM Systems Group, WebAhead - Southbury, CT and New York City, NY (11/2000 - 11/2003)
Worked as a team lead, product manager, UI designer and rich desktop client engineer for IBM's most successful advanced technology prototype team.
- Lead a team of 4 engineer/designers in developing an enterprise scale messaging client platform deployed to over 50,000 people.
- Personally designed and developed the user interface and framework for a suite of broadcast messaging applications.
- Iteratively gathered and acted on user feedback from a 1,000+ person community through newsgroups, surveys and direct conversation.
- Facilitated hand-off of the successful prototype platform to the IBM Lotus Sametime 7.5 commercial product development team.
- Designed and developed the UI for a photo resizing tool in the online employee directory which has been used by over 300,000 employees.
- Designed and developed a variety of rapid prototypes to demonstrate the value and practical application of new technologies.
Front-end Web Development Engineer and Problem Solver
IBM Global Services - Hawthorne, NY and Sydney, NSW, Australia (05/1999 - 11/2000)
Worked as a front-end engineer, team co-lead and design liaison for the team that produced the official web site of the Sydney 2000 Olympics.
- Co-led a team of 6 engineers in producing the site that served 230 million page views to 8.7 million people in 17 days.
- Developed a CGI page filter which resulted in a ten-fold improvement in page performance by identifying and working around a bug in one of the supported browsers.
- Developed an interactive visualization applet that allowed visitors to see what time it was in various parts of the world.
- Developed a Perl based content production system for the Paralympic Games site.
- Developed web based tooling to automate the creation of common web content based on templates.
- Developed portions of the front end of the Sydney Olympic online store.
Master of Science in Electrical Engineering
The Cooper Union - New York City, NY (09/1997 to 05/1999)
Thesis: Applying Visual Analysis to Ground Force Reaction Data in the Study of Gait Pathology
Completed a master's thesis project based on a request by researchers at Lenox Hill Hospital. The researches had purchased a "force plate" which measures the force applied as a patient walks on it in order to analyze gait pathology and athletic performance. Using the Win32 API and OpenGL I wrote software which read the stream of data from the force plate and a video feed. The software displayed a synchronized side by side view of the force plate's data (displayed as a 3-D visualization of the direction and magnitude of the force applied to the plate) and video of the human subject being measured.
Bachelor of Engineering in Electrical Engineering
The Cooper Union - New York City, NY (09/1993 to 05/1997)
Thesis: Reduction of Low Frequency Loudspeaker Distortion Using an Adaptive, Driver Independent, Digital Signal Processing System
Completed a senior thesis project with the goal of reducing distortion in low frequency loudspeakers by performing a real time analysis of it's moving parts. This hybrid digital/analog project involved implementing an adaptive filter algorithm in assembly language on a Spectrum PC/C5x DSP board. The filter's response characteristic was controlled by analyzing the output of an accelerometer mounted on the speaker's cone.
Author and Inventor on 72 patent filings
Lead and co-inventor on a variety of inventions in the area of user interface technologies, publish/subscribe messaging, voice enabled applications, social software, collaboration software, accessibility technologies, pervasive device applications, and virtual worlds.
- Scrollbar User Interface for Multitouch Devices ( Mar 2009 )
- Method for Managing Transient Contacts ( Jan 2008 )
- Method and User Interface for Creating an Audio Recording Using a Document Paradigm ( Sep 2007 )
- Context Based Grammars for Automated Speech Recognition ( Jun 2006 )
- Audio Accessibility Enhancement for Computer Audio Events ( Apr 2006 )
US7,568,106 Cooperative Non-Repudiated Message Exchange in a Network Environment
US7,509,382 System and Method to Deflect Email Threads to a Blogging System
US7,503,007 Context Enhanced Messaging and Collaboration System
US7,325,034 Method and apparatus for scalable peer-to-peer inquiries in a network of untrusted parties
Author of 14 publications
Topics include product APIs, social software, Java programming, broadcast messaging and innovations in social software and user interface.
- IBM developerWorks: Fifty ways to leave your bookmark: An experiment in social authoring ( Apr 2008 )
- IP.com: System Method and User Interface for Spellcheck Interaction ( Oct 2006 )
- ACM Queue: Messaging to the Masses ( Sep 2003 )
- Java Digital Journal Online: Sets and Lists and Maps, Oh My! ( Jun 2003 )
Awards and Recognition
- 2008 - Master Inventor, IBM Corporation
- 2007 - Top 10% performer stock grant award, IBM Corporation
- 2007 - First place - Outstanding presentation award, IBM Academy of Technology
- 2003 - Outstanding technical achievement award, IBM Corporation
- 2002 - Top 10% performer stock option award, IBM Corporation
- 2000 - Gold medal achievement award, IBM Corporation
- 1999 - Team award - Sydney Olympic Online Store, IBM Corporation
- 1997 - First place - Student paper / presentation competition - Northeast Region, IEEE