- PROFESSIONAL EXPERIENCE
NOVEMBER 2015 2020 |
- Cortical.io
Austrian based company specializing in text-based Natural Language Understanding (NLU)/ Processing (NLP) across
different languages.
Senior Sofware Engineer
PROJECTS
Various projects, both internal and client-facing demos. First 2 projects were Knime Workbench Process Workflow Manager
(briefly), then the flagship JavaFX RetinaLibrary API Demo, IRIS
Some Specific Projects:
- IRIS - Development of JavaFX based desktop application Using Retina
Library Natural Language Understanding (NLU) technology in an advanced JavaFX UI.
- RetinaLibrary API - Java API for accessing Fingerprints; obtaining
ontological classifications; document similarity; and filter/selector creation.
- Development of Table Extraction API / PDF Extraction API - expansion of existing
algorithms to extend extraction accuracy, capability and ease-of-use.
- Development of Semantic Search Demo - Spring based REST application which produces
lists of PDF documents which match the semantic content of input documents and search phrases.
- Development of COIN (Contract Intelligence API) - REST based NLU contract document
element extraction of PDF documents.
- Development of Semantic Repository - document retrieval system based on adherence
to semantic query content, using Retina Library and Fingerprint technology scoring.
|
AUGUST 2014 PRESENT |
- Numenta.org (Open-Source)
Lead Java Developer / Code Reviewer
PROJECT
AI / Machine Intelligence Framework
An official Java port of NuPIC (Numenta's Platform for Intelligent Computing). A commercial venture founded by Jeff Hawkins
(the founder of Palm / Handspring), which has since open sourced their algorithms. This is a framework of algorithms to
implement "Machine Intelligence" using cortical theories (theories around the biological function of the neo-cortex). I have
since been made the Java lead of that project, currently on github
Developed multiple Java module conversions and tools to adapt functionality present in Python which
doesn't exist in Java - and to span the gap in language semantics. Developed / Ported Temporal Memory;
Spatial Pooler; many Encoders (to convert raw input to suitable input format); and Classifier (for statistical
correlation of input to predicted output probabilities). Created unit and integration tests to identically
reproduce and match Python/C++ Test output.
- Manage and orchestrate the work of 5 (so far) other developers/contributors
- Learned and created Gradle repository management
- Configured Continuous Integration service using Travis-CI (together with
test coverage and reporting functionality
- Created Github source repository
- Created and authored Github Wiki for user orientation
- Created auto-Java Docs
- Created Network API for easy HTM Network composition and execution
|
FEBRUARY 2013 DECEMBER 2014 |
- Barchart INC
Senior Java Programmer
PROJECT
Development of the Barchart Trader trading platform.
Design / Development of multiple components within the "Trader" platform application. Added
functionality and features to core packages. Front-end system developed using Apache Pivot (A
Java AWT-Like GUI Framework) using an OSGi module framework.
- Dynamic Options Strategy Visualizer, with live data and calculations on any
user input. Development of custom components for simplified user input to obtain live configured data.
- Options Strategy Charting - Able to dynamically chart and sum any leg configuration.
- Developed "Windowing API" to host Java FX Browser for Weather display within Apache Pivot
- General Charting Package enhancements.
- Developed dynamic Time Series API
|
AUGUST 2012 OCTOBER 2012 |
- Self-Employed - Cross-Platform Mobile Application (For Arpac)
PROJECT
Development of Packaging Calculator for Arpac Industries - learned new technologies
(Sencha Touch, Phonegap, HTML5, CSS3, and expanded JavaScript knowledge) to successfully deliver application which
has 12 calculator screens for determination of packaging materials and size, together with cost estimates specific to
inputted materials.
Application works for Android Phones/tablets, and iPhone and iPad apple devices.
In Apple App Store® (see Arpac Calc)
|
OCTOBER 2010 DECEMBER 2011 |
- CMEGroup
contracted through TEKSystems, Chicago, IL.
(6mo.s - Contract extended twice - 3 mo.s then 6 mo.s)
Senior Java Programmer
PROJECT
Development of EOSTrader for the "PUMA" version integration with BM&F BOVESPA
(Brazilian Collaboration); Then subsequent versions.
Client:
Development of the "Time & Sales" (vertical ticker) screen
and client-side architectural improvements, bug fixes, optimizations, and
many user-experience enhancements. Examples include (but not limited to):
- Debugged, enhanced and smoothed pre-existing zoom functionality.
- Expanded preference handling to include elaborate user controls, saving
of the desktop state and location within multiscreen environment.
- Ability to save multiple instances of workspaces locally and visually
preview them, select and load them.
Server:
Addition of historical queries into the "Time & Sales" functionality; batching of server responses, work on improving entity
responsible for saving realtime market data to the db.
|
FEBRUARY 2009 APRIL 2010 |
- Infinium Capital Management, LLC, Chicago, IL.
Senior Java Programmer
GENERAL DUTIES
Design and build (in tandem with the project manager) "Einstein" the new in-house custom trading platform,
aimed at satisfying deficiencies found in "Trade Station", their primary trading platform at the time.
PROJECTS
Client:
- Design / Implement the Charting Package
- Included time-line scrolling/zooming along x and y axis with
custom "zoom around point", rendering of bars, zones, and formatting of prices and dates, with
custom look & feel.
- Design / Implement Trade Alert Indicator
- Custom JTable with a row for every registered alert, and columns
which featured dynamic real-time updating of alert state through text and color changes, depending
upon the "style" of the alert.
- Design / Implement Desktop Manager
- Window manager which allowed snapping of windows to each
other and to the edge of a monitor. Also featured snapping during resize of windows, and "snap-into"
functionality to resize windows into a given space between other windows.
- Design / Implement Preferences Storage Mechanism
- Custom extension of the Java Preferences API
to load preferences into a tree which could load and write preferences to and from a properties
file for easier debugging and viewing of preferences - which would later serve as a tree
capable of manipulation from a user interface and JTree.
- Design / Implement custom "zoomable" panels to display GUI elements on zoomable layers.
and many other custom widgets
Server:
- Design / Implement "Analytics Engine"
[ description ]
- Allowed user-specified chaining of analytics to produce
custom analysis which could be charted or "fed" into other analytics within the
engine.
- Extension of my own Rule Engine to use Fuzzy Logic to determine rule "truth".
[ description ]
- Extension of my Rule Engine to provide Fuzzy Logic inferencing
over rules.
- Design of server side object model and multi-tiered application communication.
- Design work on object model, establishment of terminology
and concepts to support current and future design and extension of the system.
- Design / Implement communication idioms and code utilizing
the "Blitz" open-source implementation of JINI/Javaspaces.
|
AUGUST 2006 OCTOBER 2008 |
- Allston Trading, LLC, Chicago, IL.
Senior Java Programmer
GENERAL DUTIES
Participate in enhancement of trade strategies and tool refinement. Provide
technical support to both inhouse traders and other IT staff.
PROJECTS
- Design / Implement the "Allston Spreader"
[ description ]
- A real-time electronic trading application which
used directly piped data arriving from exchanges to manage spread positions in related
instruments - generating trades and monitoring the user's trade position, code named "Katana".
- Design / Implement the real-time emergency cover tool
[ description ]
[ screenshot ]
- Used instrument positions per Trader/User
stored in a SQLServer database to display a user's position in a GUI, supplying buttons to
obtain quotes and calculate positions in either "straight" trades or to present multiple cover
strategies in the case of a hedged position.
- Design / Implement real-time trade parameter editing program & GUI
[ description ]
[ screenshot ]
- Allowed traders to control
multiple trade programs across multiple servers. Featured JTable with dynamically instantiated
"editors and renderers" according to data type of properties (i.e. custom spinner components
with dynamically configured float precision, text fields and boolean check boxes - including the
ability to store step functions for incrementing/decrementing doubles).
- Add functionality and refine the "OrderViewer" GUI program
- Application which displayed instrument
prices and real-time user positions in a JTable - additionally sending order cancellation
messages to the exchange with single click functionality.
|
SEPTEMBER 2004 APRIL 2006 |
- G2SwitchWorks, Inc. Chicago, IL - [ Spinoff of Orbitz® ]
Senior Java Programmer
GENERAL DUTIES
Enhance, Design and maintain WebServices API and supporting infrastructure to expose a
consistent global interface to airline fare-search and reservation system.
PROJECTS
[ details ]
- Design / Implement Rule Engine & Reservation Routing Rules
- Combine specific client request rules involving contractual obligations, with
specific airline reservation rules to dynamically route and provide reservation context and route requests
to internal servers. Included Natural Language rule format translation layer to more fully integrate business
management personnel into rule maintenance and build process in order to facilitate their direct responsibility
of "business rules"
- Help Design / Implement Modify Reservation API
- One of several API functional components such as Create Reservation
and Cancel Reservation. Add/Modify XML/Schema to add and modify functional objects; Modify Spring and JiBX code
to redefine translation between xml and internal objects; add functionality to objects to further perfect reservation
modification functionality.
- Add G2Agent® functionality
- Web based reservation system for small travel agencies. Help modify and enhance
functionality using Struts, JSP's, and Servlets.
- Design and build Fare-Search Stress Tester
- Multithreaded interface to the component which makes requests to 3rd party
information suppliers. Contained properties file to supply parameters such as number of simultaneous connections and
number of requests; log and provide reports to monitor connection code efficiency.
|
JUNE 2003 SEPTEMBER 2004 |
- Adeptia, Inc., Chicago, IL
Multiple Independent Consulting Contracts For Java Development
EXPEDITED HIRE FOR:
- Completion of 2 week deadline to construct a prototype for a presentation to SBC®.
- The success inspired continued work to "product-ize" the interface (described below). GUI work involved animation of connection
lines between nodes of two "Trees" and custom re-dispatching of low-level and semantic events from overlying
"glass pane" to coordinates of underlying components.
PROJECTS
- Design / Implement Process Flow Designer
[ description ]
[ screenshot ]
- "Visio-like" SWING stand-alone GUI for modeling business processes using
BPMN (Business Process Modeling Notation) constructs utilizing SWING Drag-n-Drop and custom Java2D API, and (Apache)Jelly.
- Schema Mapper Applet Prototype
[ description ]
[ screenshot ]
- Contracted to construct a prototype SWING drag-n-drop
GUI for their previously existing enterprise system, then having a "Web" interface.
- Later Development and Productization of Schema Mapper (Aurora)
- Completed post prototype functionality and subsequent re-implementation
as a SWING stand-alone application.
- Provided the means to map XML Schema elements and processing
rules to route Vendor XML data to a differing target Schema. (i.e. "Telco Fees" element in source Vendor's schema
might be called "Telephone Charges" in the target Vendor's schema and may require mathematical or text formatting
manipulation before insertion into target XML data).
|
MARCH 2001 MARCH 2003 |
- EpicEdge, Inc.,Seattle, WA
Software Engineer
GENERAL DUTIES
Original hiring expedited to solve crucial threading problem in their
proprietary Advanced Java Beans modeled GUI Engine.
MAIN PROJECTS
- Acords - Washington State Appellate Court System
[ description ]
- Solved major client-side
threading issue. Worked on adaptation of existing code for Superior Courts.
- Prototype project for SUN Microsystems® web site.
- Wrote JSP / Servlet code to programmatically interact with the U.S. Postal Service
website to input addresses for a zipcode lookup and automatically populate the zipcode field in the SUN order form.
- Later client-side work on above project.
|
JANUARY 2000 JANUARY 2001 |
- FizzyLab Inc., Seattle, WA
Senior Java Programmer
MAIN PRODUCT DESCRIPTION
RELEVATOR
An "Artificially Intelligent" search program which dynamically executed a search algorithm
to link currently viewed documents with other massively archived documents on a client's website which contained contextual similarity,
thus increasing the utilization of archived documents that would otherwise never be retrieved during a website search.
PROJECTS
|
FEBRUARY 1997 JANUARY 2000 |
- Furkon Inc., Chicago IL
Senior Consultant, (Consultant 19971998)
Java developer responsible for researching, introducing and applying new technologies. Team-leader in matters of architecture and design of Distributed, Multi-tiered Web-based Intra/Internet applications. Mentor and advise other programmers.
PROJECTS
- Testing System (slated for shrink-wrap) for Furkon Software Solutions, an affiliate of Furkon, Inc.
- Designed and distributed middleware utilizing JINI
- Wrote server with specialized classloader for uninterrupted restart of middleware objects
- Designed recursive virtual client for application usage tracking.
- Multi-tiered Billing System for major credit card network services provider:
- Designed the interface and middleware architecture (Web-based intranet SWING interface, CORBA middleware objects with Oracle/SQLServer database connectivity)
- Wrote database abstraction API to simplify programmer usage of middleware objects.
- Online Underwriters Manual/Rating Tool for major national insurance company: developed initial prototypes
- Designed and wrote 80% of application including extensive DHTML (dynamic navigation and menuing) and Java scripting, with specialized Java tools (e.g., interactive analysis/rating tool and search engine).
|
|