Considering Subcontracting For Ruby On Rails Consider The Following

Considering Subcontracting For Ruby On Rails Consider The Following

Java, Ruby on Rails, Perl, PHP, Python, XSLT, Shell scripting, C, C++, x86 Assembly, Visual Basic

Ruby on Rails, Sequel, Rack, Mongrel, RMagick, Starling, Capistrano, libxml ruby, Ruby extension development, memcached

J2EE, Servlets, JSP, Swing, AWT, SWT, JAXP, JAXB,  JCA, JavaMail, Java Security, EJB,  JDBC, JWS, JAX-RPC, IIOP, RMI, Struts, JNDI, Xalan, Xerces, Toplink, Hibernate, Spring Framework, Apache Ant, Maven, JasperReports, JNI, JNA, Eclipse Plug-in development

XML, XSLT, XPath, libxml2, libXSLT, HTML/XHTML, JavaScript, DHTML, AJAX, SOAP, WSDL, UML, SQL, PL/SQL, T-SQL, Oracle, Oracle Business Intelligence (OBI / OBIEE), MySQL, SQL Server, Sybase, Postgres, ODBC, DAO, ADO, Data Warehousing, ETL development, Data Mining, Data Modeling, Schema design, Stored Procedure development.

OOP, OOD, OOA, OOAD, UML, ORM, O/R mapping, J2EE, Apache Ant, Maven, Microsoft Visual Studio, Visual C++, Visual Basic, VB, VC++, VisualAge, Borland C++, Turbo C++, LyX, Docbook, Visio, Dia, CVS, Eclipse, Sybase PowerDesigner, ERWIN, TOAD, TORA, Agile programming, SEO optimization

Linux system administration, DRBD, LVM2, EXT4, Heartbeat, HA Linux administration, Monit, Apache, JRun, Websphere, Tomcat, NGINX, Mongrel, Thin, Squid, Memcached, Kerberos, DJBDNS, MyDNS, Trac, Postfix, Qmail, Gentoo, Virtual Box, Windows, Mac OS X, Solaris, Unix, Cygwin, MingW,

Experience

Transaction Network Services, Inc.

Application Systems Architect

As an employee of TNS, I worked on a wide variety of challenging projects requiring me to continually expand the range of my knowledge and abilities, correctly identify critical decisions at all stages of the development life cycle, and smoothly integrate multiple heterogeneous systems into the overall design.  Some of my responsibilities include:

Aggressive optimization of application and database performance for several existing J2EE applications.

Ongoing maintenance and enhancements to internal billing management systems, using Java and Spring.

Developed a Ruby on Rails application, integrated with Oracle Applications (Oracle EBS), to enhance existing order maintenance capabilities, expand auditing and change-tracking and improve employee productivity.

Developed several data marts for the corporate data warehouse.  Duties included:  requirements analysis, schema design, ETL development using Pentaho and PL/SQL, quality testing and accuracy validation, OBIEE repository development, OBIEE report development, documentation using LyX and markdown.  Some of these data marts support billions or even trillions of records from the operational source systems.

Developed a Ruby on Rails application, integrated with the corporate data warehouse, to allow business developers to provide supplemental data for use within the data warehouse – specifically for cases in which there is no actual authoritative source for the data in question.  Included online documentation and context-sensitive help, integrated with existing data warehouse documentation.

Provide various internal services for development life cycle support:   Maven and Gem repositories for internal software releases, Trac instances for project management and issue tracking, Capistrano recipes for configuration management and automated deployments for internal systems, integration with corporate secure single-sign on infrastructure for Ruby (Net::SSH::Kerberos) and Java (SSPI patches for JSch).

CollectiveX, Inc. (now known as:  Groupsites, Inc.)

CTO and Lead Developer

As an employee of CollectiveX (now known as Groupsites), I worked closely with the company’s CEO, Clarence Wooten, to transform  an ailing platform that had been “limping along” into it’s present day form:  a best-of-breed, professional collaboration and group networking platform. As the developer of a large Ruby on Rails (1.2.x) application platform supporting thousands of group sites, I quickly became an expert in optimizing Ruby on Rails applications.

