Print
Hits: 24896
Ryan J. Smith  -  about <'A.T'> ryansmith <-do.t->ws

 

Summary:

* Expert level experience in software analysis, design, development, testing and deployment of web-based and distributed network enterprise applications using Java/J2EE, Spring, Hibernate, Tomcat, Hadoop, HBase and many other Java technologies.  Expertise in Object Oriented Analysis and Design (OOAD) and Extreme Programming Process (XP) with Test Driven-Design (TDD).  Highly involved in open source technologies and keeping up with the latest developments.

* Extensive experience with Big Data and web-scale data. Experience writing and running MapReduce jobs and running Hadoop and HBase services on multiple remote clusters.  Actively involved with the development of HBase and contributed feature and bug fixes to the HBase open source project and other related projects.  Involved with designing and implementing OnLine Analytic Processing systems(OLAP). Experience with Solr & Lucene for indexing and familiar with building and indexing MySQL tables with SphinxSE search service. Expertise in designing data models in relational databases using various schema editors like DBSchema.

* Extensive knowledge, experience and a formidable expert on web crawling and data aggregation.  Built custom multi-threaded crawling frameworks in Python and Java as well as experience using and adding on to the Internet Archiver, Heritrix: an open source distributed indexing engine.  Wrote software to manage distributed crawlers and job scheduling.

* Expert knowledge of open-source project lifecycles and build engineering using Maven, Nexus and SVN to manage multiple project's (iteration) tests, builds and releases.  Expertise in continuous integration deployments using Hudson, and using TestNG, JUnit, JMock and Emma in creating unit and integration tests to verify an application's functionality and test coverage.


[Skills]

Search & Indexing [5 years] Solr, Sphinx, Lucene
Distributed Computing [6 years] Hadoop, HBase, Heritrix, OLAP, JXTA, ActiveMQ, JMX, VMWare
JEE [9 years] Spring, Tomcat, Hibernate, Jetty, JBoss
JSE [10 years] All versions
Python [13 years] v2.X/3.X, Twisted Framework, Webware/WebKit
XML [13 years] XHTML, XPath, SOAP, WSDL, XmlBeans, XML-RPC, SAX/DOM
Database [13 years] PostGreSQL, MySql, HBase, Hsqldb, Oracle, MSSQL
Process [14 years] SVN, CVS, Git, Maven2, Hudson, Nexus, Make, Ant, TestNG , JUnit, JMock
Security [14 years] Snort, Bro, Nessus, Tor, OpenSSL, OpenSSH, IPFW/UFW/IPTables
Network Programming [16 years] P2P, HTTP/S, SMTP, NNTP, SNMP, BIND, DNS, NAT, DHCP, NTP, Ganglia, VNC
C/C++ [16 years]  ANSI C, GCC 3.X/4.X , GTK+/GLIB
WWW [16 years] Apache, Joomla, Squid, Selenium
Shell [17 years] Bash, Csh, Zsh, Tcsh
OS [18 years] Linux (Ubuntu, Debian, Fedora Core, SuSE), FreeBSD, OSX, Windows 9X/XP


[Current Projects]

HBase - Contributer - http://hbase.org/
HBase-Writer - Project Manager - http://code.google.com/p/hbase-writer/
ASpider - Project Manager - http://aspider.sourceforge.net/
Yummy - Project Manager - http://sourceforge.net/projects/yummy/


[Training]

2008.11 - ApacheCon 2008
2006.12 - Tomcat Application Server
2005.12 - The Spring Experience 2.0


[Publication]

2007.7 -  The Server Side - Using JXTA vs. Mule ESB for Distributed Network Applications
http://www.theserverside.com/news/thread.tss?thread_id=46099


[Education]

2005.5 - Florida Atlantic University: Bachelor of Arts Degree in Physics, Minor in Computer Science, 3.3 GPA

Gave multiple Data Mining Lectures to Comp. Sci. Graduate students at F.A.U. for a course on new applications taught by Dr. Sam Hsu and later by Dr. Saeed Rajput.

http://tcn.cse.fau.edu/asf/presentations.htm


[Experience]

2009.12 - present : Contracting for client company in Florida.  Lead Architect, Developer, Consultant

2008.10 - present : Open Source Project:  HBase-Writer, Project Manager, Build Engineer, Hosting Administration

Developed and released open source software project: hbase-writer.  HBase writer is a plugin for the open source crawler: Heritrix. HBase writer allows for an open source Web-scale solution to data crawling.  Hbase writer takes the output from Heritrix and writes content as records to a table on an HBase cluster.  Project site: http://code.google.com/p/hbase-writer/ [Java6, Heritrix, Hadoop, HBase, Subversion, Nexus, Hudson, Maven2]


2008.2 - 2009.11 : Contracting for client:  Firmo Verumi, Pensacola, FL.  Lead Architect, Development Manager

Designed and implemented a 3-tier java stack using many of the latest open source technologies available.  Created web service apis for an SOA environment using various protocols.  The application is responsible for search engine functionality such as domain name information, data mining applications deployed in large clusters and search capabilities using the latest distributed filesystems and indexing.  Searching functionality is able to correlate results giving them context using custom developed AI techniques, taxonomy logic and search algorithms. Set up numerous linux systems and deployed applications to them.  [VMWare, FedoraCore, Python, Java6, Spring, Hibernate, XML-RPC, Hadoop, HBase, Lucene, Solr, MySQL, Maven2, Nexus, Hudson, OLAP, Heritrix ]


