Architect/software Developer Resume
TECHNICAL SKILLS
Operating Systems: Mac OS X, Linux, Windows
Programming Languages: OOP Java C C++ Javascript, Python, Groovy, Pascal, VB, Prolog
Scripting Languages: XML XSD JAXP, JDOM, DOM, SAX JSON JSP, JSTL, XSLT, Xdoclet, XJavadoc
DB Access: JPA Spring Data JPA SQL DDL DML.
DB Engines: Oracle (7, 8, 9) MySQL MS SQL, Derby, H2, Postgres, Access, Btrieve, Paradox
Enterprise Systems Technologies: Web+App Servers Tomcat, Apache, Jetty, JBoss, Oracle AS, Websphere, Weblogic 8
CDI/Application frameworks: Annotations, programmatic & XML based config. Spring Boot, Cloud, Mvc, Data, Security, Core, AOP, etc.
Security: JWT, PKI, X509 certs, ACLs, encryption, hashing Spring, Struts, Maverick, JSF, Portlets (JSR 168)
Client & UI Technologies: Javascript (up to ES6), React, Typescript, DOM, HTML, CSS, XSL, AJAX JavaFX (up to 8), Swing/AWT, Eclipse s RCP/SWT
DevOps: Gradle, Maven 1,2 & 3, Ant Git, Subversion, Perforce, ClearCase, CVS, PVCS, VSS
Issue Tracking: Jira, ClearQuest, DevTrack, Bugzilla
IDEs: IntelliJ, Eclipse, VS Code, Websphere Studio, JBuilder, V.Caf
Unit testing: JUnit (up to 5.0), Mockito, Hamcrest, Postman, Clover, Cobertura
VMs & Container: Virtualbox, Docker, Kubernetes
Collaboration: Markdown, Confluence, Asciidoctor, Maven APT, TWiki
PROFESSIONAL EXPERIENCE
Confidential
Architect/Software Developer
Responsibilities:
- Architected, designed and implemented a fintech integration system between Plaid (financial data aggregation provider) and the proprietary system of my client to support custom users’ workflows to automate importing financial data available online from financial institutions.
- Architected, designed and implemented a framework to integrate payment services providers (such as Stripe, Paypal and Square) with my client’s price book SaaS and feature authorization SaaS; in order to support intelligent (rules based) activation of features across my client’s SaaS offerings. The framework leveraged Spring Boot Starter technology to support integration with different payment service providers through discovererable and autoconfigurable drivers. A Stripe driver was implemented as part of this effort.
- Both integrations were architectected as a set of fully reactive microservices developed using Hibernate, Project Reactor and Spring frameworks: Boot, Data JPA, Webflux and Cloud (Stream, Function, Config, Eureka, Feign, etc.). The microservices integrated among themselves, the 3rd party providers and legacy systems exclusively through custom reactive APIs and Kafka as their message broker.
- These projects were developed using Java 8, Gradle 5.6 and IntelliJ on a MacOS environment; unit tested using JUnit 5; integration tested using Postman; documented using Confluence; and managed using Git, Bitbucket and Jira.
Confidential
Architect/Software Developer
Responsibilities:
- Architected, designed and implemented a bioinformatics workbench; which provides extensible integration capabilities for online providers of bioinformatics data (i.e. NCBI and Expasy).
- This system is a full stack SPA, built with on top of REST services; which allow its users to run common workflows while hiding proprietary discrepancies among data formats/sources.The system is fully reactive and it is being developed using Java 1.8, Project Reactor, Spring (Boot, Data, Webflux and assorted Cloud frameworks), Hibernate, Javascript, ReactJS, Gradle, Git and IntelliJ.
- A small portion of this system is available as an open source project showcase the technologies used; and a running version of this SPA is hosted (free hosting - slow initial loading time).
Confidential
Architect/Software Developer
Responsibilities:
- Designed and implemented microservices for confidential’s next generation software for their ‘MassARRAY System’. A web service for exporting data from confidential’s system to 3rd party LIMS systems, another for managing reagents inventory and another for executing and inspecting DNA sample comparisons based on SNPs. These services were HATEOAS compliant (HAL); and fully documented using Spring REST Docs.
- Architected, designed and implemented a framework to create standarized web services (REST) specifically tailored to be used by workbench type of apps. Agena’s software was a workbench using Angular, and this framework facilitated the creation of new REST endpoints to exchange UI descriptive resources with a server, which provided persistance for custom user layouts and authorized data.
- Architected, designed and implemented a system to provide integration capabilities between 3rd party LIMS systems and Agena’s system. It included a SDK to support plugins (built around Camel routes) installation through custom gradle commands, monitoring capabilities using the ELK stack and monitoring and control capabilities for all installed routes (through JMX+Jolokia). The systems were developed using Java 1.8, Spring Boot, Eclipse and Gradle; and unit tested using JUnit.
Confidential
Project Manager/Architect/Software Developer
Responsibilities:
- Framework built entirely in standard java on top of RMI to provide transparent sessions support through proxy objects generated on the fly (using AOP & reflection) with required functionality injected to exportable objects.
- The framework supported SSH tunneling features which allowed it to be used as a secure distributed processing infrastructure among a network of SSH enabled servers. A REST based system was built to allow access to metadata information, admin operations and monitoring of enabled network.
- MedsTracker - System to track all stages of medication intake and its chemical impact to patients, including drugs lifecycle, half life range, type of metabolites, equivalence substitutions, withdrawal schedules, etc. It also included a subsystem to track prescription information and other structured medical history. It included an extensible framework to plug in new drugs specifications (profile, interations and behavior). This framework included a set of REST services to allow data entry and querying of structured and charting data. A web app was built on top of these services using javascript, jQuery and RGraph charting library.
- Etymological Inspector - System built on top of JWKTL which extracts and analyzes the content of Wiktionary dumps in order to build comprehensive etymological trees for words including semantic fields, mentions, roots, lemmas, derivation relationships, senses, etc. Complete with REST web services and UI.
Confidential, San Diego, California
Project Manager/Architect/Software Developer
Responsibilities:
- Architected, designed and implemented “GWE” open source enterprise distributed system; which leverages on clusters of computers and job managers (such as condor, SGE, PBS, etc), in order to provide a virtualized grid computing platform for end users to easily and effectively parallelize the execution of an (in theory) unlimited number of inter-independent processes.
- The system was architected as an ecosystem of sub-systems (clients, monitors, daemons and agents) distributed across compute resources and transparently coordinating efforts through a secured, session based, RPC framework built using AOP proxies with RMI over SSH tunnels (with PKI support for authentication) working with a custom virtual file system to provide transparent high performance data sharing across the network.
- The system has been built using a highly modular approach. Its most important frameworks are: AOP based modules (authentication, distributed systems heartbeat generator and event monitor), grid “resources” manager frameworks (file systems, network protocols, job managers, OS applications and bundle files), proprietary parallel processes language interpreter, real time event generator, notification and logger, full featured programmatic client API, persistent module (hibernate with embedded derby DBs), virtual file system, sync/async brokered services framework and multithreaded compute resource lifecycle controller.
- Responsible for the overall project management: release (maven), project site creation and maintenance (features and issues management (logging, prioritizing and addressing - Jira), source control maintenance (SVN), mailing list news and forums (mailman) and overall documentation.
- Provided user support for the project community. Most of its users were medical researchers from Harvard Medical School, John Hopkins University, MIT, Duke University and the University of Iowa.
- Authored the chapter “Processes Parallel Execution using Grid Wizard Enterprise the book “Biomedical Informatics” published by Humana Press (series “Methods in Molecular Biology”).
- Authored the scientific paper “Simplifying the utilization of grid computation using Grid Wizard Enterprise and presented it at the “Medical Image Computing and Computer Assisted Intervention” (MICCAI) Grid Workshop 2008 at NYU.
- The project was developed using Java 1.5, Eclipse and MyEclipse on Mac OS X environment. Production environments include Linux clusters (generally running Red Hat and Rocks) and SSH enabled networks.
Confidential, San Diego, California
Software Designer/Software Developer
Responsibilities:
- Designed and implemented a compiler and a virtual machine framework for proprietary type of “programs” (written in a custom language which was designed as well).
- Designed and implemented (leveraging on the previous framework) a ‘compiler’ to translate user requests into multi-step ‘programs’ to control and coordinate the operations and interactions of laboratory robots. These robots were part of a larger scalable, configurable and error free devices used for the storage, retrieval and overall management and handling of biological samples. Designed and implemented a proprietary virtual machine (with parallelization capabilities) to execute these ‘programs’.
- Implemented a formal methods framework to stress test the systems built.
- The systems were developed using Java1.5, Eclipse, MyEclipse and Maven 2.0. The systems were unit tested and profiled using JUnit 4.0 and Eclipse TPTP respectively. The systems were source controlled and automated built using SVN and Hudson respectively.
Confidential, San Diego, California
Technical Leader/Architect/Software Developer
Responsibilities:
- Managed, trained and mentored a team of developers to design and implement the insurance module (OHI) for the “Composite Health Care System” (CHCS). CHCS is one of the systems of the Department of Defense Military Health System (DoD MHS). The OHI module was completed on time with an aggressive schedule.
- Designed and implemented multiple frameworks to speed up development of the web application as a whole (used in the development of the OHI module). Frameworks: a full-featured ORM like framework (intelligent engine to interface between business delegates and a MUMPS database through Cache), a generic MVC controller to handle multiple ways to submit the same form, a custom validator framework and a rich library of widgets (using struts tiles) fully integrated with the previous frameworks.
- Designed and implemented frameworks to build the new medical portal used by all DoD beneficiaries, providers, and managers Among the most important frameworks were a lightweight portal router, a renderer of “smart” tab pages (customized javascript) based on data from user profiles stored in DB and customizable content sections (same concept as portlets).
- The projects were developed and source controlled using eclipse and PVCS respectively. The production environment included Blades servers running Oracle 10g AS, OC4J and Orion.
Confidential, San Diego, California
Technical Leader/Architect/Software Developer
Responsibilities:
- Architected, designed and implemented an EAI server to integrate the ERP of this division with the corporate SCM (supply chain management) system from Catalyst International. Such EAI server had to communicate with the SCM through OAGiS messages, so a framework was created (using XPath, reflection, JDOM and XMLBeans) to build on the fly business objects populated with data read from an XML message. For outgoing messages, a OAGiS generator framework was created (using Velocity, JDOM, JDBC and Hibernate) to build on the fly OAGiS messages containing data from the division’s ERP (mostly data stored in an Oracle DB).
- The EAI server also included interfaces to listen to requests from the local and corporate ERP (MDBs) and to post messages on queues (JMS). The server was built using Spring and was fully modular and configurable.
- The project was managed, developed, unit tested and source controlled using Maven 1.0, Websphere Studio with MyEclipse and XMLSpy, JUnit and CVS respectively. The production environment included Solaris servers running Websphere 6.0, MQ Series queues and Oracle 9 servers.
Confidential, San Diego, California
Technical Leader/Architect/Software Developer
Responsibilities:
- Architecting and implementing a query language framework for web applications; which was used as the infrastructure for Sony’s EverQuest II new portal for players This DSL was built using maverick, velocity and hibernate (MVC components) and XML files to configure it (with XML Beans and JDOM). The configuration of the framework was self documented using XSL templates.
- Responsible for architecting and implementing the following sub-frameworks: generic HQL builder, abstract data feed and formatter (“EQ2 Data Feeds API” generic form controller and centralized cache manager based on OSCache; all of them with a rich set of hooks to extend their functionality.
- Assisted in the architecting and implementation of the following modules for the framework: authentication and authorization (using acegi and spring), maverick/velocity views and custom velocity directives/tools.
- The project was managed, developed, unit tested and source controlled using Maven 1.0, Eclipse 3.0.1 with MyEclipse, JUnit and Perforce respectively. The production environment included a linux cluster running tomcat behind apache servers and Oracle 9 servers.
Confidential, San Diego, California
Architect/Software Developer
Responsibilities:
- Architecting and implementing a generic framework to integrate applications (same concept of the Eclipse project and other IDEs with a more reduced scope) to build EMC’s VisualSAN product as a platform built with pluggable modules. The framework provided centralized life cycle control of applications and storage management of custom resources, request processors and event listeners. Also responsible for adding custom features to this framework, building custom plug-ins and application modules for it and building a whole set of UI widgets (extending swing framework - custom abstract wizards, forms, dialogs, panels, tables, etc.).
- Responsible for managing a project to create an event management system for a SAN (Storage Area Network) monitoring system; which had to integrate with multiple legacy modules, no consistent repository system and proprietary limited protocols. The system was developed using IntelliJ IDE and JDK 1.4.
- Responsible, for improving the software development process of the division through the introduction of UML diagrams for the analysis and design phases. This effort included conducting training sessions.
- These projects were architected, developed and source controlled using Rational Rose UML, Jbuilder 5.0 and Rational ClearCase respectively.
Confidential, San Diego, California
Architect/Software Developer/Systems Integrator
Responsibilities:
- Architecting and implementing a gateway that communicates to proprietary servers nation wide, to send instructions and gather real time state data from them. A third party Java to DCOM bridge (J-Integra) was embedded into the gateway to facilitate message translation since the servers talked DCOM.
- The gateway included centralized services such as control and configuration, data exchange and event pooling; all of them multithreaded, synchronized and thread safe designed to provide true real time behavior. Also, it provided a RMI API so different clients could request services from it. Applets, servlets, beans and JSP pages were built using these APIs to provide different type of consoles for the gateway (admin, monitor, control, etc).
- The gateway was designed and developed in Java using Rational Rose UML and Visual Café IDE, Threads, RMI, JNDI, JDBC, JavaMail and proprietary Weblogic frameworks. The production environment included MS SQL 7.0, Weblogic 5.1, Windows 2000 servers and TCP/IP intranet over a VPN.
Confidential, San Diego, California
Architect/Software Developer
Responsibilities:
- Architecting and implementing a system to execute forms created with a proprietary "case tool". This system read from a DB, the proprietary description (layout and features) of forms, build them and execute them "on the fly", let the user work with them and save the user modifications back into the DB. The system was composed of a servlet (to serves SQL queries on demand) and an applet (to build the form "on the fly" based on its description gathered from the servlet).
- The system was developed in Java using Visual Café IDE, Applets, Servlets, Suns' ServletRunner engine, Swing, JDBC and objects serialization technologies. The production environment included MS SQL Server 7.0, JRun servlet engine, IIS 4.0, Win98 workstations, WinNT4.0 servers and TCP/IP intranet.
Confidential, San Diego, California
SW Designer/SW Developer/Systems Integrator
Responsibilities:
- Embedding CTI functionality (predictive outbound and routing) into several applications. CTI development was done using VB 6.0, DAO, Oracle RDBMS, and 3rd party CTI ActiveX controls (Aspect, Melita - eShare, Dialogic, etc).
Confidential, Philadelphia, PA
SW Designer/SW Developer/Systems Integrator
Responsibilities:
- Architect and implemented a “browser” type of applet to query and maintain data stored in an Oracle DBMS using JDBC and Java network framework. Along with the data presented, the system queried the DB for the custom presentation layout to create the appropriate view "on the fly". Real time features were implemented using pooling and semaphoring mechanisms. The applet was architected in 5 layers of abstraction each with its own API. The system was developed in Java 1.1.x (Visual Café 3.0 IDE) using Java beans for the GUI (AWT) and JDBC and Oracle Java classes (JDBC drivers) to access the RBDMS.
- Developed real time APIs in C++ to connect a server and an MS SQL Server to update and recover online information. This was accomplished with ODBC API and MS SQL specific libraries. Classes developed were used to implement the same functionality with Oracle RDBMS.
- Designed and implemented an embedded system for barcode scanner devices. Such devices had processing and communication capabilities via TCP/IP over a radio frequency network, which had to be programmed and fully configured in order to use. The embedded application was developed in C and Intermec proprietary GUI development tools specific for such devices. Responsible for configuring network bridge devices (between a RF network and an Ethernet network) using IP based protocols such as TCP, TFTP and DHCP.
Confidential
SW Designer/SW Developer/Systems Integrator
Responsibilities:
- Architect and implemented a customizable client end-user interface for customer’s call center agents. The system integrates their business systems with CTI functionality to automate call operations for the agent.
- The core of the system was architected as a configurable state machine to ease integration of future requirements. Connectivity supported included Netware for SAA and terminal emulator 3270 (to the mainframe) and proprietary communication protocols (to the proprietary CTI middleware).
- The system was developed for Windows NT using VB 5.0, Microsoft TCP/IP controls and Wall Data controls to support mainframe terminal emulators (Rumba ObjectX).
Confidential, Research Triangle Park, NC
SW Designer/SW Developer/Systems Integrator
Responsibilities:
- Designed and developed a system to analyze Glaxo Wellcome’s call center data; based on their call models to identify problems. Responsible also for the design and development of a client application to build custom reports off their Oracle RDBMS.
- This application was integrated with the analysis system to build dynamic reports. In both cases components used were Genesys 5.0 Suite, Nortel M1 option 81, Intervoice IVR and NT Servers. Systems were developed for WinNT using VB 4.0, Access 97, ODBC and Oracle DBMS