Resume
Effective software engineer with 10 years of experience including community based learning software, financial software for a major investment bank, and property management software development. Current role includes providing technical leadership and software development with the goal of seamlessly integrating of a portfolio of social networking products. Past assignments have included integrating multiple legacy applications and building the software bridge between financial trading applications within two merging financial institutions. Utilizes agile software development methodologies such as XP and Scrum to estimate, manage expectations, and deliver on time. Mentor to new employees and colleagues and participates in interviews for new applicants.
Technical Expertise
- Languages
- Java, C++, Objective-C, C, Python, Javascript, Perl, HTML, CSS, PHP, SQL, PL/SQL
- Frameworks & Libraries
- Java: Spring, Hibernate, Quartz, J2EE, Java Collections, Apache Commons (Logging, Net, Ftp, Util, Lang), SLF4J, Concurrent-Backport, JUnit, JMock, XmlBeans, JQuery, Maven, Jersey, JAXB
- C++: pthreads, STL, boost
- Objective-C: UIKit, GameKit, Cocoa, Foundation
- APIs
- JMS, JNDI, JMX, JDBC, JSP, Servlet
- Concepts
- Agile Software Development Methodologies, Multi-threaded software development, Network Programming, Network Troubleshooting, Integration Testing, Functional Testing, Unit Testing, Change Management, Design Patterns
- Software
- Eclipse, Xcode, Weblogic 10 (Container and Messaging), Tomcat 6.x, IBM MQ Series 7, Tibco Rendevous, Active MQ, Oracle, MySQL, Selenium, Perforce, Mercurial, git, Subversion, Jenkins, bash
- Systems
- Windows (for development), Linux (system administration, deployment target), MacOS X (development, dream OS)
- Windows (for development), Linux (system administration, deployment target), MacOS X (development, dream OS)
Professional Experience
July 2010 → Present
VP; Sr. Software Engineer—FICC-Foreign Exchange
Team lead for a team of 7 developers focused on migrating FIX clients from the legacy FX trading system to a new system without forcing the any of the FIX clients to make any changes. Enhanced the FIX capabilities to add new products and features for our clients.
Accomplishments include:
- New Features: non-deliverable forwards and swaps, block trades, pre-trade allocations, post-trade allocations, Dodd-Frank regulatory enhancements, precious metals flow | Tech used: g++, boost, pthreads, sybase, java
- Enhanced Supportability: improved monitoring, reduced latency, made the FIX gateway more resilient | Tech used: g++, gdb, valgrind, intel profiler
- Quality: helped write and encouraged others to write a large suite of integration tests to allow us to release faster | Tech used: java, testng, quickfix/j
- Support: Provided support to keep production running smoothly
Lead developer and assistant project manager for the major datacenter migration for our application. Coordinated with all of the external teams (firewall, web server, network, storage, database, security, mq, and linux admins) necessary to move our system (80+ different applications) to new infrastructure. Enhanced our application to make it easier to build out new data centers in the future. The move was successful and migration issues were minor.
June 2009 → June 2010
As an original member of the Community Team I participated in the Context Inquiry and assisted the Product Owner in gathering requirements from genealogists who would use the system. I helped drive the architectural design of the system which makes heavy use of web services and JavaScript gadgets that can be embedded on any page to add rating and standardized categorization.
Accomplishments include:
- Designing and coding the Shared Categories Tool Mash-up Gadget and integrating that into the organization's MediaWiki installation. This tool could be included by simply adding a javascript file on any page across any portfolio of products and provide a consistent categorization taxonomy. This allowed us to improve the search results returned by our search engine and provide related items. | Tech used: JSONP, JQuery, Jersey, Wicket, Hibernate, Java 6, Tomcat
- Provided a way to leverage the data stored in the Category Service to allow users to browse the pages that had been categorized with the shared categories. This was done by building a taxonomy hierarchy in memory and pruning the unused portions of the tree so that users would only see parts of the taxonomy that were being used by a particular system. Used an AJAX jQuery plugin to allow the user to browse through the taxonomy and find related pages that had been categorized together. | Tech used: jQuery, Jersey, Spring JDBC, Quartz, EHCache, Wicket, Java 6, Tomcat
- Automated the deployment process and implemented the branching strategy used on the team. This included getting automated integration tests and an automated nightly deploy to development environments. | Tech used: Amazon Cloud, svn, bash, svnmerge, hudson, maven, nexus, cron
January 2006 → May 2009
AVP; Software Engineer—FICC-Foreign Exchange
Worked on small teams on several projects using Agile project management techniques. Primarily a member of the Post-Trade-Engine team, which provided booking services for all Foreign Exchange trades that the Bank performs. Was invited and participated as part of the interview board which would interview potential candidates to ensure that they will fit with the Bank's culture and meet knowledge requirements.
Accomplishments include:
- Merrill Lynch FX Risk Transfer; provides a bridge for the Merrill Lynch (ML) FX trading system to continue to trade on the market after the merger. This involved developing a new trade message, extending Seawolf to communicate with the ML systems, and working with liquidity providers to switch ML accounts over to use the Bank of America credit line. | Tech used: XMLBeans, Spring (JDBC, IoC), Java 5, IBM MQ 6, Weblogic 9
- Wrote Phone Deal Service; retired legacy Java 1.2 system (MT300 Processor) that keeps FXTransact in sync with the System of Record. This was difficult as it required handling trades and corrections that could be received out of order. | Tech used: Spring IoC, Hibernate 3, Java 5, Weblogic 9
- "Where's My Deal?"; a logging framework to track a transaction through multiple machines and applications. This was something that I wrote on my own time in order to save me time in debugging where trades went in test environments. It eventually moved to production and was used by Production Support to augment their other monitoring services. | Tech used: Hibernate 3, Spring (IoC, MVC, Remoting), PL/SQL, bash, Java 5, Weblogic 9
- PTE to GBS-Interface; retired part of legacy system (Trader 2); sending trade details to back-office systems for payment over the SWIFT network. Involved monitoring, enriching, transforming, sending and replaying trades to a mainframe that processed payments. | Tech used: Spring (IoC, MVC), Hibernate 2, Java 1.4, Weblogic 8, IBM MQ 5.3
- Intra-day Credit Engine (ICE); This third-party application would check to make sure that a counter-party had enough credit to make a trade. It was much more up to date and accurate enough to help reduce risk, and also increase trading activity with many customers. In addition to making it more stable, we also developed a way to deploy it reliably | Tech used: TibRV, Apache HTTPClient, Java 5, Swing, webstart, jRuby, diff, patch, ant
- Window Forward / DrawDown enhancement of FXTransact; helped add new product to our corporate and retail clients which allowed users to electronically book these trades instead of calling their broker. | Tech used: Spring (MVC, IoC), Hibernate 3, C++ (gcc), Boost, QuickFix/J, Weblogic 8/9, TibRV, IBM MQ Series 6, Java 1.4/5
May 2004 → January 2006
Java Software Developer
Worked on several web based applications used by the Space Dynamics Laboratory and the USU Research Foundation to meet government reporting requirements. Eventually became the lead developer on AssetView, a property management tool used to inventory all hardware at the Foundation. Also maintained legacy desktop applications using Borland C++ Builder and supported existing users. This was a student developer job, and I was able to mentor students as they were hired and teach them the process and technologies that we were using to develop our software.
Accomplishments include:
- Helped created a web application from inception that tracked property throughout the USU Research Foundation. This had two parts, a part that ran in a normal web browser, and a part that ran on Compaq iPaq with barcode scanners to perform an inventory. | Tech used: Spring IoC, Struts, Hibernate, FOP (for PDF generation), Java 1.4, Ant, Informix
- Made small enhancements to the Borland C++ Builder application that was used to track grants. | Tech used: Borland C++, ODBC, Informix
July 2001 → July 2003
Business Owner / Linux System Admin & PHP Developer
Started a small web hosting company that ran RedHat Linux at a co-location facility in Rexburg, Idaho. Offered DNS, Mail, and Web services to a small number of clients, in total about 30 domains. Was eventually purchased by UtahBuild where I continued on as Linux Sys Admin and PHP Developer for UtahBuild's advertising clients. | Tech used: perl, php, SuSE SLES 9, RedHat 8, bind, sendmail, apache2
Education
Ricks College May 2001 A.A. General Education |
|
Utah State University December 2005 B.S. Interdisciplinary Studies; Computer Science, Mathematics, Communication |