Post Job Free

Resume

Sign in

core java, unix shell developer

Location:
Toronto, ON, Canada
Posted:
June 06, 2016

Contact this candidate

Resume:

MICHAEL HORNSTEIN

Toronto, Ontario

416-***-****

acu35m@r.postjobfree.com

2322930 Ontario Inc.

Core Java Backend /

Linux Shell Developer

My passion is to design and develop high quality innovative solutions for diverse and challenging problems. In that process I have acquired strengths in acquisition of requirements, application analysis and development, manual and automated testing, data analysis, quality assurance, and troubleshooting.

Software development experience includes core Java with various open source tools, unix/linux shell scripting, real-time data acquisition, development of stock data and currency rate databases with charting systems, high performance stock databases, message oriented middleware, process automation, provisioning, system integration and test automation.

To expand my skill set, I built and continue to enhance a Node.js web application that uses Angular.js, CSS, HTML and MongoDB and is based on a RESTful architecture. I also developed a Java application to generate reports from the data stored in the MongoDB database.

Domain experience includes test automation, foreign exchange, health care benefit adjudication, food safety, telco provisioning, communications, stock quote and currency rate databases with charting systems and manufacturing execution systems.

EMPLOYMENT HISTORY

Contractor - Software Development Engineer in Test 05/2014-12/2015

Texas Instruments Canada Ltd, Toronto

As a member of the Texas Instruments System Test team I contributed to the creation, maintenance and execution of a large collection of automated test suites for testing the integrated development environment (IDE) of Texas Instruments' Code Composer Studio (CCS) and to maintain the collection of computers the automated tests run on and devices that the automated tests run against.

CCS is an IDE that supports the breadth Texas Instruments' (single & multiple-core) micro-controller and embedded processor offerings. It consists of a suite of tools that are used to develop and debug embedded applications. These tools are implemented as a set of Eclipse plugins.

The System Test team's automated test suites are designed to ensure that C/C++ compilers, source code editor, project build environment, debugger, profiler, and many other specialized features continue to operate as expected as new and updated features, hardware devices, runtime platforms and the base Eclipse IDE evolve.

To support the automated tests, the team must ensure that the automated testing infrastructure built on the Jenkins framework and a 'test farm', consisting of 30+ Windows, Linux and Mac computers plus 100+ Texas Instruments devices, runs tests to completion. During the test run, results are collected in a database. The results are reviewed for failures and to determine if the failure was caused by the hardware or a new features or the automated test software or the state of the environment.

A cloud based CCS was recently rolled out, and therefore a new set of test suites was developed. I developed some prototype test suites with Geb-Spock, Gradle and IntelliJ to show there are domain specific tools that could be used to speed up test suite development that is currently done with a TI built Java API & Selenium.

I also investigated and solved an issue with configuring OS X (10.10) Yosemite and (10.11) El Capitan to run the Jenkins slave via 'launchctl' and ~/Library/LaunchAgents; El Capitan's updated security etc required changes to the default plist file that was configured properly for previous versions of OS X.

Tools and Environment: Core Java, C, Eclipse, Groovy, Geb-Spock, Gradle, Selenium, Junit, TestNG, JAXB, JavaMail MySql, HeidiSQL, Ubuntu 12.04 & 14.04, Windows 7, 8 & 10, Mac OS X 10.9, 10.10 & 10.11, JIRA, IntelliJ, Bash and Windows Scripting, Jenkins, Jenkins slave, Wireshark, vmbox, ClearCase, ClearQuest, Symantec Ghost, Maven, Ant, Python and Perl.

Contractor - Developer 07/2013-01/2014

Scotia Capital Markets, Toronto

My work at Scotia Capital Markets was mainly fixing bugs, and enhancing and customizing components of their IBM Algo Real-time Credit Risk infrastructure. I designed and implemented the creation and loading processes for the new Counterparty Risk Trend History database for storing the daily measures and simulations out to 50 years. This involved the development of SQL scripts, triggers and stored procedures for an Oracle 11g environment. The database load process was all driven by Oracle's sqlplus, sqlldr, Unix shell and Python scripts.

