To work in an IT position with an organization that challenges my skills and abilities. To demonstrate my wide skill set, work hard and succeed in projects that make important contributions to an organization's business. To work in the Linux and open source environment.


Computer Skills

Languages Python, Scala, HTML/CSS/Javascript, Ruby, Java, C/C++, Perl, Tcl/Tk.
Tools Eclipse, GNU Tools
Operating Systems Linux, BSD, Mac OS X, Windows, Windows CE.
Databases MySQL, PostgreSQL, SQLite.
Technologies UML, Django, Ruby on Rails, J2SE, Bootstrap, JQuery, AngularJS, NodeJS, Apache.
Project Management Microsoft Project, Git, CVS, Subversion, Perforce.

Work Experience

  • Consultant
    Relagent (September 2014 - October 2015)
    (HTML/CSS/Javascript, AngularJS, Bootstrap, JQuery, NodeJS, Jasmine, Karma, Protractor)
    Relagent's product Cocoa, does text mining of medical records in the Biomedical domain.
    • designed and implemented a Single-Page Web Application(SPA) (Relagent MEDalyst) as the user interface for Cocoa's annotations. Designed the multi-tabbed, multi-layered application interface to represent the complex annotated information after examining the existing disparate web pages and understanding the domain. Generated and submitted user queries, received the annotations from the server as JSON, and displayed different information in appropriate ways (eg. graphs, timelines, panels, etc). Wrote unit tests and end-to-end tests in Jasmine using the Karma and Protractor APIs.
  • Software Developer
    Mahalo.com (September 2009 - October 2009)
    (Python, Django, HTML, CSS, Javascript, Apache, MySQL, Mac OS X, FreeBSD, Apache)
    • very rapidly learnt the codebase and the technologies (Django, JQuery) used in order to implement feature extensions for the website. Implemented both middle and back-end feature extensions (using MySQL, Django) as well as front-end webpage features (using HTML/CSS/Javascript).
  • Senior Software Developer
    Stamps.com (November 2007 - July 2008)
    (C#, C++/CLI, .NET 2.0, SQL Server)
    I worked in the Server team responsible for the backend servers of various web services including the company's flagship online Postage Printing.
    • participated in the refactoring of the core web-facing high-performance server from Managed C++ to C# and C++/CLI. This involved breaking apart the existing monolithic architecture into a .NET component model framework, with some components in C# and some in C++/CLI.
    • responsible for another web service for the Stamps.com client from initial refactoring to ongoing maintenance.
    • implemented new functional requirements (for example, the USPS 2008 rate change) on different web services as required. Modified SQL Server stored procedures and the middle-tier code to achieve functionality.
  • Network Software Engineer
    Konica Minolta Business Solutions (July 2007 - September 2007)
    (Java, J2SE, JDF/JMF, XML over HTTP, XSD, DOM, Ubuntu Linux, PostgreSQL)
    I worked in the Printer division that was responsible for PrintGroove, the software suite running in Printshops. I extended the existing PrintGroove server to communicate with printers using a new XML over HTTP based protocol called JMF.
    • Designed and Implemented a framework to enable XML over HTTP communication with printers to obtain status information This was the first time that the new protocol standard, JMF (Job Messaging Format), had been used to obtain device information in the product.
  • Software Engineer III
    Alpine Electronics Research of America. (June 2005 - July 2007)
    (Embedded Visual C++, UML, Design Patterns, Template Metaprogramming, Windows CE)
    I worked in the Advanced Development Group in the Navigation Division which was responsible for making Alpine's Navigation products.
    • implemented six features for Alpine's next-generation Navigation product, of which four were totally new features, in C++ with the UML. Clean room implemented the old features in C++ after reverse-engineering the old code in C. Made extensive use of Design Patterns (State, Strategy, Singleton, Bridge, Template Method), State Machine programming, Template Metaprogramming and Comprehensive Unit Tests in CppUnit.
    • led the design and development of a new feature, Exit Information. This involved multiple modules of the product. Called meetings to determine labor appropriate to each module, and then insisted on design diagrams from each module to provide the necessary interfaces. Called meetings to review the designs. At the completion of the various modules, integrated the modules to enable the feature.
    • improved the performance of the above features to ensure that the final product was acceptable to the customer.
  • Senior Software Engineer
    First Virtual Communications, Inc. (now part of Radvision (Spirent) (November 2000 - January 2005)
    (C/C++, Perl, Python, Tcl/Tk, Windows, Linux)
    FVC makes Internet videoconferencing, audioconferencing, and data collaboration software. Their products include the Conference Server, Click-to-Meet 4.0, and Click-to-Meet Express. I was part of the Conference Server team.
    • added PictureTel's (now Polycom's) proprietary iPower (People and Content v0) extensions to the H.323 videoconferencing protocol to the Conference Server in C++.
    • created an H.323 dissector for the open-source Wireshark (formerly Ethereal) Network Analyzer using RADVision's H.323 stack in C. This enabled the company to abandon the expensive and proprietary network analyzer NetXRay (now called Sniffer), and thus effect a company-wide savings and improved productivity.
    • wrote the H.225(RAS) messaging for the Click-to-Meet gatekeeper.
    • automated the scalability measurement of the Conference Server with a Performance Automation test suite in Perl. The Conference Server was connected with a progressively increasing number of endpoints until it could not take the load any more, when it was reset and the whole test restarted with a different set of parameters. Perl Modules were used from CPAN to graph the results, and frozen binaries were produced for mass distribution.
    • represented the company at IMTC's H.323 Interoperability Events. Took beta and finished versions of the Conference Server, and tested it with endpoints, clients and other H.323 entities. Travelled to cities across the United States, set up equipment for the Conference Server, and other tools like Network Analyzers at the test site. Conducted personalized tests with a lot of companies, sometimes 50, over the course of a week. Identified common interests of testing with each company, and ran through a battery of tests, usually for about an hour with each one. Wrote detailed reports for each test, and an overall report, as well as general impressions to deliver back to the company. Also, recorded bugs and possible enhancements to be fixed and implemented later.
    • extended the API of an existing third-party Test Tool in Tcl/Tk. Made the Test Tool network-controllable by listening over the network at a particular port to API requests and then executing the API requests.
  • Software Engineer
    CTC Parker Automation. (May 1998 - November 2000)
    (C/Visual C++, Windows)
    CTC Parker Automation has automation products for the manufacturing industry in the DOS and Windows areas. I was involved in the design, development and release of MachineShop Toolbar. The multi-threaded product was a Microsoft Windows NT/95 taskbar-like toolbar which docked on the screen, and communicated to another product through two different protocols.
    • produced the engineering specification for the product.
    • implemented the multi-threaded communications aspects (FTP client) of the product and also the GUI aspects (a Docking bar in Windows).
    • created the InstallShield setup for the MachineShop Toolbar.
    • enhanced the product and its install to Version 1.2. Led a group of two. Used Microsoft Project to detail out the exact times of delivery for the enhancements. Delivered a week before due date.

Other Projects and Related Skills

  • Website Design and Development (2010 - 2014) (HTML/CSS/Javascript, Ruby on Rails, Google AppEngine, Google Sites)
    Created various websites for different needs - Professional Associations, Businesses, and Professionals (Doctors and others). Determined requirements by consulting with stakeholders. Chose technology depending on requirements and cost. Designed the website with feedback from the stakeholders. Created the website graphics using open-source tools like GIMP and Inkscape.
  • Script Tools (2000-2007) (Python, etc.)
    Miscellaneous scripts for various needs. Extracted information from the GenBank sequence database. Converted a personal music directory of MP3 files to OGG files. And more...
  • Internet Agents (2000) (Java)
    In the earlier days of the World Wide Web, wrote a program EmailFinder to extract job-related email addresses (ie. containing 'jobs', 'hr', etc) from web page sites. Used EmailFinder (source code) to look for jobs myself and to find my job at First Virtual Communications!

School Coursework

A full listing is on the School Coursework page.