Smith Optimal Solutions LLC

Customized Training

If your company has the need of training for Java technologies or DevOps processes, we can develop and teach the cirriculum that fits your needs.

SOS LLC has trained hundreds of software professionals in software processes, methodologies, tools, and frameworks.

Example Course Syllabus

This course was developed for one of our clients.

(The client shall remain anonymous, and course name and some topic information has been changed)

MSDV-1 Basic Microservice Development and Deployment

This course covers everything a microservice developer needs to know for creating a microservice, from setting up the development environment, creating the service API, and deploying live, communicating services in the cloud platform by the end of class. Three microservices are created: SalesDomain, CreditCardAtomic, and OrderAtomic. This class covers the following topics:

  • Microservice development environment
  • XML schema for the data structures
  • Java code generation from the XML schema
  • JAX-B - Java Architecture for XML Binding
  • Use of Maven archetypes - for creating a project
  • JAX-RS and Jersey - for creating RESTful Web Services
  • The Cloud environment
  • Using a Maven Parent project - the importance of using a parent pom on project development teams
  • The cloud service registry
  • Creating the SalesDomain microservice project from an archetype
  • Using the command line for service deployment
  • Using GitBucket and Jenkins
  • The importance of testing microservices
  • Creating the CreditCardAtomic microservice
  • Test the domain microservice calls to the atomic by using mocking frameworks
  • Creating the OrderAtomic microservice
  • Deploy and integrate the three microservices in the cloud platform

MSDV-2 Industrializing Microservices

MSDV-1 teaches the basics of creating microservices that run in the cloud, but the services are not industrialized to run in a real production environment. MSDV-2 continues with the MSDV-1 microservices, and industrializes them by adding software development best practices and the use of tools and frameworks for monitoring, logging, and quality/security scanning of the microservice source code. The class covers the following topics:

  • Additional development environment tools needed
  • Industry coding standards - use of standard naming conventions, code formatter, and cyclomatic complexity awareness
  • Crucible code reviews - using the Crucible tool for conducting code reviews that the development team participates in
  • Git branching strategies - the proper use of Git branching in the development lifecycle
  • Use of an Enterprise Canonical data model
  • 12 Factor logging
  • AppDynamics - monitoring of the microservices
  • 12 Factor "API First" and API management
  • Fortify, Sonar and Black Duck scans - static scans of the microservice source code and dependencies to find security vulnerabilities and code bugs and "smells"
  • Cloud deployment configuration - understanding the configuration options for microservice cloud deployment
  • Creating a release - covers the proper release procedures using the Maven release plugin, and the Git branching strategies
  • Understanding the 12 Factor Principles for microservice development

Training Philosophy

Understand the Laws of Learning

Law of Readiness - reason to learn, motivation

Law of Exercise - most often repeated is best remembered

Law of Effect - best with pleasant feeling

Law of Primacy - teach right the first time

Law of Intensity - vivid, dramatic, or exciting

Law of Recency - most recent is best remembered

The Rule of Three

The rule of three is a writing principle that suggests that a trio of events or characters is more humorous, satisfying, or effective than other numbers.[1] The audience of this form of text is also thereby more likely to remember the information conveyed because having three entities combines both brevity and rhythm with having the smallest amount of information to create a pattern.[2][3] It makes the author or speaker appear knowledgeable while being both simple and catchy.

Reference: Wikipedia - Rule of three (writing)

This is accomplished by designing the course material to be repetitive, ideally three times, to reinforce the information being taught.

Other Philosophical Tactics

Build upon simple concepts and progressively introduce more complex.

Intentionally introduce errors.

Provide video to vary from lecture and demonstration.

Instructor demonstrates, student does.

JD's Training Philosophy

"If it works the first time, you got lucky."

"If it works the second time, it's a fluke."

"If it works the third time, you might actually know what you are doing."

-- J.D. Smith