Embedded C Application Design Principles Training Course
This instructor-led, live training (available online or onsite) is designed for C developers looking to master embedded C design principles.
By the conclusion of this training, participants will be able to:
- Grasp the design considerations that ensure embedded C programs are reliable
- Define the functionality of an embedded system
- Establish program logic and structure to achieve desired outcomes
- Design reliable, error-free embedded applications
- Achieve optimal performance from target hardware
Course Format:
- Interactive lectures and discussions
- Exercises and practical practice
- Hands-on implementation in a live-lab environment
Customization Options:
- To request customized training for this course, please contact us to arrange.
Course Outline
Introduction
- What is design?
- C versus Embedded C
The Life Cycle of an Embedded Application
- The development process
- The maintenance process
- The extended life cycle
Design Tools
- Open source versus proprietary solutions
- Compilers, assemblers, and linkers
- Libraries
- Debuggers
- Simulators
- IDEs
Embedded Design Challenges
- Embedded computing design constraints
- Cost considerations
- Performance and efficiency
- Power consumption
- Thermal management
Defining Design Goals
- Keeping it simple
- Defining functionality
- Defining program logic and structure
System Reliability
- Inspection and maintenance
- Uptime requirements
- Points of failure
Code Reusability
- Redundancy-free design
Code Abstraction
- Information hiding
- Context-free modules
Code Modularization
- Decomposition
- Loose coupling
- Strong cohesion
- Acyclic dependencies
Code Maintainability
- Readability
- Testability
- Configurability
- Performance upgrades
Hardware Considerations
- Scalable Thermal Design Power (TDP)
- Integrated graphics
- Other
Summary and Conclusion
Requirements
- Basic knowledge of embedded systems
- Experience with Embedded C programming
- Understanding of fundamental electronics
Audience:
- Developers
Open Training Courses require 5+ participants.
Embedded C Application Design Principles Training Course - Booking
Embedded C Application Design Principles Training Course - Enquiry
Embedded C Application Design Principles - Consultancy Enquiry
Testimonials (2)
The explanations and interactivity of the trainer, he really brought the subject well; and even-though I was probably not experienced enough, I did learn a lot from it!
Pieter Bruynseels - Spot Buy Center BV
Course - Design Patterns
I liked the platform we used. It was really nice and easy to use. I liked the typescript section, the part about namespaces and modules.
Robert - DB Global Technology
Course - JavaScript - Advanced Programming
Provisional Upcoming Courses (Require 5+ participants)
Related Courses
Creative Problem Solving with Gamification Techniques (Design Thinking)
14 HoursThis instructor-led, live training in Australia (online or onsite) is aimed at beginner-level to intermediate-level participants who wish to solve everyday workplace challenges through gamification techniques.
By the end of this training, participants will be able to:
- Understand the principles of Design Thinking and its application to problem-solving.
- Incorporate gamification techniques to foster engagement and innovation.
- Develop creative and practical solutions to common workplace issues.
- Collaborate effectively across teams to implement problem-solving strategies.
- Apply iterative approaches to refine solutions through feedback and experimentation.
Domain Driven Design: Concepts and Practices
21 HoursThis instructor-led, live training in Australia (online or onsite) is aimed at intermediate-level developers, architects, and analysts who wish to learn and apply DDD concepts and practices to their software projects.
By the end of this training, participants will be able to:
- Grasp core DDD concepts (bounded contexts, entities, etc.) and their application in software projects.
- Apply strategic DDD to define and design the domain model, identify subdomains, and establish boundaries.
- Implement tactical DDD using patterns such as CQRS, factories, and event sourcing.
- Refactor and modernize legacy systems effectively with DDD techniques.
- Design and implement product, domain, and team-oriented architectures.
- Utilize data mesh to create a domain-oriented data platform supporting data discovery and governance.
Introduction to Domain Driven Design
14 HoursDomain-Driven Design (DDD) is a robust software development methodology that emphasises modelling intricate software behaviours by aligning technical execution with fundamental business concepts. This course examines how DDD enables teams to manage complexity and mitigate risk via strategic and tactical patterns. Participants will learn to develop a 'Ubiquitous Language', establish clear boundaries through Bounded Contexts, and apply specific architectural building blocks such as Entities, Value Objects, and Aggregates. The objective is to construct flexible, maintainable software architectures that remain aligned with the evolving business domain.
Domain-Driven Design: Concepts and Practices for Senior Developers
21 HoursDomain-Driven Design (DDD) is a software development approach that focuses on designing systems around the business domain, utilising a shared ubiquitous language alongside tactical and strategic modelling techniques.
This instructor-led live training (available online or onsite) is tailored for advanced-level senior developers who aim to apply DDD principles to design robust, maintainable, and scalable systems.
Upon completion of this training, participants will be able to:
- Identify and model core domain concepts using ubiquitous language and bounded contexts.
- Apply tactical DDD patterns such as entities, value objects, aggregates, repositories, and domain services.
- Design context maps and strategic boundaries to manage complexity across microservices and teams.
- Integrate DDD practices into Agile teams and CI/CD workflows to improve collaboration and delivery.
Format of the Course
- Interactive lecture and discussion.
- Plenty of exercises and practice.
- Hands-on implementation in a live-lab environment.
Course Customisation Options
- To request a customised training for this course, please contact us to arrange.
Design Patterns
14 HoursA wide array of proven patterns is readily accessible. Often, this simply involves adapting the terminology and applying the pattern within a particular technology stack. This approach can save hundreds of hours that would otherwise be devoted to design and testing. Training Objectives This course has two primary goals: first, to enable you to reuse widely established patterns, and second, to assist you in creating and reusing patterns tailored to your organisation. It helps you to estimate how patterns can reduce costs, systematise the design process and generate a code framework based on your patterns. Audience Software designers, business analysts, project managers, programmers and developers as well as operational managers and software division managers. Course Style The course focuses on use cases and their relationship with a specific pattern. Most of the examples are explained in UML and in simple Java examples (the language can change if the course is booked as a closed course). It guides you through the sources of the patterns as well as showing you how to catalogue and describe patterns which can be reused across your organisation.
Design Thinking: Empathize with Internal Clients
7 HoursDesign Thinking is a human-centred methodology for solving problems through empathy, definition, ideation, prototyping, and testing. This version of the course places a strong emphasis on the Empathise stage, focusing on connecting previously identified pain points to the real needs of internal clients, and applying dynamic, collaborative activities to transform insights into actionable outcomes.
This instructor-led, live training (online or onsite) is aimed at beginner-level to intermediate-level teams and leaders who wish to deepen their empathy skills, strengthen relationships with internal clients, and translate pain points into meaningful opportunities for improvement.
By the end of this training, participants will be able to:
- Apply empathy-based techniques to uncover and validate client needs.
- Translate mapped pain points into clear, actionable needs.
- Engage in dynamic role plays and simulations to practice client-centred conversations.
- Collaboratively redefine problem statements from the client’s perspective.
Format of the Course
- Interactive lecture and guided discussions.
- Dynamic, hands-on role plays and empathy exercises.
- Group workshops for collaborative problem reframing.
Course Customization Options
- To request a customized version tailored to a specific internal process (e.g., procurement or equipment provisioning), please contact us to arrange.
Design Thinking: Empathize & Define for Internal Clients
7 HoursDesign Thinking is a human-centred approach to problem-solving that leverages empathy, definition, ideation, prototyping, and testing. By concentrating on the initial two stages—Empathize and Define—teams can gain a deeper understanding of internal clients and accurately pinpoint the problems that require resolution.
This instructor-led live training, available either online or onsite, is designed for teams and leaders at a beginner to intermediate level who aim to strengthen their relationships with internal clients, minimise resistance to change, and enhance operational efficiency through practical and collaborative methods.
\rUpon completion of this training, participants will be able to:
- Utilise active listening and interviewing techniques to gather meaningful insights regarding internal clients.
- Develop empathy maps to capture user needs and pain points.
- Distinguish genuine root causes from perceived issues using tools such as the 5 Whys and problem trees.
- Formulate clear, actionable problem statements (POVs) that guide the solution development process.
Course Format
- Interactive lectures and discussions.
- Practical, hands-on exercises and role-plays.
- Group workshops and plenary feedback sessions.
Course Customization Options
- To request a customized version tailored to a specific internal process (e.g., procurement or equipment provisioning), please contact us to arrange.
Design Thinking Workshop for Software Developers
14 HoursIn this instructor-led, live workshop training in Australia (online or onsite), participants will learn how to apply the five stages of Design Thinking to gain a deeper understanding of the problems faced by end-users of a product or service, and subsequently develop the most effective strategies for resolving them.
By the conclusion of this training, participants will be able to:
- Utilise creative strategies to align customer needs with technologically feasible solutions.
- Formulate strategies to increase customer value and enhance product and service offerings.
Design Thinking: Innovation Methodologies
24 HoursThis instructor-led, live training in Australia (online or onsite) is aimed at beginner-level to intermediate-level professionals who wish to understand and apply Design Thinking methodologies to drive innovation and improve business solutions.
By the end of this training, participants will be able to:
- Understand the core principles of Design Thinking and its role in innovation.
- Apply the five phases of Design Thinking to problem-solving.
- Utilize ideation techniques and tools to foster creativity.
- Implement Design Thinking strategies to improve processes and enhance efficiency.
Innovative Leadership through Design Thinking
14 HoursThis instructor-led, live training in Australia (online or onsite) is aimed at beginner-level leaders and HR professionals who wish to learn and apply Design Thinking methodologies to foster innovation, enhance problem-solving capabilities, and engage teams effectively.
By the end of this training, participants will be able to:
- Equip participants with tools and methodologies to foster innovation and team engagement.
- Develop skills in empathy mapping, ideation, and prototyping for solving complex challenges.
- Apply Design Thinking principles to leadership and HR scenarios.
- Promote a culture of innovation within tech teams.
Design Thinking: Innovation & Creative Problem Solving
4 HoursOverview:
The Design Thinking (DT) process comprises five distinct stages: empathise, define the problem, ideate, prototype, and test.
In an increasingly complex world, we encounter problems that often demand specialised approaches. Design Thinking provides the framework to navigate these complexities effectively. Mastering design thinking enables you to tackle complex challenges proficiently, communicate more clearly, persuade with greater efficiency, improve business outcomes, and enhance both organisational and personal behaviour and performance.
- How DT functions: learn from people and the problem, identify patterns, design a model (understanding model drift), test the model, evaluate it, and re-engineer as necessary.
- The relationship between DT, innovation, and entrepreneurship.
- DT methods and tools: persona development, stakeholder mapping, customer journey mapping, service blueprints, and business model innovation.
- Application of DT: cultivating a design mindset, disruptive innovation, iterative approaches, agile estimation techniques, critical thinking, problem-solving, teamwork, leadership readiness, communication skills, technological savviness, forward-thinking, intercultural and ethical competency, emotional intelligence, self-awareness, negotiation skills, and conflict resolution.
Objectives:
- To grasp the fundamentals and nuances of DT.
- To explore key concepts, factors, theories, types, and models within DT.
- To experiment with, experience, and practice DT.
Delivery:
This is a 1-day (4 hours) training course comprising:
- lectures (40% - presentation of theories, concepts, models, and interactions),
- group exercises (30% - group dynamics, games, group discussions, and mock conflict resolution exercises),
- individual activities (15% - writing, designing, and peer discussion)
- and other elements (15% - videos, reading).
Note: due to the nature of this course there is a minimum group size of 3
Design Patterns (GoF) for Java
21 HoursThis instructor-led, live training in Australia (online or onsite) is aimed at intermediate-level Java developers who wish to apply design patterns to improve software structure, maintainability, and scalability.
By the end of this training, participants will be able to:
- Understand the purpose and benefits of design patterns.
- Apply Creational, Structural, and Behavioral patterns effectively in Java.
- Improve code reusability, scalability, and maintainability.
- Refactor existing codebases using design patterns.
Design Patterns in PHP
14 HoursThis instructor-led live training in Australia (online or onsite) is targeted at intermediate-level PHP developers who wish to apply design patterns effectively in their projects.
By the end of this training, participants will be able to:
- Understand the purpose and benefits of design patterns.
- Identify and implement appropriate design patterns for common scenarios.
- Structure PHP applications using industry-recognized best practices.
- Integrate patterns into modern frameworks such as Symfony or Zend.
JavaScript - Advanced Programming
14 HoursThis course is tailored for JavaScript developers who design and implement sophisticated Internet applications. The curriculum focuses on establishing best practices in JavaScript development while highlighting frequent pitfalls. A key emphasis is placed on exploring object-oriented programming techniques within the JavaScript syntax.
Kubernetes Design Patterns
21 HoursThe recent evolution of microservices and containers has profoundly transformed how we design, develop, deploy, and operate software. Modern applications must be optimised for scalability, elasticity, resilience, and adaptability. Driven by these demands, contemporary architectures require a distinct set of patterns and practices. In this training, we explore methods to identify, understand, and adapt to these new requirements.
Audience
This training is designed for individuals who have some familiarity with container technology and Kubernetes concepts but may lack real-world experience. It is grounded in use cases and lessons learned from practical projects, aiming to inspire participants to create and manage even better cloud-native applications.
- Developers
- Operations staff
- DevOps professionals
- QA Engineers
- IT Project Managers
Course Format
- Interactive lectures and discussions
- Numerous exercises and practical sessions
- Hands-on implementation in a live lab environment
Course Customisation Options
- To request a tailored training for this course, please contact us to arrange.