Scroll To View More
Steven S. Morgan, Java Developer in Heathrow, FL, United States
Steven S. Morgan

Java Developer in Heathrow, FL, United States

Member since May 24, 2013
Steven is an expert Java architect and freelance developer with extensive experience in distributed architectures, scalable solutions, and flexible and maintainable designs. He is a team player with a knack for interacting well with diversity. He leads via his expertise and by the example he sets.
Steven is now available for hire

Experience

  • Java, 20 years
  • Design Patterns, 18 years
  • Concurrent Programming, 17 years
  • Multithreading, 15 years
  • Java EE, 14 years
  • Asynchronous Programming, 14 years
  • Spring, 10 years
  • REST, 5 years
Heathrow, FL, United States

Availability

Part-time

Preferred Environment

Eclipse, Emacs, Subversion, Git, JIRA, Bugzilla

The most amazing...

...success I've had was in proving and working around the root cause of an intermittent yet critical bug in a high-stress situation.

Employment

  • President & CEO
    2006 - PRESENT
    Morgan Ventures, Dealings, and Holdings, Inc.
    • Formed Morgan Ventures, Dealings, and Holdings, Inc. in 2006 to allow me to pursue my multiple passions and varied interests as a business professional. Clientele and revenues supported full-time employment for myself beginning in 2014.
    • Engaged in software engineering, Java development, full software development life cycle, and technical documentation. Clientele includes Apple as a subcontractor of Catapult Consulting. Contributed to the iTunes Connect application used by content creators to manage and sell their products and services via iTunes.
    • Did hypnosis and neurolinguistic programming for weight loss, smoking cessation, fear reduction, pain management, emotional conflict resolution, behavior modification, group sessions, seminars, spiritual exploration, education, training, and entertainment.
    • Designed and hosted websites, including static and dynamic web page design, integration with third-party services, dedicated hosting on virtual servers, and domain management.
    • Repaired computers and trained people, installing and configuring hardware and software, cleaning and optimizing existing systems, and backing up/restoring data.
    Technologies: Java, Eclipse
  • Senior Enterprise Architect
    2013 - 2014
    MGM Resorts International
    • Designed and implemented a REST (Representational State Transfer) interface to our in-house Mlife database. In order to address scalability limitations of the existing implementation, the new design utilized Hypermedia As The Engine Of Application State (HATEOAS) to model Java Persistence API (JPA) relationships. The use of Spring, JUnit, introspection, and naming conventions allowed for an implementation with minimal code, easy extensibility, and integrated validation for future additions and modifications.
    Technologies: Java
  • Senior Principal Software Engineer / Software Architect
    2011 - 2013
    CA Technologies
    • Developed and maintained the LISA testing platform including the LISA Workstation, the Virtual Service Environment, and the web front-end consoles, all implemented in Java.
    • Developed processes focused with heavy emphasis on Agile Scrum development in two-week sprints. Technology and challenges involved SSL, Apache's HttpClient, Google Web Toolkit (GWT), internationalization (i18n) and localization (l10n), automated testing, concurrent processing, and the very large and complex codebase that comprises the LISA product line.
    • Pursued better real-time collaboration with co-workers, which proved to be very helpful as we had a geographically diverse team.
    • Emphasized better communication and retention via issue tracking.
    Technologies: Java
  • Senior Software Engineer
    2010 - 2011
    Voxeo
    • Brought together skills and expertise in Java along with recent experience with voice technologies.
    • Designed, developed, and maintained the Tropo product. Tropo allows developers to create their own voice applications in languages they already know including JavaScript, Ruby, Python, PHP, and Groovy. Voxeo hosts Tropo applications as well as allows on-site installations, so a variety of deployment strategies were required to be understood and maintained. At beginning, Tropo was emerging from incubation and job was to help shepherd it to maturation.
    • Implemented the eventing mechanism allowing voice applications to signal interrupts to their code.
    Technologies: Java, JavaScript, Python, PHP, Groovy, Ruby
  • Engineer IV/Staff Engineer
    2005 - 2010
    Convergys/Intervoice
    • Implemented a pure-Java engine implementing the State Chart XML (SCXML) specification. This was a challenge particularly because the specification was still being developed, therefore predictions about the future course of the specification had to be made. High scalability and availability were important non-functional requirements as were maintainability and schedule. The implementation included integration with the Eclipse IDE, notably including integration with the Eclipse debugger. Integration of the engine with the other pieces of the Voice Portal architecture was also key, particularly the CCXML and VXML implementations.
    • Received strong commendations for my ability to interact and communicate effectively while accomplishing the requirements for the project, although the team members were located in Dallas while I remained in Florida.
    Technologies: Java, SCXML
  • Adjunct Instructor
    2002 - 2010
    Seminole State College
    • Presented and lectured to aspiring Java programmers at the local community college, drawing on experiences in Toastmasters and in college. Goal in doing so was to improve the understanding and the quality of Java developers.
    • Taught the fundamentals of Java syntax, object-oriented programming concepts, the Java virtual machine, Swing, and applets in the basic Java course.
    • Taught an Advanced Java course as well, delving into network communications, multithreading, synchronization, and multimedia, and the many more complicated issues associated with them.
    • Taught the syntax of the language in a C++ course as well as the theory and application of object-oriented design.
    Technologies: Java, C++
  • Software Engineer Consultant
    2004 - 2005
    Robert Half Technology/Starwood Vacation Ownership
    • Analyzed an external vendor's J2EE implementations of customer-facing web sites as a consultant to Starwood Vacation Ownership. Analysis required learning and using IBM WebSphere as well as Oracle 8i.
    • Adapted the applications' build processes to use Ant in order to standardize and automate the build, deployment, and testing processes as well as to eliminate the dependency on the costly IBM Websphere AppServer System Developer (WSAD) product.
    • Extended an existing application with a customized email client and server to support customer support and marketing efforts.
    • Helped to introduce software engineering processes and concepts including Extreme Programming (XP) concepts, unit tests, automation, object-oriented development, and intimate understandings of non-functional requirements and the way they dictate design decisions.
    Technologies: Java
  • Technical Specialist
    2001 - 2004
    AAA
    • Deployed a Java 2 Enterprise Edition (J2EE) and Oracle-based solution to the Tourbook data repository data-entry application. Hundreds of Java Server Pages, servlets, and Enterprise Java Beans, both session and entity, coordinated in this solution with Oracle Application Server 10g as the target environment.
    • Implemented source code control, issue tracking, and build management using CVS, Bugzilla, and Ant. JUnit and extreme programming methodologies produced a unit testing framework that Ant could also drive as an autonomous regression test.
    • Implemented Java extensions to the Epic editor, stylesheet extensions, and a smaller web application consisting of JSPs and servlets deployed to Oracle Containers for J2EE. Swing, JDBC, JAXP, and the DOM model were prominently featured. I also conducted training and orientation sessions for our in-house Bugzilla implementation.
    Technologies: Java, XML, XSLT
  • Team Lead / Staff Engineer
    1998 - 2001
    Objectspace
    • Led technical and managerial oversight of the critically acclaimed Voyager ORB. Many powerful and novel technologies underlay Voyager including distributed programming, dynamic code generation, multi-protocol remote proxies, mobile agents, and facets. Many of these technologies led to patent applications, which I was asked to help file. Along with proprietary methods, Voyager could simultaneously interact with CORBA and RMI, even using security and transaction services. The Voyager ORB also underpinned the implementation of the Voyager Application Server, one of the first to support the entity beans specifications.
    • Contributed, as a software architect and engineer as well as a troubleshooter, to things that led to several high-profile customer-site visits, including OnStar in Detroit.
    • Insisted, despite external pressures, on utilizing the proper application of object-oriented analysis and design methodologies and sufficient quality controls including unit testing and regression testing.
    Technologies: Java, CORBA
  • Senior Software Programmer
    1998 - 1998
    OAO Services/InSys Group
    • Spent 6 months working from home on two 3-month contracts for InSys in Paris, France. For each contract, InSys gave me a set of requirements with a reasonable deadline, and I was responsible for the rest. The requirements were based on InSys' pure-Java web browser-based document and workflow management system. The initial project utilized JDK 1.1, the Abstract Windows Toolkit (AWT), complex data structures, and serialization.
    • Upgraded the first project to the 1.2 platform, the Java Foundation Classes (JFC, or Swing), and the Java Naming Directory Interface (JNDI).
    Technologies: Java
  • Senior Software Engineer
    1996 - 1998
    Harris Corporation
    • Became a key developer on the Harris Network Management product line. In particular, I was the specialist in Simple Network Management Protocol (SNMP) and Telecommunications Network Management standards.
    • Implemented C/C++-to-Java communications via sockets and from that built a Java applet as a front-end to our monitoring system when asked what Java could add. The aesthetic appearance of the applet proved to be more popular than the original C application on which it was modeled. Further interest in Java development led to me becoming the in-house expert on Java and suggesting ways to integrate with our existing products.
    Technologies: Java, C, C++