Contractor - Senior Back-end Java (Core) Developer 04/2013-06/2013

The Globe and Mail, Toronto

My work with the Consumer team consisted primarily of Java development for their web back-end services in an extremely Agile environment. My tasks included development of new features for user session management, and bug fixes. I also developed automate tests for the Build Verification Test (BVT) suite using Geb-Spock functional testing framework (a Groovy DSL) for both web based and mobile based session management. I investigated and determined the causes why the WURFL tool used for its mobile device detection component had not been operating properly of over a year. I developed an Escenic “Processor” to disable session management processes, so that we could continue to provide access to news articles when critical backend systems were down. I took part in scrums, and sprint planning, and sprint review meetings.

Tools and Environment: Core Java, Resin, Geb-Spock, Junit, Git, Oracle Sql Developer, Ubuntu, Windows 7, JIRA, IntelliJ, Ibatis, Weblogic, JSP, JSTL, Escenic.

Contractor - Senior Java (Core) & Python Developer 04/2012-03/2013

Bank of America Merrill Lynch, Toronto

My work with the Prime Brokerage, Reference Data Services (RDS) team involved tasks include design and development of web based qualitative analysis tools to support the data migration effort 1) to compare the legacy system's data and the data produced by RDS being developed to replace it and 2) to detail specific types of investment instruments that RDS did not yet handle. Some of these tools employed Apache POI and Java Mail to create and email Excel compatible spreadsheets. I was involved in the investigations that tried to determine whether RDS was missing some features or if the legacy system did not in fact process the instruments properly or at all. I designed and developed the Index Decomposition mechanism, and associated stored procedures, to add this missing feature to RDS.

In another project, I replaced the MyBatis database interface layer with pure JDBC to reduce complexity and improve performance. The applications I developed at BAML are written in Java and Python using Microsoft SQL Server and Oracle as the database tier.

Tools and environment: Core Java, Shell Scripts, Python, Embedded Jetty, SpringFramework, JDBC, MyBatis, Apache POI, Java Mail, Microsoft SQL Server Management Studio, Oracle Sql Developer, FreeMarker, JMX, Maven, Red Hat Linux, Test Driven Development, Eclipse, Subversion, JIRA, Hudson.

Senior Applications Developer 04/2008-03/2012

XE.com Inc. Newmarket

Senior Applications Developer: My work was mainly related to collecting and massaging foreign exchange rates into mid-market rates for over 165 currencies, every minute for presentation on the website. The programs improved the quality of the foreign exchange rates that were acquired from a variety of providers, and through a variety of filters produced the mid-market foreign exchange rates. Most of the components developed for this process communicated via JMS using ActiveMQ middleware. Other tasks involved analyzing the web logs in an effort to determine website usage by examining patterns of usage by individual ip addresses.

Achievements

Designed and implemented the foreign exchange rate database. This database grows at a rate of 340,000+ rates per day.

Designed, implemented, and integrated a multi-threaded rate feed reader into the foreign exchange rate collector infrastructure. Most rates were provided by http://www.morningstar.com/ (a proprietary binary feed) and http://interactivedata.com/ (FIX protocol).

Designed and implemented two multi-threaded foreign exchange rate aggregator programs that create 5, 10, 15 30 and 60 minute foreign exchange rate aggregates from minute rates. The first program created aggregates in near-real-time and submitted them to a database loader process. The other program created the aggregates from the minutely foreign exchange rates already in the database to produce the aggregates that might be missing.

Designed and developed a chart generation program that shows the foreign exchange rate fluctuations between the most popular foreign exchange rates for the last 24 hours. It is currently used to produce more than 800 charts per minute.

Designed and implemented an asynchronous appender for log4j messages that uses in-memory queues and JMS and is guaranteed to publish every message. Each message has a header that uniquely identifies the program, host, etc, that generated the message. A database schema was designed and implemented to store the messages. There was sufficient information to reproduce a full Java stacktrace that had been logged.