In addition to serving as the lead and usually sole developer, I was also solely responsible for all of the company’s technical infrastructure, some of which included:

Configuration management and provisioning system for servers as well as internal builds of third-party software. Fully automated deployment, remote management and software packaging.

High-availability Linux cluster with no single point of failure and allowing complete system migrations/upgrades without application downtime.  All critical services are (ultimately) managed by the HA Linux cluster.

Network storage solution providing fault-tolerance, online resizing, and high availability using low-cost, commodity components (utilizing DRBD, LVM2, NFS v3 over UDP, EXT4).

High-volume mail server with 100% fault-tolerance and automatic failover.  Achieved a high-level of deliverability through configuration tuning and the integration of DKIM and SPF.

Low-cost, highly-available DNS platform with both internal (in-house) and external (third-party) failover.  Fully integrated with the application platform to provide near real-time propagation of user-initiated DNS configuration changes and full administrative control from a web-browser.

Project management and issue tracking system, including Trac.

Application functionality was rapidly enhanced and expanded, under the direction of the CEO, going through two major redesigns.  All of the features I implemented are too numerous to list here, but some them include:

Group blog, discussion boards, member profiles, file cabinet, sub-groups

Drag-and-drop content-management with instant preview and bi-directional integration the rest of the site’s features

Site-wide full-text search (even within the file cabinet), comprehensive WYSIWYG editing

Site manager tools:  statistics (reports, charts, etc.), highly customizable themes with instant preview, SEO wizard

CollectiveX platform dashboard:   administrative tools, reports, DNS console, accounts and billing custom extensions to ActiveRecord to simplify distributed processing with a negligible impact on application code.

Simple map/reduce functionality utilizing starling queues and customized Rails plugins for background processing, including statistical reports to be delivered to users through interactive dashboards.

Improved memcached performance with ActiveRecord models by two to three orders of magnitude.

Transaction management enhancements for Rails 1.2.x:  nested transactions, rollback-only transactions, declarative commit/rollback callbacks in models, fine-grained control of transaction semantics

Custom extensions to ActiveRecord query generation, accessible through the query API or a declarative syntax. A few examples include:  fully customizable eager-loading, automatic reduction of redundant join dependencies, MySQL-optimized pagination, and full ORM support for MySQL REPLACE operations

Custom “has_one” and “has_many” associations for ActiveRecord allowing unlimited flexibility in database schema designs while providing unparalleled performance in ORM-generated SQL queries

Meta-data and introspection driven unit testing for Test::Unit and Rspec

Public API exposed as REST webservices and implemented using libxml and declaration-driven model serialization.

SaaS (software as a service) implementation for the CollectiveX platform:   framework-level hooks to support platform white-labeling, distributed single-sign on, custom DNS and SSL, and external application integration.  Custom solutions are built on top of the platform – no separate builds of the platform are ever needed.

Efficient integration of Lucene full-text search with ActiveRecord, as well as user-uploaded files.

Heavily optimized Rails controller performance.  Implemented Rack and Mongrel handlers to improve performance.

Bulk-mailer implementation utilizing ActionMailer, sending several million emails per month, and providing comprehensive statistical reports to users through interactive dashboards.

Custom fork of the Prototype JavaScript library providing improved client-side performance for our user-interfaces.

Cherry Road

Sr. Software Developer           

As a temporary employee for Cherry Road, I joined a team of software developers in the development of a J2EE enterprise application involving several technologies:  Struts, Toplink, Java Web Services, Oracle, Ant, OC4J, Tomcat, Spring, Hibernate, Ruby on Rails.

In my first few days, I provided an immediate positive impact on the project’s development schedule.  It also quickly became clear that a large portion of development team had little or no Java or J2EE experience.  It was up to myself and one other incumbent employee to ensure the project’s success before the end of the deadline.

I provided technical leadership and direction whenever it was needed by my team members.  I provided guidance for their development, including Java coding guidelines, best practices, development patterns, etc.  Due to my development efforts, after a matter of days I had completely eliminated the need for the infamous “marathon night” the day before a milestone was due.  Due to the eventual success of this iteration of the project, we were able to move on to the next iteration noted below.

