Steven S. Morgan

Steven S. Morgan

Heathrow, United States
Hire Steven
Scroll To View More
Steven S. Morgan

Steven S. Morgan

Heathrow, 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
  • XML, 16 years
  • Design Patterns, 18 years
  • Concurrent Programming, 17 years
  • Asynchronous Programming, 14 years
  • JSE, 17 years
  • Java EE, 14 years
  • Multithreading, 15 years
Heathrow, 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
    Morgan Ventures, Dealings, and Holdings, Inc.
    2006 - PRESENT
    • 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
    MGM Resorts International
    2013 - 2014
    • 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
    CA Technologies
    2011 - 2013
    • 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
    Voxeo
    2010 - 2011
    • 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
    Convergys/Intervoice
    2005 - 2010
    • 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
    Seminole State College
    2002 - 2010
    • 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
    Robert Half Technology/Starwood Vacation Ownership
    2004 - 2005
    • 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
    AAA
    2001 - 2004
    • 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
    Objectspace
    1998 - 2001
    • 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
    OAO Services/InSys Group
    1998 - 1998
    • 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
    Harris Corporation
    1996 - 1998
    • 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/XSLT, SCXML, XML, Java, C/C++, Groovy, SQL, JavaScript, Jython, PHP, Perl, JRuby
  • Frameworks
    JUnit, GWT, Fisheye, JNI
  • Libraries/APIs
    WebSockets, JDBC, Java Servlets, AWT, JNDI, JMS, Swing
  • Tools
    Apache Ant, Apache Tomcat, Eclipse, Subversion, JavaServer Pages, JConsole, GitHub, Git, YourKit, Perforce, Emacs, CVS, Maven
  • Paradigms
    Unit Testing, Incremental development, Object-oriented Programming (OOP), Parallel programming, Concurrent Programming, Design Patterns, Asynchronous Programming, Distributed Programming, Spiral development, Event-driven Programming, Waterfall development, Continuous Integration, Inversion of control, Dependency Injection, Agile Software Development, Test Automation, Test-driven Development (TDD), AJAX, Extreme programming, Scrum, REST
  • Platforms
    JSE, Java EE, J2SE, Linux, Unix, Windows, Mac OS X, JBoss
  • Misc
    Math, JavaBeans, JSP, Multithreading, Architecture, log4j, TCP, TCP/IP, Unix Shell Scripts, EJB, Linux redhat, Web Standards, JSON, UDP, SOAP, Web Services, Regular Expressions, WEB Server Development, XMPP
  • Storage
    MySQL, Oracle
Education
  • Master of Science degree in Computer Engineering
    University of Florida - Gainesville, FL
    1994 - 1997
  • Bachelor of Science degree in Engineering Science
    University of Florida - Gainesville, FL
    1989 - 1994
Hire the top 3% of freelance developers
I really like this profile
Share it with others