Designed and implemented a new multi-threaded mid-market rate generator to replace an old perl program that delivers mid-market rates to the website. This program uses different algorithms to reject bad rates, it gathers statistical information about the rate providers that can be used to adjust the aforementioned algorithms. This program uses the asynchronous appender described above and publishes new rates every minute. The program was instrumented with JMX for monitoring and managing it's behavior.

Designed and implemented a program to generate additional rates for specific low volume currencies by triangulation every minute. The results show that 100s of additional low volume foreign exchange rates per hour are produced and used by the mid-market rate generator mentioned above. The program was instrumented with JMX for monitoring and managing it's behavior.

Designed and implemented a set of qualitative analysis tools to determine the percentage of hits on the XE's Currency Converter that are produced by people vs. those that are generated by 'bots'. This involved scanning ~10GB of logs per day. Additional outputs from the processed were daily and weekly emails to the IT group to watch for possible denial of service attacks. The data was also used to determine if requests from certain countries had any correlation with the rates per country statics that were gathered by the mid-market rate generator program and the data was also used to measure changes in volatility of rates.

I developed a Groovy application that compared the results of the mid-market rate generator mentioned above with the existing application that was written in Perl. This was a testing tool.

I developed Groovy applications with JMX for network operations team so they could probe a misbehaving tomcat applications and use the results with the Nagios monitoring infrastructure.

Tools and environment: CoreJava, Spring Framework, Hibernate, MySQL 5.x, ActiveMQ 5.x, Linux, C/C++, Subversion, Shell Scripting, JFreeChart, FreeMarker, Java Management eXtensions (JMX), Groovy, Python, Matplotlib, Eclipse, JConsole, VisualVM.

Senior Systems Analyst (Business Intelligence Team) 04/2005-04/2008

ESI Canada, Mississauga

As Senior Systems Analyst of the Business Intelligence team I was responsible for managing production support and new feature deployment, and enhancement of four Tomcat based legacy reporting systems and the architecture, design and development of the new WebLogic based Reporting Service Framework

Achievements

I was responsible for the architecture, design and development of the next generation total health benefit management system’s reporting framework. This was a Web based application using Oracle 10g for the data warehouse. My primary function in this project involved development of the architecture, design and manage the implementation of the Reporting Service Framework. This framework is the basis for all report requests independent of format, delivery method and reporting tool. In this role I worked closely with the business analysts and reporting tool specialists to ensure that the framework can support all the reports required.

I was an approving member of the Web Applications Technical Advisory Board which met weekly with developers to ensure that the designs being developed are appropriate and complete and to ensure that cross-impacts identified and addressed for the new WebLogic based system.

I organized and implemented the conversion of the four Tomcat reporting applications from Oracle 8i to 9i. It took 6 weeks to collect all the required information and write the document describing the production changes and back-out procedures. The task was completed as expected: the only conversion done that year that did not have issues that affected end users.

Tools and environment: Core Java, Weblogic 9.2, Eclipse, Oracle 8i/9i/10g, Toad, JReports, JMS, EJB, Quartz, Oracle Coherence, Velocity, Tomcat, HP-UX, Shell scripts, JUnit.

Contractor – C Developer 12/2005-01/2007

The Notley Group, Toronto

Achievements

Architect and implementor of the new stock market data charting system application. Designed the data model and implemented a new time series database (see Qnetix Computer Consultants Inc. below) using the newest version of the FairCom products. The aim was to port the existing database from the original system running on HP-UX to the new schema and rebuild the existing application to use the new database via the original API. This port was targeted at a Suse Linux platform. The FairCom tool builds ISAM databases with an SQL cover layer. This provide a way to replace the C code functions with SQL scripts that performed much faster etc

Tools and environment: C, FairCom products, Suse Linux.

Contractor – C Developer 09/2004-04/2005

