Katherine C. Rhodes
Senior Web and Software Developer
Phone: (617) 308-9130
Email:
masukomi@masukomi.org

 

 

Description:

I have been programming to support companies I have owned or worked for for over twelve years now. In that time I have learned the practices that can only be learned through experience. I have learned how to write code that is modular, extendable, maintainable, and readable. I understand the difference between code that will get the job done fast and code that will get the job done well, and when to use each. I know how a little good planning can save a project countless man hours. And, most importantly, I know the limits of my knowledge and when to ask questions of those who know more than me.

 

 

Technical Skills:

Operating systems:
Windows NT, Windows 2000, Windows XP, Mac OS (versions 5-9 and OS X), Solaris, Linux, FreeBSD

Languages:
Java, Ruby, Perl, Perl/Tk, HTML, JavaScript, SQL, Swing, Python, PHP, XML, XSL/XSLT

I am well versed in most of the industry standard applications and frameworks for web development. If you're interested in my level of experience with a particular application or framework, please ask.

 

 

Writing:

Books:
Co-author of "
Professional Java Tools For Extreme Programming". Specifically, the section on Automated Swing Unit Testing.

Articles:
Best Practices for Web Developers
http://www.masukomi.org/writings/best_practices.pdf

XML-RPC Vs SOAP -
http://www.masukomi.org/business/writings/xml-rpc_vs_soap.pdf

Multilingual Video and Audio News Alerting” -
In Proceedings of Human Language Technology  / North American Chapter of the Association for Computational Linguistics 2004 (HLT/NAACL 2004 Demonstrations), Boston, MA, May 2004. David D. Palmer, Patrick Bray, Marc Reichman, Katherine Rhodes, Noah White, Andrew Merlino, Francis Kubala.

 

 

Employment History:

09/04 - Present – International Strategies Inc. / IES Ltd.

My Role: Web Developer

I spent the majority of my time at International Strategies working on a web based system called ForwarderEdge that combined Customer Relationship Management, Sales Force Automation, and Content Management tools specifically tailored to the needs of global logistics service providers. ForwarderEdge is written in Java and based on the ofBiz framework. I was tasked with adding a variety of new functionality to the application's back end and the development of a separate, and extremely modular integration server that leveraged Java Message Service (JMS) technology to ingest shipment, rate, and account data in whatever format our customers have available, convert it to a standard XML schema, and send it to the appropriate ForwarderEdge installation for it to ingest.

A number of scripts were also written in Ruby and Perl to provide fast examples of importing potential customer's data into ForwarderEdge. The rapid development cycles of Ruby and Perl allowed us to easily deal with the frequently changing customer data schemas and generate scripts that could act as functional templates for the more formal Java code that would later be installed in the Integration server.

12/02 – 04/04 - Virage

My Role: Web Developer

At Virage I worked on the Virage VS News Monitoring system, later titled eVitap. A real-time monitoring and content management solution combining automated scheduling, analysis and encoding of incoming news content. This highly reliable and scalable system greatly reduces the resources traditionally used to manually capture and process broadcast news. The benefits of agencies or organizations making this investment include real-time information access, data integration into common analyst’s tools, and compatibility with existing data management systems.

The solution helps organizations and government agencies to automatically digitize, categorize, centrally manage, alert and distribute vast collections of news content quickly and efficiently. With this solution, organizations can process large volumes of content and provide users or analysts up-to-the-minute access and information right at the desktop.

My work has spanned two major iterations of this system's web based interface. The first was written in Perl, VTL (an in house templating language), Java, and JavaScript. The more recent version utilized Java, Struts, XSL, DHTML, and JavaScript and integrates with the Autonomy search engine and a variety of SQL databases.

In addition to the web interface I wrote three stand-alone java apps that interfaced with the server to provide users with a variety of information:

  • StatusChecker - Gave users a table based summary of how may video captures were successful, partially successful, or failures and provided statistics on each, sample keyframes from the video, and a link to play each of the videos from the Java app.

  • Infolyzer - Allowed developers and advanced users to run raw XML commands into the search engine to query, or alter assets. Included Swing based Tree representations of search results and allowed users to easily delete large numbers of assets at once.

  • LogHarvester - Gathered log files from an unlimited number of locations on an unlimited number of servers, in an variety of log formats. It then selected only the sections of the log that were recorded since the last "harvest", placed them in a dated folder and zipped it up for mailing.

06/02 – 09/06 - AtomicPink

My Role: Lead Developer

At AtomicPink, I have managed subcontractors and tasks, customized shopping cart systems, developed a content management system, and handled a variety of other server-side programming needs in Java, Perl, and JavaScript.

01/02 - 03/02 - Gale

My Role: Java programmer

In this short term contract, I developed and coded an online quiz management and serving system that allows authorized users to create new quizzes and groups of quizzes and reuse questions in multiple quizzes without having to re-enter them. Quizzes can be created on a development server and shipped off to production servers. Utilizing simple tags in JSPs, webmasters can specify a quiz group and quiz scheduled to run on the current date will be displayed and tallied upon submission.

Upon termination of the contract, I continued to maintain, update, and enhance the source code after the termination of this contract. If you are interested, please e-mail me for details and/or code examples.

02/01 - 01/02 - iPhrase

My Role: Webmaster and Software Developer

  • Installed, and coded enhancements and bug patches for a Content Management system for the intraweb.

  • Wrote a secure authentication method to allow customers access to a special software section of the site.

  • Maintained and updated the public web site.

  • Designed e-mail newsletter and opt-in mailings.

  • Wrote log analysis software to allow tracking of any desired information regardless of how specific.

  • Created a variety of internal demonstration sites for sales presentations.

  • Created and updated a number of Flash animations and presentations.

  • Integrated web registration form with the sales force's Goldmine contact manager system.

03/00 -10/00 - Inforonics

My Role: Web Developer (contractor through AmBit Technology)

  • Re-architect ThomasRegister.com site using modular object oriented technologies.

  • Wrote core API for search engine for performing searches and interacting with database.

  • Designed template system enabling multiple simultaneous looks for GUIs and making instant site wide changes.


  • Environment: Windows NT, OS X, Solaris, Linux, BSD, Perl, HTML,Java Script, Web.

05/99 - 12/99 - General Engineering

My Role: Web Developer (through AmBit Technology)

  • Planned and implemented a variety of Perl scripts and templates allowing for analysis results to be presented in client specific formats.

  • The modularly-designed scripts talked with an Oracle server and notified code maintainer with information on potential problems.

  • Scripts were also written to sort through a legacy database and to update numerical values while accounting for misspellings, duplicate entries and similar chemical names.

  • Environment: Windows NT, MAC OS, Linux, Solaris, Perl, HTML, Oracle, Web.

02/99 - Microtouch Systems

My Role: Web Developer (through AmBit Technology)

  • Performed development in HTML for backlogged client projects.

  • Environment: Windows NT, MAC OS, HTML, Java Script, Photoshop, FrontPage, Web

03/99 - 05/99 - Raven Technologies

My Role: Developer

  • Advised on the planning of a program for a retail clothing site.

  • Created Perl scripts to display updated loan rates for a local banking establishment.

  • Environment: MAC OS, Linux, Perl, HTML, Web.

09/92 - 02/01 - TheOnly.com

My Role: Principle/Web Developer

In the nine years I worked TheOnly.com (both full and part time) I did pretty much everything that's been done to a web site with Perl. If it's something that a small to mid sized business would need I probably did it.

 

 

Software Development:

Code samples are available for all of the open source projects listed below. I would recommend taking a look at acl_plus_rbac and grouped_settings for Ruby examples with good unit test coverage and Aspirin and ListfulThinking for Java.

07/06 – Present - TicketEverything!

Ever find a bug on a web site and have no good way to tell them about it? Or, when you do find their bug system it's some hideously geeky monstrosity? TicketEverything! is a hosted ticket system that lets your users file bugs, feature requests, and more about your site. No installation, easy to use, and it's something you'll be happy to link your users to. It's origins lie in an open source RailsDay project.

07/06 - Presentacl_plus_rbac