2007.3 - 2008.1 : Contracting for client: S&H Solutions, Delray Beach, FL, Project Lead, Sr. Software Engineer, Build Engineer

Identified and fixed integration bugs during the database migration of a Multi-tier Enterprise Jboss Web Application written in Java using Hibernate, Struts and Velocity templates. Created reusable helper and testing classes to ensure logical and integration integrity. Created in-memory databases using Hsqldb and EasyMock for unit and integration testing. Also designed, tested and implemented a distributed secure P2P Network using JXTA written in Java to distribute content on-demand to remote customers.  Also designed and implemented an SNMP agent service for distributed applications to talk back to the datacenter for management and reports. Helped in setting up a Maven2 for building, testing and deploying out projects.  In August, become Lead build engineer and managed build lifecycle of all projects.  Set up reliable project builds using Maven2 across entire Java codebase.  Using automated maven builds, tests and nightly reports and documentation to ensure stability and integrity.  Configuring development, QA and production releases and managing all dependencies for stability in all projects including web applications.  [Java5, CVS, Bash, Maven2, Ant, JXTA, SNMP, Hsqldb, Hibernate, JBoss]


2004.1 - 2007.2 : Foreclosure.com, Boca Raton, FL, Lead Architect, Sr. Software Engineer

Engineered a J2SE data-aggregation application that parses and indexes data served by HTTP/S web servers. Initially authored and released as an open-source project on Source Forge .com: http://aspider.sourceforge.net/. Built the application framework and modules on Spring. Using HttpClient v3.X from Apache Jakarta Commons for HTTP negotiation and HTMLParser open-source Java project to parse the data results.  Crawls were scheduled using Quartz Scheduler. Utilized proxy and privacy networks to prevent from being watched or blocked.  Managed and oversaw the project of data aggregation and content quality assurance. Created, tested and deployed into production the applications and managed the resources. Managed and documented entire process from building aggregation modules to data integrity to application performance. Mentored new engineers to build and manage new and existing data aggregation modules.  Engineered a J2SE application that automates an open-source Mozilla web browser using embedded components including a Gecko Runtime Environment (JavaXPCom) and JRex, an embedded interface for Java applications to use for automated browsing. This application serves dual purposes by helping front-end UI web developers to automate unit testing and to provide a stable Web Client for autonomously navigating through web servers that use JavaScript or any other Client-side technology the browser supports.   Designed and Engineered a host of J2SE applications to be deployed as Network Services that utilize established 3rd-party open-source applications to parse, format and output various binary and ascii file formats. Utilized Sun's Universal Network Objects (UNO) implementation in Java for automating the OpenOffice Suite. This was used to convert Microsoft and other office documents to text or other standard formats for further parsing. Created numerous Java Application Interfaces for parsing binary files including a PDF Parser, a Flash/Shockwave parser and an ImageToText parser. [TDD, Java 4/5, Python, HTTP/S, HTML, XML, Data Mining, Spring, Maven2,  UNO, SOA]


2002.5 - 2003.12 : Live Data Group, Boca Raton, FL, Sr. Systems Administrator

Took on the role of Senior System Administrator and managed 2 production networks with over 20 FreeBSD systems, one in-house and one production. Managed and configured 15 systems in production all running FreeBSD. Used IPFW for firewalls and various network services including: NAT, DHCP, Bind, SSHd, SSL, NTP, FTP, HTTP/S. Administered Apache web servers and Python Webware servers. Managed and documented hardware/system and software upgrading to ensure stability. Documented and implemented a network security policy using Snort/Bro/Firewalls. [TDD, FreeBSD, Bash, Network, SA]


2000.5 - 2002.4 : Electronic Appraiser.com, Boca Raton, FL, Startup, Software Engineer

Engineered Python application for client to offer as data services. Using SOAP and then using XML-RPC to deliver real estate information such as address validation, sale comparables and property tax information. Also engineered application to dynamically generate a PDF using reportlab's open-source pdf library. Displayed various property information such as Aerial photos, flood maps and interior images.  Also engineered a Python content aggregation application that collected real estate listings from a wide range of data sources. The content collector operates in an extensible framework where modules would be created, one for each unique data source. Modules were scheduled using crontab, then using a custom multi-threaded scheduler written in Python with configuration and control through a web interface written in Python using Webware. This is still being used today. Reverse Engineered Python application for validating street addresses and resolving the zip+4 zipcode of a given street address. This application was sold as a service as well as being used in house to resolve street addresses. The backend uses a PostgreSQL database and the data is provided by the USPS in monthly updates. The application also had a loader that loaded the updates off of cd-rom and into the database. This application was later ported to Java 5 and used as a Web Service. [FDD/TDD, XP, Python, Java 4, SOAP, XML-RPC, XML/HTML, HTTP]


1997.12 - 2000.5 : Net Management Services, Ft. Lauderdale FL, Production Director, Software Engineer

Managed 3 employees in our Production Department. Responsibilities included timely updates, content management, and quality control. Reported to the CEO, John Bennett. Implemented various web form data collection applications written in C++ and JavaScript using Apache mod_cgi.  Re-engineered a Content Management System (CMS) to handle a broad spectrum of content types and content sharing across multiple domains. Solution utilized Apache mod_rewrite and C++ Applications. [FDD, CGI, C++, Solaris, Dept. Mgr]


Further references available upon request.