Experience

  • SCXML Working Group (Development)
    http://www.w3.org/TR/scxml/

    As the developer of Intervoice's SCXML engine, I was asked to sit on the SCXML Working Group when Intervoice joined the Voice Browser Working Group. I participated from 2007 to 2010. I was not given any byline credit since my proposals were not included in any of the drafts, however the SCXML engine I did design for Intervoice was fully compliant with the first three proposed drafts of SCXML. Since Intervoice only used the engine internally, we were not in position to drive the specification.

  • Anti-Patterns in Telecommuting (Publication)
    As a veteran telecommuter through multiple jobs in my career, I have witnessed and experienced the many joys of being a remote worker. As for the horror stories, I have more than a few I could tell. With a bit of artistic inclination and a talent for mathematics, I also have a fascination with patterns: design patterns, architectural patterns, behavioral patterns, social patterns, weather patterns—all sorts of patterns! When I first encountered anti-patterns, I discovered a trove of wisdom I wish I had known before I had learned the hard way. Anti-patterns are recognizable repeated patterns that contribute significantly to failure. For example, the manager that keeps interrupting the employee in order to see if the employee is getting any work done is engaging in an anti-pattern that serves to prevent the employee from getting any work done! Based on my own experiences and experiences of friends and co-workers, I am assembling descriptions of anti-patterns related to telecommuting.

