The courses in this track were designed by our experienced and disciplined software engineers and showcase the full lifecycle software engineering capabilities which span multiple business and technology domains, including real-time, embedded, large-scale, integrated, and distributed systems, to modern web, mobile, and cloud-enabled applications.  Our software engineering solutions are architected and built for superior quality, operational efficiency, and extensibility to adapt to future demands.  Mentoring and knowledge transfer are core to our service delivery, helping improve the efficiency and effectiveness of our clients’ teams.

No offerings in this track are currently scheduled.


This one-day intensive workshop presents an in-depth exploration of agile techniques as applied to databases. It focuses on refactoring and automation using the Flyway tools and libraries.

More Details

Fundamentals of Software Testing

This course presents an architecture that defines a process to implement a structured testing environment for all phases of the Systems Development Life Cycle (SDLC). It conveys the four techniques of structured testing, and the application of those techniques during the phases of the SDLC. Using risk assessment as a guide for structured testing is emphasized and a risk matrix is presented. The main focus is on the creation of functional and structural test plans, test scripts, and test cases, including the use of break-it testing, complexity testing, and basis path testing. The organization of a testing team and the testing environment is also discussed. Hands-on workshops in a JAD format are used to reinforce concepts.

More Details

Guidelines and Best Practices for .NET Development

Best practices are coding techniques that have been designed and proven to work. In this hands-on course, students will be introduced to the guidelines and best practices for writing .NET code. Each practice will be stated as well as the purpose, application, and exception. Topics include coding guidelines for the .NET programming languages and best practices for the .NET Framework.

More Details

Hands-on object-oriented Analysis & design using uml

Software developers moving to an object-oriented paradigm, or anyone who wishes to effectively communicate using object-oriented models.

More Details

Introduction to Git

The course introduces git as a model and tool for distributed version control.  Common version control operations such as adding files, committing, branching, and reviewing history are presented using the git command-line tool.  The course shows how git is used in a team setting by presenting the gitflow workflow and its rationale.  Students will complete individual exercises to learn the git command-line tool and team exercises to practice collaborative activities.  The course highlights differences between git and centralized version control systems like Subversion.

More Details

Object-Oriented Design Patterns Applied

Developers who wish to utilize advanced object-oriented design techniques. Managers with a strong programming background who will be managing the design and implementation of object-oriented systems.

More Details

Refactoring to Design Patterns

This course introduces a sequence of low-level refactorings that allow developers to safely move their designs to patterns. Participants will learn how to recognize code smells that signal a possible pattern implementation, learn relevant design patterns, and learn to safely refactor existing code to implement the patterns, using unit tests to validate the functionality of the resulting refactored code. Through this process, participants will also develop an appreciation for good design and gain confidence in their ability to improve the design of legacy code, even when that legacy code may not have been well designed.

More Details