I completely designed the architecture for the distributed version of the application, in which the client required us to split the application into two pieces which communicated via web services:  a data access layer (back-end), and a J2EE web application (front-end).  In the absence of any technical requirements or formal documentation on the underlying database, I analyzed existing SQL, stored procedures and database schemas to determine how the entire database worked.  I developed an object model in Java which was suitable for representing the underlying database entities.  I used UML tools (Rational Rose, MyEclipse UML) to document the entire class hierarchy and created other project artifacts.  I then developed object-relational mappings using Toplink to map the object model to the underlying database.  I then implemented the entire back-end system, and then modified the existing J2EE web application to utilize this back-end system, thus turning it into the new front-end system.

Layer 8 Group

Sr. Software Developer           

As a consultant for the Layer 8 Group I developed solutions for and reported directly to the CEO of the company’s most demanding client.  Working both on-site and off-site, I provided technical leadership and direction, performed design and analysis, and coordinated with an extremely busy client in order to synthesize functional requirements from the initial project vision.  I utilized rapid development methodologies in combination with free and open source software in order to facilitate coherence to ad-hoc project plans with frequent revisions by the client, on a variety of projects.

In my first week, developed custom middleware for processing payments via pluggable 3rd-party payment processing software, including various modes of PayPal integration.  Utilized Perl, mod_perl, Mason, Apache and Oracle.

Joined the development of an on-line application for patients and health care professionals to manage medications and health regimens and to deliver reminders by phone or email.  Utilized Perl, mod_perl, Mason, Apache, Oracle, The Gimp, Template Toolkit, VoiceXML and Vocomo.

Assumed a lead software development role and greatly accelerated the pace of the project which had previously been at a standstill.

Assumed the additional role of the Oracle database developer.  Designed database schemas and implemented stored procedures for extensible accounting, reporting and e-commerce support.

Implemented rich and highly interactive web-based user interfaces with DHTML, CSS and Javascript.  Wrote re-usable UI components which interacted with the server asynchronously, similar to AJAX but without the any overhead for XML manipulation.

Developed high volume data imports which massaged flat spreadsheet data into a structured data model.

Assumed responsibility for VoiceXML conversations, and developed new VoiceXML applications.

Designed and implemented a Virtual IVR system providing a vendor-neutral wrapper around IVR services, and a command language intuitive enough for non-technical users.

Developed a server component, written in C and running on Linux, leveraging several 3rd-party free and open software packages (such as: libxml2, CURL, libsndfile, libsamplerate, mpg123.)

Developed a client tool, written in C and running on either Linux or Windows.

Developed patches for portability, bug fixes, and integration on Windows and Linux for 3rd-party software.

The system supported job scheduling, IVR port multiplexing, text-to-speech transformations, dynamically generated VoiceXML conversations, XLST integration, support for over 20 input audio formats, batch processing, high call volumes per job, sophisticated automated recovery procedures, and job history reporting.

The system, designed to be embeddable, operated without requiring the use of a backend DBMS, instead, storing files on disk using a method designed to circumvent any need for a large number of files per directory

Designed and implemented a cross-platform intelligent on-line document spidering and harvesting system, providing document transformations, analysis and directed recursion.

Developed a spidering tool, written in C and running on both Windows and Linux, leveraging several 3rd-party free and open software packages (such as: libxml2, CURL, libiconv, OpenSSL, xpdf, catdoc.)

Developed patches for portability, bug fixes, and integration on Windows and Linux for 3rd-party software.

Ported the 3rd-party catdoc software, written in C, to Windows.

Researched, utilized and supported 3rd-party software for document transformations and natural language processing.  Performed design and analysis for natural language processing systems.

American Chemical Society Washington, D.C.

Sr. Software Developer           

As a temporary employee for the American Chemical Society, (the 2nd largest non-profit technical publisher in the world), I provided development support and new development as a member of the Delivery Systems Group. I utilized Java, J2EE, Oracle, Perl, and Bourne Shell scripting skills.

Forum One Communications Alexandria, VA

Sr. Software Developer           