ESI Canada, Mississauga

Recruited to analyze, design, implement and test the fixes to the backlog of bugs.

Tools and environment: C, Oracle 8i, Pro*C, HP-UX.

Senior Systems Analyst 02/2002-06/2004

Carmina Technologies Inc., Toronto

Designed and developed the suite of tools and procedures required to host multiple clients’ electronic survey scenarios. Managed the day-to-day operations of the systems. Involved with QA, customer relations, software development and modeling.

Achievements

Designed, developed and led in-house and on-site client deployment including testing and end-users training.

Liaised with clients to determine business requirements and developed customized solutions including commercialization of a web, desktop, and mobile computer systems for the creation and execution of computer based surveys.

Created product development plans: planning, resources, schedule, budget, and guiding team in executing project scope.

Spearheaded system development: QA, user acceptance, change management, and go-live.

Provided technical support to development team, intervened to resolve technical and business issues.

Introduced on-going development initiatives for measuring, tracking and improving productivity, business matrix, applications performance / data quality and product management / processes.

Designed, developed and led the cost-effective development of innovative business rule automation services systems.

Documented business processes and procedures, identified risk to the business and its clients and provided solutions.

Created and maintained project budgets; gained a reputation for managing projects within timeline, scope and budget.

Tools and environment: Core Java, Linux, Windows NT, Korn Shell scripts, Tomcat, Sybase, mobile computing development tools.

Application Solutions Developer 06/2000-01/2002

Amdocs Canada, IP Solutions Division, Toronto

Performed custom integration and installation of outsourced products for British Telecom developing applications for the company’s expanding web presence. Worked in a development team to develop a Java based XML driven data-collection / data-transformation subsystem.

Achievements

Designed, developed, tested and deployed an XML-RPC Web Service Client application written in Java which enabled provisioning of “user account” and “service information” from an IP billing system to Unwired Planet’s (formerly Openwave) MX platform for a British Telecom product offering.

Designed, developed, tested and deployed an XML-RPC Web Service Client application written in Perl which interfaced with British Telecom’s GX server for automatically sending SMS messages on user subscription to BT product offerings.

Designed and developed collection of shell scripts and C++ programs to integrate developed applications within the corporate IP billing system. Processes created included requesting and storing data returned via the MX API, and triggering the IP billing system to send SMS and email messages to new users.

Tools and environment: Solaris, Core Java, Perl, C++, Korn Shell scripts, Oracle.

Senior Technical Consultant (Contactor & Full-time) 12/1996-06/2000

Brookes Automation Inc/PRI Automation Inc./Promis Systems Corp, Toronto

Collaborated with engineering in the development of a next generation, object oriented MES solution (PROMIS’ replacement) based on Windows NT client/server, using COM/DCOM and Oracle

Designed and efficiently ported a HP-UX/C++/CORBA based application to run on a Windows NT platform.

Planned and created an Enterprise Integration Framework (EIF) to transfer data between PROMIS and SAP using Oracle and Pro*C.

Re-designed and implemented EIF Toolkit to utilize Tibco Rendezvous middleware.

Created a Functional Test Plan for the Tibco Rendezvous middleware replacement to the PROMIS ‘transaction processing’ interface in lieu of BMQ Message Queue.

Ported the Enterprise Integration Framework to SunOS & Informix.

Manager of Software Development 04/1989-12/1996

Qnetix Computer Consultants Inc., Toronto

I oversaw all phases of software development and deployment projects.

I developed a high performance stock market data database, with an analysis and charting tool.

I was involved with all aspects of Business Requirements, System Design, Technical Design, Requirements Traceability Matrix, Detailed Test Plan and Test Case Specifications, Unit Test Plans, System Quality Review report, and Implementation plans. Planned, designed and guided software engineering team in the development of in-house and client software systems.

EDUCATION

Graduate Studies, Computer Science, Queens University, Kingston, ON

Bachelor of Science, Physics, McGill University, Montreal, QC



Contact this candidate