Juan Carlos (JC) Carrillo
8255 SW 72 CT Miami, FL 33143 -
(786) 340-1092 - jccarrillo@acm.org
Software Architect/Lead/Manager
MANAGEMENT
SKILLS
● Over
10 years Leading Teams thru thought Leadership, open
door policy, technical reviews and constant collaboration.
● Over
7 years Managing Technical Teams, Managing Architectural
Designs & Training teams
● Over
5 years setting Technical Direction as well as Interacting with
Customers & Product owners to analyze & define business requirements
as well as Leading Applications Strategy.
● Over
5 years of SCRUM: Sprint
Planning/Backlog/Review/Retrospective.
● English/Spanish
and some Portuguese.
● Strong
Analytical and Communication Skills.
TECHNICAL
SUMMARY
● Over
15 years of experience in all phases of SDLC within Highly Scalable
Distributed Enterprise Systems: User Interaction, Business and Functional Analysis/Modeling/Documenting,
Design/Architect, UML/Modeling, Development,
Integration, Planning & Management of Builds, Configuration, Code
Management, Production/Customer Support, Maintenance, Enhancements/Quality
Control/Testing, Implementation, Documentation, in E-Commerce, Human
Resources, Logistics, Social, Banking, Telecommunication/Mobile
industries.
● Over
15 years of Java Core, Reflection, Dynamic Loading, JNDI,
Concurrency, JMX, RMI, Security, Transaction, Crypto,
AspectJ.
● Over
15 years of Web/Internet, frameworks and related technologies: TCP/IP,
SMTP, Web Services/SOAP/REST, XML/XSL/DOM/SAX/DTD,
Java Socket Programming, Java Filters/Servlets/JSPs/JSTL, over
10 years of Struts 1/2, Tomcat, Apache, IHS, SSL, 5
years of CSS & Javascript and 2 years of Web Sockets,
Single Sign-on: SAML/OAUTH, HTML, Weblogic and Eclipse Virgo.
● Over
12 years of Object Oriented Programming (OOP), Enterprise
Application Architecture Patterns & Design Patterns.
● Over
7 years of CI Practices & related Technologies: CVS/SVN/GIT,
Testing Frameworks/APIs: JUnit/Mockito/JMock, Jenkins,
Test Coverage Analysis: SonarCube, Maven/Ant/Gradle.
● Over
7 years of Spring Core/Spring Framework/Spring Security
& 2 years of Spring Boot/Spring Data/Spring Integration/Spring
HATEOAS/Spring AMQP/Spring LDAP.
● Database,
Java ORMs and related Technologies: Database Design/Modeling, SQL/Stored
Procedures, MySQL/DB2/Oracle, Hibernate/Mybatis/iBatis,
EhCache/Memcached.
● Message
Brokers: RabbitMQ and ActiveMQ.
● Design/Development
Tools: IBM’s Rational Modeler/Visual Paradigm, Eclipse/STS/RAD.
PROFESSIONAL
EXPERIENCE
OPENPEAK,
INC.- Boca Raton, FL May 2012 - Present
Senior
Software Architect / Lead
● Lead
a team of 5 Senior Java Developers, 1 SQL developer and 2 Front-end
developers.
● Daily
interaction with Product teams and clients to set or define product
requirements for OpenPeak’s ADAM, an Enterprise Mobile Management Cloud
solution and its Gateway that interfaces on-prem secure third party services.
● Increased
communication performance between components by implementing Web Sockets.
● Increased
scalability with the introduction of SpringBoot as well as improved
maintainability of the backend by implementing micro services utilizing
SpringBoot, Spring AMQP, Spring Data, Spring Integration
and other Spring projects.
● Designed
and developed OpenPeak’s On-Prem Gateway Solution, which interfaces with
Microsoft Products such as Active Directory, Exchange and NDES, utilizing the
OSGi model which is allowing development and testing of the Gateway to
be more Agile. More than 30k licenses running as of Sep 2015.
● Co-led
the re-engineering of OpenPeak’s Enterprise Mobile Management Cloud solution
to meet client’s expectations as to ease integration with their systems (REST),
to be able to process large data sets, all while reducing the footprint of
the solution. Such is currently running on Blackberry’s, AT&T and
Deutsche Telekom’s cloud infrastructures.
● Introduced
concept of Code Reviews, Continuous Integration (Jenkins/Sonar/Test
Cases), SCRUM and others to change OpenPeak’s internal development
culture resulting in a more Agile Development environment while decreasing
Technical Debt, QA time and bug reduction.
● Identified
and rectified SQL/Application performance issues resulting on huge
performance gains – from hours to seconds.
● Designed
and developed a Distributed Campaign Manager to distribute device messages during
a fix period of time. (Patent Pending)
● Designed
a High Availability Cloud solution utilizing Tomcat/Nginx on a Unicast
network for application clustering, Akamai for content distribution, Couchbase
as a shared Memcache solution, RDS MySQL databases and HA
Proxy Servers for load balancing.
TRACFONE
WIRELESS, INC.- Miami, FL February 2011-April 2012
Senior Java
Engineer Consultant
● Supported
“Intergate” applications to handle communication with Wireless Carriers.
● Re-engineered
code base to treat database object ids as Longs and not Integers to avoid
data truncation.
● Constantly
taking initiatives to update legacy JSPs to use JSTL for
scriplet removal. All new requirements for JSP changes are done using JSTL.
Also, create Tag Libraries when necessary.
● Involved
in the ongoing process of updating the spring framework configuration to
handle new DAO injections.
● Co-lead
a constant migration of in-house SQL query handling to Spring’s JDBC
framework for better handling of database objects and database pooling.
● Worked
on in-house Web Service Model (no SOAP - home grown) to handle all
database activities, massage DAOs and Business Logic when needed.
● Involved
with the business to understand requirements and execute them. Understanding
of Process Flows Diagrams is needed.
● Worked
closely with Software Quality Assurance testers to quickly determine bugs and
fix issues.
● Assisted
with efforts of creating utility classes to facilitate the efforts of JUnit
Development and enforce the on-going development of it. JMock is used
to prevent database access and to unit test only certain items and avoid
integration testing.
● Work
closely with the Engineering department (department in charge of deploying
and maintaining the systems) to debug Weblogic for performance tuning
due to database memory leaks, logging and other features.
● Assisted
Oracle PL/SQL developers on identifying hard-coded queries that should be
turned into Stored Procedures or Functions.
● Worked
with Wireless carriers such as AT&T to upgrade the way Tracfone
integrates with them by either modifying jar files, changing IPs or modifying
the existing API or XML schemas to handle new requests.
● Daily
use of Oracle SQL Developer, CVS, Eclipse, Visio,
GIT, MVN, Weblogic
ADRISS, INC.
- Miami, FL March 2010-January 2011
Software
Architect
F&E
Aircraft Maintenance , LLC
●
Created the Software Requirements Specifications (SRS) of a Work Order
Management System that allowed the company to seamlessly manage their
workload and provide real time notifications and access of work orders to
clients and staff.
○
The SRS included, Use Case Diagrams & Specifications, Database
Models, Flow Diagrams, Class Diagrams and UI Mocks.
○
The application was designed to be a web application that looked and
appeal to the android tablets and because this system was to be used by
wireless tables, the use of AJAX, JQUERY was used to not load
complete pages but certain elements upon request.
●
Led the Design, Development, Deployment and Maintenance efforts with a
team of 3 Java Developers, 1 Web Designer and 1 Systems Engineer.
●
The system was developed in Struts 2 using Tiles and IBatis and
deployed in a non-distributed Linux environment running Apache Tomcat as a
Web Server and a MySQL Database server running on a different Linux box. No
fail-over was created but backups were externalized and a plan was in place
to recreate all environments within minutes.
●
Worked closely with I.T. Engineers at Collocation environment to
effectively install the needed servers, deploy the application and create a
disaster recovery plan.
QBank DMD,
LLC
●
Designed and Developed a Web based Exam Preparation Software. Involved
in the SRS documentation 100%.
●
Lead a team of 2 Java Developers and 1 Graphic Designer.
●
Developed the base Struts 2 framework (Actions, XML
Configurations, DAOs and JSPs) and implemented 80% of all JUnit Test
cases. (Struts 2, IBatis, MySQL, AJAX, Java Mail, Web Services, Java
Reflection)
●
Led an Internship program with Florida International University to
train Students in JUnit Test Case Development while teaching them about MVC
Frameworks. Led workshops twice a week for 4 months.
IBM - Cambridge, MA
January 2001-March 2010
Senior
Software Engineer April 2007-March 2010
● Led
a Java Software Development Team of 5 to 7 Engineers.
● Involved
in Chinese Team Development Migration. Co-led daily Scrum meetings
with China Team Leads at different time zones. Ran design meetings in US and
in China.
● Re-designed
the existing IBM’s Web Identity integration to decrease a set of 10
Authorization portals to only 1 portal thus reducing code maintenance by implementing
a single sign on environment using a cookie driven mechanism. Designed
protected Cookie Mechanism.
● Involved
in all layout changes to follow IBM’s Look & Feel Standards using
pre-designed CSS files created by the IBM Standards’ Council. Created
set of Tag Libraries for Team to reuse.
● Created
Ant scripts to automate JUnit testing and deployment to UAT
environments. Managed UAT bug reporting by assigning tasks and overseeing the
java development efforts based on business requirements.
● Implemented
Cross-Team pre-roll out code reviews to identify performance problems
and security holes as well as to enforce J2EE best practices.
● Involved
in all Production Roll Outs. In charge of testing schedules and testing
procedures.
● Worked
closely with Management to report man hours estimates based on business
requirements provided by the business analysts and to provide weekly reports
on development statuses.
Lead Software
Engineer
April 2004-March 2007
● Led
the full development of a complete set of JUnit Test Cases (1000+
classes). Created Mock objects implemented using Java Reflection to
prevent Data Access.
● Involved
in Scrum meetings and followed the Agile Methodology.
● Co-designed
& Co-led development of an Authorization/Entitlement solution to allow
multi-type users to authenticate and register with IBM’s Web Portals.
● Led
development of secure Web Services. Deployed WS were used to obtained Client
Data - which other teams consumed in order to gain access to data.
● Led
the introduction of Rational Tools into the Team. Run workshops explaining
the integration of Modeling and Java. Dues to these efforts, team started to
use Modeling tools to create and to modify code.
● Led
the reverse engineering of existing code to modeling objects.
● Improved
Application performance by reducing Abstraction layers and by using performance
techniques such as singletons, connection pooling, string
buffering, etc.
● Reviewed
designs (code and models) and identified code re-usability.
● Involved
in migrating hard-coded SQL statements into DB2 Stored Procedures.
Staff
Software Engineer April 2002-March 2004
● Developed
a set of APIs to improve localization of text by the use of XML instead
of property files.
● Modified
SAP, DB2, Lotus Notes and Web Applications configuration to
handle double byte characters for Chinese and Japanese characters.
● Involved
in the deployment of a distributed Websphere Application Server
Environment.
● Implemented
a reverse proxy mechanism in IBM’s HTTP Server.
● Helped
in the Setup of a Database Driven Session Management Environment for
Clustering purposes.
● Created
a custom set of Email Logger Log4J classes to send alert of exceptions
to reduce down time and improve customer satisfaction. These mechanism was
new at the time and was used across teams.
● Led
the use of CVS as a Code Repository and led the team in the efforts of
maintaining a more manageable code repository by pushing to follow Java Code
Development Standards.
● Upgraded
framework from IBM’s JADE to IBM’s ead4j.
Software
DeveloperJanuary 2001-March 2002
● Involved
in the restructuring of a legacy purchasing system and transformed manual
methods of purchasing such as sending faxes or emailing orders into a web
driven process. IBM’s proprietary Java Framework (JADE) was used to
develop such system also integrating with DB2 databases and SAP.
Localization was of utmost importance, double byte characters problems were
solved for Corporate Clients in the Asian Markets.
● Worked
with a team of four members to manage several Lotus databases. Created Lotus
Java Applications to interface with DB2 databases and also SAP. Also, implemented
LDAPs mechanism to provide single sign on to the Lotus databases.
● Also,
was involved in the removal of EJB beans.
● Completely
re-engineered IBM’s Passport advantage e-commerce application to fix
performance issues. Increased revenue to 1000% first year.
ADRISS,
INC. - Miami, FL March 2002-December 2009
Part Time
Independent Consultant
Perfect Plug,
LLC.
● Designed
and Developed an Online Dating Application. Created the Software
Requirements Specifications, including Flow, Sequence and Use
Case Diagrams as well as Specifications. Oversaw the development of the SRS,
leading a team of 4 Java Developers and 2 Graphic Designers. Created
basic Struts framework for the team to work from. Struts, MySQL, iBatis
and Java Mail was used to develop the application.
Chavez
Enterprises
● Developed
a Financial Statement Reporting Web Application in Java using Struts 2,
Hibernate, Java Mail and Web Services in an Agile Team Environment.
ABCListing,
LLC.
● Designed
and Developed an E-Commerce website purely in Java with up-stream and
down-stream integration with QuickBooks (Desktop Edition.)
Linking
Promotions, Inc.
● Developed
a Web based Event Management/Human Resources System transforming manual
operations to Web based transactions. The application was developed in Java
using Struts, Web Services, MySQL, Java Mail.
Zeatrans
Logistics, Inc.
● Developed
a Web based Cruise Logistics Application to allow Client to keep more control
of daily operations. A Custom Customer Registration System was created to
protected resources using Java Security. MySQL, Java Mail, Struts, Web
Services were used to develop such application.
Adirondack
Associates RE
● Developed
a JSP driven Property Management Web Application using Java, JSP,
MySQL and Java Mail.
HIGH
PERFORMANCE DATABASE RESEARCH CENTER - Miami, FLDec.1997-December 1999
Research
AssistantJuly 1998-December 1999
● Worked
under Supervision of Computer Science P.H.D. Candidates to create a Java Multi-threaded
Data Mining System.
● Developed
Custom Socket Level API to stream data back and forth from Web
Servers.
● Helped
create a HTML Parser to facilitate the extracting of the Data from
HTML documents.
● Modified
API to fix Multi-threading Problems. Allowed hundreds of threads to run
simultaneously and extract data from Web Servers by Synchronizing IO
Inputs and Outputs.
● Created
a Signed Applet to allow the Applet to extract data from the User’s
Browser.
● Modified
the Core Java API to allow Web Server data mining via Proxy Servers thus
preventing denial access from target Web Servers.
Java DeveloperDecember
1997-June 1998
● Created
Threaded Java scripts using a Custom Data Mining API created by HPDRC
to extract content from websites such as amazon.com, mapquest.com and more.
These data was then imported into HPDRC Terrabyte DB2 Servers for further
analysis.
EDUCATION
Bachelors in
Computer ScienceFlorida International University, F.I.U. (December 2000)
Relevant
Graduate Level Classes
Operating SystemsMassachusetts
Institute of Technology, M.I.T. (2001)
Distributed
Computer SystemsMassachusetts Institute of Technology, M.I.T. (2001)
Advanced
Software EngineeringMassachusetts Institute of Technology, M.I.T. (2001)
Other
Relevant Classes/Courses
IBM Websphere
Application Server AdministrationIBM
IBM Rational
ModelerIBM
IBM Rational
Application DeveloperIBM
IBM DB2
AdministrationIBM
Agile MethodologyIBM