On a short-term contract assignment for Forum One Communications, I worked as the lead and sole software developer  on several high-visibility projects using PHP, MySQL, Apache and related technologies for clients including World Bank Micro Finance Group, Jane Goodall Foundation, and Alliance to Save Energy. Some projects included:

An online web-based discussion group, with live mediated online chats, and integrated with the Syntax CMS.

A highly customizable full-text search engine and document spider, integrated with the Syntax CMS.

An e-commerce application.

Library of Congress            Washington, D.C.

Sr. Software Developer

As a contractor for the Technology Office in Congressional Research Services at the Library of Congress, I worked as the lead and sole developer on two major software projects (which simultaneously reached the final stages), served as a liaison for “difficult clients”, and provided technical services on numerous minor projects.  My work is detailed below:

Developed a publishing system for the online version of the Constitution, Annotated (ConAn), in XSLT and Java.

The legacy system took 1 to 2 days to transform roughly 40 MB of input SGML into 1700 web pages using OmniMark.  My system completed in 2-5 minutes, including compilation of Java code.

The XSLT transformations were hosted by the Xalan implementation of the JAXP and TrAX standards.  Custom Ant Rules written in Java leverage Xalan’s pre-compiled XSLT translets (XSLTC), providing maximum speed by reducing XSLT down to Java byte code at build time.

Support multiple XSLT processors.

provided on-line printing facilities allowing concatenation of documents by running the pre-compiled XSLT translets in a J2EE container.

Implemented a custom WYSIWYG XML document editor based on Corel XMetaL 4.0

Customized XMetaL using CSS 2.0 and JavaScript and W3C DOM.

Worked directly with the product vendor (Corel) to address various XMetaL issues with performance and stability, and provided workarounds for known issues that the vendor had no solution for.

Authored technical installation guides for the packaged solution, and provided support and training to the client to aid them in integrating the application with their version control system.

Supported, updated, and maintained their legacy XML DTD (35 pages).

Developed a CRS-wide document reporting system known as the DocInfo application.  The application consisted of a nightly batch process to perform metadata mining and analysis, a web-based query and reporting tool, and a system administration module.  It was written primarily in Perl and was hosted on an AIX system.  I worked directly with the client, to identify and eliminate anomalies in the hand-entered data.  Successfully developed a set of “fuzzy logic” algorithms to automatically detect and repair the data.

Worked on a variety of small projects:  a bug tracker written in PHP and MySQL, a PHP backend to a PDF form submission-processing system, mentoring colleagues in their work with Java Web Services and the remote AIX system, a Dreamweaver extension written in C++ for interpreting and rendering Apache XSSI in a WYSIWYG environment, automated nightly backups of web-server contents on remote AIX systems, application for editing & deploying banners on internal web servers.

Designed a custom read/write Java  FtpURLConnection provider utilizing Java’s socket API’s.

WorkForce Technologies    Herndon, VA

Software Developer

Workforce Technologies is a professional software development company providing solutions for corporations on a contract basis.  In this fast-paced environment, my responsibilities spanned many different projects, for clients including Fairfax County Public Schools, General Electric, and Aetna US Healthcare.  Some projects of note include:

Developed middleware to monitor an incoming data feed with heavy load and a high volume of files.  This multi-threaded system was written in C++ and utilized the Win32 API (including heavy use of synchronization APIs), MFC, ADO and SQL Server.

Developed an online survey web-application, utilizing Java Servlets, JSP, JDBC and an Oracle database.

Developed a web-based time card reporting mechanism utilizing Java Servlets, JSP, JDBC and  a SQL Server database.  The solution handled billions of records and integrated both with an existing corporate web-application and legacy mainframe payroll systems.

Developed and served as the team lead for a web-based application for Aetna US Healthcare, allowing online administration of employee benefits and handling billions of records.

Project tasks follow:

Analyzed (and corrected) system requirements, designed a model of the the entire system, and authored technical requirements  (including: business entities, behaviors, and business rules.)

Developed over 80 percent of the Java code for the entire application, utilizing Java Servlets, JSP, JDBC, JavaMail, JAXP, Struts, and others.

