CV

Benjamin M. Watson
ben@benwatson.org

Education

MS Computer Science

May 2006
George Washington University Washington, Washington, DC

  • Area of focus: Software engineering, user interfaces
  • GPA: 4.0

BS Computer Science

August 2004
Brigham Young University, Provo, UT

Work Experience and History

Software Design Engineer at Microsoft
SDE, Microsoft, Bing, 2008 – Present

  • Query Pipeline team. Middle-tier components of Bing search engine.

Led development of large application at foremost satellite imaging company
Application Engineer, GeoEye, SeaStar Fisheries Information Service  2005 - 2008

  • Developed large product (150,000 LOC) used by thousands in fishing industry (C++)
  • Developed services for real-time data delivery, handling thousands of messages per day (C#, XML, HTTP, FTP); interfaces with 3rd  party systems across Internet.
  • Developed internal tools for automating processes, managing assets, and simplifying
    analysis of oceanographic data
  • Improved reliability of software with unit testing; eliminated unintended down-time
  • Additional technologies used: MFC, Simple MAPI, Win32 API, IIS, SQL Server 2000,
    Exchange Server 2003, NUnit, Nant, ASP.Net
  • Led team in all software development activities

Co-Designed and programmed innovative web/DVD language learning tool
Humanities Research Lab, Brigham Young University,
April 2003 – December 2003

  • Pioneered use of integrated web/DVD language instruction
  • Designed extensive database for unique user, media, and language requirements
  • Featured DVD control, multi-lingual dictionary, customizable play lists, quizzes, interactive film scripts, and ability to present everything in multiple languages
  • Learned, almost overnight, JavaScript, MySQL, and PHP

Designed and implemented credit reporting automating application for bank
Far West Bank, Center St. Branch, Provo, UT
July 2002 – September 2002

  • Worked with bank employees to gather requirements, develop, and test an application for automating credit card report processing
  • Intuitive interface developed in Visual C++/MFC for non-technical users.
  • In regular use by bank employees

Effectively tutored college computer science students as a teaching assistant
Brigham Young University
January 2004 – August 2004

  • Taught classes and tutored in senior-level user interface design (Java/Swing), senior-level distributed systems (J2EE), and sophomore-level C++
  • Strong ability to teach complex concepts; received much positive feedback

Enjoyed working in a diverse, diplomatic setting as an IT assistant
United States Embassy, Copenhagen, Denmark
September 2001 – January 2002

  • Maintained and performed security audits on NT 4 servers
  • Maintained network infrastructure and assisted embassy staff with all manner of personal computer needs
  • Praised for excellence and dedication by both IT manager and ambassador

Other Interests, Skills, Activities, and Experience

  • Interest in operating systems, mobile applications, and distributed systems
  • Proficient in UML, relational databases, database design, and Linux
  • Published articles on www.msdnaa.net (see below)
  • LEGO® modelling, piano, music, crosswords, Italian language and culture, literature
  • U.S. Citizen, experience in high security environments

Detailed Project Descriptions

Personal Projects

BrickBuilder: LEGO® inventory software in C# (in development)

  • Tabbed interface
  • Custom-drawn controls for better inventory visualization
  • Interfaces with BrickLink (an online LEGO® database and marketplace)
  • Helps with discovering pieces you need to build a set

Windows Media Top 10: WMP11 plug-in

BRayTracer: A ray tracing rendering

Projects of note (received an A for all):

  • Designed and built a grid-computing framework with a plug-in architecture. Allowed any type of distributable application to be developed, deployed, and run on the nodes.
  • FAT-12 driver for floppy disks that cross-compiled on Linux and Windows
  • Multi-level paging virtual memory simulator
  • Solution to ACM’s coding competition problem Crossing the Desert involving a variant of reverse backtracking; found all possible solutions in relatively short amount of time
  • Drawing program for simple geometric shapes, smoothed curves, images, and the ability to link and embed existing paint files, rotated and scaled, into other paint documents
  • TCP/IP stack (including Ethernet, ARP, IP, and TCP/IP layers) and simple HTTP server
  • Developed with a group: J2EE-based web application: course registration system using JSPs, custom tags libraries, Enterprise Java Beans, JBoss, and MySQL

Published Articles

Available at this site.

(with sample feedback from readers)

Assembly Code from a C/C++ Point of View
A multi-part series exploring the value of knowing what happens a level lower than source code by looking at the assembly code generated by C++.

Threads in MFC Part I: Worker Threads
“Excellent tutorial. Well written AND useful. Rating: 5 Stars *****”; “Comparing this to other explanations of threads, this is by far the best.”

Threads in MFC Part II: Synchronization Objects
“Good tutorial. Rating: 4 Stars: **** I’ve been working with threads using ‘Programming Windows With MFC’ by Jeff Prosise. Your tutorials cleared up some misconceptions I’ve had.”; “Alas! A tutorial that doesn’t mince too many words! Thanks for the clear and concise explanations.”

Custom Clock Control in MFC
“Very in depth tutorial. Good work.”; “all i have to say is…wow…very good job. 5 *s”; “This is very cool, and very informative!”; “You covered a lot of good useful material. Thanks.”

Copies of these articles and others are available upon request.

References

In order to protect their privacy, they are available upon request. Please contact me.

Popularity: 2% [?]

del.icio.us:CV digg:CV furl:CV reddit:CV