Skills

  • Languages

    XML, XML/XSLT, SCXML, Java, Groovy, SQL, Java 8, C++, JavaScript, JRuby, PHP, Jython, Perl, C
  • Frameworks

    JUnit, Swing, JavaBeans, JavaServer Pages (JSP), JSP, Spring
  • Libraries/APIs

    JDBC, AWT, WebSockets, Java Servlets, JNDI, JMS
  • Tools

    Apache Tomcat, Apache Ant, Eclipse IDE, JConsole, Subversion (SVN), GitHub, Emacs, Maven, CVS, Git, Jira
  • Paradigms

    Incremental development, Unit Testing, Design Patterns, Object-oriented Programming (OOP), Concurrent Programming, Parallel & Distributed Computing, Asynchronous Programming, Distributed Programming, Test Automation, Dependency Injection, Inversion of control, Agile Software Development, Continuous Integration (CI), Waterfall Development, Event-driven Programming, Test-driven Development (TDD), Spiral development, REST, Extreme programming, Scrum
  • Platforms

    Java EE, JSE, J2SE, Unix, Linux, Red Hat Linux, Windows, Mac OS, JBoss, Oracle
  • Other

    Multithreading, log4j, Architecture, Math, Unix Shell Scripting, TCP/IP, TCP, Web Standards, EJB, Regular Expressions, SOAP, AJAX, UDP, XMPP, Web Server Development, Web Services
  • Storage

    MySQL, JSON

Education

  • Master of Science degree in Computer Engineering
    1994 - 1997
    University of Florida - Gainesville, FL
  • Bachelor of Science degree in Engineering Science
    1989 - 1994
    University of Florida - Gainesville, FL
I really like this profile
Share it with others