Designed, implemented and supported re-usable presentation-layer APIs.

Designed, implemented and supported an XML serialization system which integrated with the presentation-layer API  to allow seamless serialization of an end-user’s session data in a readable format.

Designed and developed an MVC (model-view-controller) system using Struts, Java Servlets and Asps.

Actively assisted the deployment team in deploying the application into IBM Web sphere 3.53 (Windows NT for the staging Environment, and Sun Polaris for the production environment)

Developed a working prototype for the previously mentioned application (Aetna US Healthcare) written in Cold Fusion.

Developed an integrated online job board, utilizing Java Servlets, JSP, JDBC, Struts and a MySQL database.    Integrated an existing resume builder,  written in Perl and Embedded Perl, into the job board web-application.

Ankhcraft                                            Round Hill, VA

Lead Developer and President         

As a consultant and an independent developer, performed operating system development, rapid application development (RAD) frameworks for both Java and PHP, and screen scraping. Created custom software solutions for service businesses, mass commercial email software, product management suite (including release management, issue tracking, discussion boards, etc.), e-commerce application suite (including online auction management facilities), and a content-management for professional musician websites.  Frequently leveraged languages such as C, C++, Java, Visual Basic, PHP and Perl, Ruby on Rails.

Implemented, maintained and supported additions and updates to a proprietary, enterprise-level property tax calculation and reporting system used at a Fortune 500 company.  The system’s components were written in Visual Basic and integrated directly with Excel spreadsheets.  The system’s distributed architecture was also web-enabled, allowing real-time reporting over the web in addition to client-server functionality.

As a member of a small, confidential team, designed, implemented, and quality-tested an enterprise project management system, using PHP, and MySQL.  The system leveraged a proprietary XML transmission medium, in a manner similar to XML-RPC.  Helped design an attractive user-interface, client-side and server-side validation, and component-ized integration between system tiers.  Facilitated aggressive scalability of the application, and an extensible, comprehensive server-side object framework. Tasks on this project included:

Designed, implemented and quality-tested key components of the system: PHP classes, PHP scripts, JavaScript, MySQL code, graphics, CSS, etc.  Processed XML fragments using SAX.

Built a proprietary server-side object framework, facilitating complex object relationships and aggregations,  and providing comprehensive serialization facilities to/from XML streams, and to/from sets of MySQL tables.  Utilized the framework for communications between disparate systems and decoupling of system components.

Implemented document & picture uploading alongside XML document streams and into MySQL tables, and provided “auto-refresh” functionality on screens that administered those images.Officially acted as the PHP “Guru” for the development team lead, providing advice and guidance on a wide variety of PHP APIs, troubleshooting,  best practices and advice for PHP beginners.

Designed, implemented and quality-tested a commercial quality bulk mailing system utilizing Java and MySQL

Designed, implemented and quality-tested a content-management system for a niche market, utilizing PHP and Java, also integrating with the bulk mailing system.

As an independent developer, designed and am currently implementing an integration between Vim and Java, using the JNI.  The user-interface leverages both Swing and AWT, and the native C code can be utilized both as a system library linked to from inside the JVM and as a stand-alone binary which starts the JVM from within native code.  Vim is an improved version of vi – a UNIX programmer’s text editor written in C.

Education

Tekmetrics – Certified Master C Programmer, Certified Master C++ Programmer

Brainbench – Certified Web Developer (Client-side), Certified Web Developer (Server-side), Certified Master Java 2,  Certified Master Java 2 GUI, Certified Master JSP, Certified JavaScript, Certified Web Development Concepts

High School Diploma from Hall High School, GPA 3.2, West Hartford CT (1995)

Independently studying software development since the age of ten.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Comments or opinions expressed on this blog are those of the individual contributors only, and do not necessarily represent the views of Namtek or its management. Readers may copy and redistribute blog postings on other blogs, or otherwise for private, non-commercial or journalistic purposes. This content may not be used for any other purposes in any other formats or media. The content on this blog is provided on an "as-is" basis. Namtek shall not be liable for any damages whatsoever arising out of the content or use of this blog.
%d bloggers like this: