Training
- Minimal bureaucracy
- Truly empowered teams
- High quality software
- Process automation
- Immutable environments
Courses - at a glance
Course Details
why we use a Raspberry Pi
This is important, since the best way to learn about the *nix Operating System is by getting hands-on. Many organisations provide locked-down, security-enabled, company machines which are not conducive to low-level systems training. Further, the prospect of clobbering your daily-workhorse machine does not create an ideal mind-set. Providing a clean, unencumbered machine therefore ensures a consistent and effective training platform and provides an effective springboard for further self-learning. (Note this device does NOT require network access for the training course).-
Process Automation: an introduction to GNU/Linux:
-
pre-requisites:
- an eagerness to learn new skills which will form the bedrock of your future career
- a curiosity about the underlying design principles behind *nix operating systems
-
course content:
- a brief history of Unix
- the fundamentals of the Operating System
- key design principles
- the boot process
- the file system
- users, groups and permissions
- processes, streams and pipes
- shells
- an overview of the more useful commands
- commands and configuration tweaks for enhanced productivity
- regular expressions
- the basics of shell-scripting
- handling command exit values
- automation
- automated code check-out
- automating the build process
-
next steps:
- Process Automation: advanced GNU/Linux
-
pre-requisites:
-
Process Automation: advanced GNU/Linux:
-
pre-requisites:
- existing knowledge of GNU/Linux, or
- completion of the course 'Process Automation: an introduction to GNU/Linux'
-
course content:
- a quick GNU/Linux refresher
- advanced shell configuration
- more configuration tweaks for enhanced productivity
- grep, sed & awk
- shell-script parameter validation and error handling
- advanced shell-scripting
- debugging shell-scripts
- security and monitoring
- tips and tricks
- automated environment setup
- automated deployments
- further automation
-
next steps:
- Software Quality: infrastructure code
-
pre-requisites:
Note each of the above courses include a FREE "Raspberry Pi 5" computer for each participant, which we use for teaching purposes.
-
Software Quality: infrastructure code
-
pre-requisites:
- familiarity with modern software development practices
- fluency in (any) programming language
- whilst the ideas presented in this course can be implemented in any programming language, the code examples are Java based; therefore some familiarity with this language would be beneficial, though not essential
-
course content:
- an overview of current quality approaches and their limitations
- identifying opportunities for improvement
- investigating specific combinations of established software development principles which lend themselves to the creation of high quality software
- why interfaces should be kept to a minimum and how that can be achieved
- maintaining strict boundaries between layers and why that really matters
- a hands-on workshop featuring a step-by-step development guide to creating high-quality code; upon completion, participants will be well versed in the specifics of how to create high-quality infrastructure code (in any language)
- orchestration
- better exception handling
- better configuration
- code quality from the ground up
- better unit testing, integration testing and mocking
-
next steps:
- Software Quality: business logic
- automation
- immutable environments
-
pre-requisites:
-
Software Quality: business logic
-
pre-requisites:
- completion of the course 'Software Quality: infrastructure code'
- whilst the ideas presented in this course can be implemented in any programming language, the workshop is based on discussing a Java implementation; therefore some familiarity with this language would be beneficial, though not essential
-
course content:
- issues with standard approaches to both quality and business logic
- key attributes of high-quality business code
- what actually is a Domain Specific Language?
- the benefits of creating a Domain Specific Language
- specific design principles which result in the emergence of Domain Specific Languages
- whilst you are at liberty to freely implement any of the ideas presented within this course, by way of example, we will focus on one specific (free) implementation, named ReBL
- introduction to ReBL - a free, lightweight framework for the creation of high-quality business logic
- workshop - ReBL - discussing key aspects of the design and details of the implementation; upon completion, participants will be well versed in the specifics of creating Domain Specific Languages and reusable business logic (in any language)
- putting it all together: infrastructure code + business logic + configuration
-
next steps:
- Software Quality: business logic - advanced
- automation
- immutable environments
-
pre-requisites:
-
Software Quality: business logic - advanced
-
pre-requisites:
- completion of the course 'Software Quality: business logic'
- whilst the ideas presented in this course can be implemented in any programming language, the workshop is based on discussing a Java implementation; therefore some familiarity with this language would be beneficial, though not essential
-
course content:
- a quick recap of 'Software Quality: business logic'
- a deep-dive into orchestration - the essence of business logic
- enhanced exception handling, including the use of Finite-State-Machines
- how to integrate Aspect Oriented Programming to super-charge software delivery
- enhanced logging techniques and why they are beneficial
- incorporating deep-level security and why that matters
- how to start using all of the techniques within actual projects
-
next steps:
- automation
- immutable environments
-
pre-requisites:
Note each of the above courses include a FREE follow-up evaluation, which consists of either an on-site or remote review (maximum 2 hours) of how successfully the attendees have been able to apply the course content to real-world projects. It is hoped the feedback given through this review process can help consolidate the information presented during the course within the context of actual project-work, as well as providing actionable suggestions and advice. (This review must be booked within 3 months following the delivery of the relevant course).