My Role: Sole Developer

acl_plus_rbac brings together the power of Role-Based Access Control and Access Control Lists in a simple, open source, Ruby on Rails plugin; allowing you to use RBAC to control access to record types and ACL to exclude specific records.

07/06 - Presentgrouped_settings

My Role: Sole Developer

Grouped Settings is an open source Ruby on Rails plugin that makes managing a table of global and grouped key, value pairs easy. Use it to easily manage global app settings, user specific preferences, and more.

06/03 - Present - ListfulThinking
http://www.listfulthinking.com/

My Role: Sole Developer

The initial version of ListfulThinking was a deceptively simple ToDo list manger. Written in Java and utilizing the SWIXML XML to SWING GUI toolkit. ListfulThinking will prioritize your lists for you based on four factors: Internal Importance, External
Importance, Technical Feasibility, and Creative Feasibility. See
http://www.listfulthinking.com for details and screenshots.

The concepts that went into the Java version of ListfulThinking have been taken and integrated with a new web based version written in the Ruby on Rails framework. Unfortunately the new version will not be open source.

04/03 - Present - EpochTime
http://tools.masukomi.org/

My Role: Sole Developer

A simple open source utility to convert between epoch time and human readable
time (works in both directions). Written in Java this application
utilizes the SWIXML XML to Swing GUI toolkit.

03/03 - Present - Aspirin
http://aspirin.dev.java.net/

My Role: Sole Developer

An embeddable, or standalone open source SMTP server written in Java.
Useful when your application needs to send mail but you don't want to
require users to configure the app to know about a server, or, if one
isn't available. Development is currently suspended on this product.

03/03 - Present - ServerWatcher
http://tools.masukomi.org/

My Role: Sole Developer

An open source graphical web site monitoring application written in
Java that utilizes the Thinlet XML based GUI framework. Allows users to
enter the url to a web page and a character sequence to watch for.
Windows users can also issue a ping command to the server at a regular
interval. Logs all failed connects and gives a visual and audible
indication when a site is down.

01/03 - Present - Caterpillar
http://caterpillar.masukomi.org/

My Role: Sole Developer

An open source news aggregator that supports RSS, RDF, and ATOM feeds. Downloaded entries are stored in an embedded SQL database and are completely searchable using simple or complex query semantics. Caterpillar strives to be an extremely simple and easy to use news aggregator with a small visual footprint and powerful features. The latest, not currently public, version of Caterpillar helps deal with information overload by adding Bayesian filtering to find and highlight “interesting” articles in your subscribed feeds.

03/02 - Present - About-Time
http://about-time.dev.java.net/

My Role: Project Manager / Java developer

Project manager for this open source time tracking and billing software
package with numerous project management features. About-Time has
recently undergone a complete rewrite to allow for easier developer
participation, easier future expansion, and removal of it's
previous JSP dependencies.

01/02 - Present - masukomi.org

  • Developed CAPI, a universal Comments API that utilizes XML-RPC for the creation and retrieval of comments from content management systems that support them. (http://www.blogness.com/comments/commentsAPI.html)

  • Developed a system to track daily readership of RSS feeds.

  • Developed a package of open source Java classes to simplify many common web programming needs like user management, content management, and image resizing.

06/02 - 12/02 - Zoe
http://www.zoe.nu/

My Role: Project Manager, Resource Coordinator, Java Developer

In addition to answering questions and helping new developers learn their way around the application. I helped to bring Zoe into the open source spotlight.

Read the
NewsForge Article about Zoe and my involvement in it.

08/02 - 11/02 - iBatis http://www.ibatis.com/basement/breakdown/breakdown.html

Added file level statistics and debugging features to iBatisBreakdown. Rewrote the majority of the code to support comment detection in any programming or markup language and allow for the quick development of classes to support new languages.

 

 

Other:

Over the years, I have done a large amount of traditional graphic design work and prepress work for traditional and flexographic presses. This information has been intentionally removed from my resume because of its tendency to attract companies looking for design-only positions. If you are interested in my experience with such things, please contact me.
 

 

 

References:

Available upon request.