Embedded C Application Design Principles Training Course
This instructor-led live training, available either online or on-site, is designed for C developers who wish to master the design principles of embedded C.
Upon completion of this training, participants will be able to:
- Comprehend the design considerations that ensure the reliability of embedded C programs
- Specify the functionality required for an embedded system
- Define the program logic and structure needed to achieve desired outcomes
- Design reliable and error-free embedded applications
- Optimize performance on the target hardware
Course Format:
- Interactive lectures and discussions
- Exercises and practical activities
- Hands-on implementation in a live laboratory environment
Customization Options:
- To arrange a customized training session for this course, please contact us.
Course Outline
Introduction
- What constitutes design?
- Differences between C and Embedded C
The Embedded Application Life Cycle
- The development process
- The maintenance process
- The extended life cycle
Design Tools
- Open source versus proprietary solutions
- Compilers, assemblers, and linkers
- Libraries
- Debuggers
- Simulators
- Integrated Development Environments (IDEs)
Challenges in Embedded Design
- Design constraints in embedded computing
- Cost implications
- Performance and efficiency
- Power consumption
- Thermal management
Establishing Design Goals
- Simplicity in design
- Defining functionality
- Defining program logic and structure
System Reliability
- Inspection and maintenance protocols
- Uptime requirements
- Points of failure
Code Reusability
- Design without redundancy
Code Abstraction
- Information hiding
- Context-independent modules
Code Modularization
- Decomposition
- Loose coupling
- Strong cohesion
- Ayclic dependencies
Code Maintainability
- Readability
- Testability
- Configurability
- Performance upgrades
Hardware Considerations
- Scalable Thermal Design Power (TDP)
- Integrated graphics
- Other factors
Summary and Conclusion
Requirements
- Foundational knowledge of embedded systems
- Experience with embedded C programming
- Understanding of fundamental electronics concepts
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
Upcoming Courses
Related Courses
Creative Problem Solving with Gamification Techniques (Design Thinking)
14 HoursThis instructor-led, live training in Malaysia (online or onsite) is designed for participants at beginner to intermediate levels who aim to tackle routine workplace problems using gamification techniques.
Upon completion of this training, participants will be able to:
- Grasp the core principles of Design Thinking and how they apply to problem-solving.
- Utilise gamification techniques to boost engagement and drive innovation.
- Create creative and practical solutions for common workplace issues.
- Collaborate effectively across teams to execute problem-solving strategies.
- Apply iterative methods to refine solutions through feedback and experimentation.
Domain Driven Design: Concepts and Practices
21 HoursThis instructor-led live training (online or onsite) is designed for intermediate-level developers, architects, and analysts who wish to learn and apply DDD concepts and practices to their software projects.
Upon completion of this training, participants will be equipped to:
- Understand fundamental DDD concepts, such as bounded contexts and entities, and how to apply them within software projects.
- Utilise strategic DDD to define and design the domain model, identify subdomains, and establish clear boundaries.
- Implement tactical DDD through patterns including CQRS, factories, and event sourcing.
- Effectively refactor and modernise legacy systems using DDD techniques.
- Design and implement architectures centred on products, domains, and team structures.
- Leverage data mesh to build domain-oriented data platforms that support data discovery and governance.
Introduction to Domain Driven Design
14 HoursDomain-Driven Design (DDD) is a robust software development methodology centred on modelling complex software behaviours by aligning technical execution with core business principles. This course examines how DDD empowers teams to manage complexity and mitigate risk via strategic and tactical patterns. Participants will acquire the skills to construct a "Ubiquitous Language," establish clear boundaries through Bounded Contexts, and leverage essential building blocks such as Entities, Value Objects, and Aggregates. The primary objective is to develop adaptable and maintainable software architectures that stay true to the evolving business domain.
Domain-Driven Design: Concepts and Practices for Senior Developers
21 HoursDomain-Driven Design (DDD) is a software development methodology that focuses on constructing systems around the core business domain, utilising a shared ubiquitous language alongside strategic and tactical modelling techniques.
This instructor-led live training, available online or onsite, is tailored for advanced senior developers seeking to leverage DDD principles to build robust, maintainable, and scalable systems.
Upon completion of this training, participants will be able to:
- Identify and model essential domain concepts using ubiquitous language and bounded contexts.
- Implement tactical DDD patterns such as entities, value objects, aggregates, repositories, and domain services.
- Design context maps and establish strategic boundaries to manage complexity across microservices and teams.
- Integrate DDD practices into Agile teams and CI/CD workflows to enhance collaboration and delivery efficiency.
Course Format
- Interactive lectures and discussions.
- Numerous exercises and practical sessions.
- Hands-on implementation within a live laboratory environment.
Customization Options
- To request a customized training course, please contact us to arrange your requirements.
Design Patterns
14 HoursNumerous well-established patterns are readily accessible. Often, applying these patterns simply requires adapting their names and implementing them within a specific technology. This approach can save hundreds of hours that would otherwise be devoted to design and testing. Training Goals This course aims to achieve two objectives: first, it enables you to reuse widely recognised patterns, and second, it empowers you to create and reuse patterns tailored to your organisation. It assists you in estimating 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, 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 approach to problem-solving that utilises empathy, definition, ideation, prototyping, and testing. This course places particular emphasis on the Empathize stage, helping participants link identified pain points to the genuine needs of internal clients, while applying dynamic, collaborative activities to convert insights into tangible results.
Delivered as an instructor-led live training session (available online or onsite), this programme is tailored for teams and leaders at beginner to intermediate levels who wish to enhance their empathy capabilities, strengthen relationships with internal clients, and transform pain points into meaningful opportunities for growth.
Upon completion of this training, participants will be able to:
- Utilise empathy-based techniques to uncover and validate client requirements.
- Convert mapped pain points into clear, actionable needs.
- Participate in dynamic role-plays and simulations to practice client-focused conversations.
- Collaboratively redefine problem statements from the client's viewpoint.
Course Format
- Interactive lectures and guided discussions.
- Dynamic, hands-on role-plays and empathy exercises.
- Group workshops focused on collaborative problem reframing.
Customisation Options
- For a customised version tailored to a specific internal process (such as procurement or equipment provisioning), please contact us to arrange.
Design Thinking: Empathize & Define for Internal Clients
7 HoursDesign Thinking is a human-centred methodology that solves problems through empathy, definition, ideation, prototyping, and testing. By concentrating on the first two stages—Empathize and Define—teams can gain a deeper understanding of their internal clients and accurately identify the correct problems to address.
This instructor-led live training, available online or onsite, is designed for beginner to intermediate teams and leaders who want to strengthen their connection with internal clients, reduce resistance to change, and enhance operational efficiency through practical, collaborative methods.
Upon completing this training, participants will be able to:
- Utilise active listening and interviewing techniques to gather meaningful insights about internal clients.
- Create empathy maps to capture user needs and pain points.
- Distinguish between actual root problems and perceived issues using tools such as the 5 Whys and problem trees.
- Draft clear, actionable problem statements (POVs) to guide solution development.
Format of the Course
- 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 Malaysia (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 to resolve them.
By the end of this training, participants will be able to:
- Apply creative strategies to align customer needs with technologically feasible solutions.
- Develop a strategy to increase customer value and enhance product and service offerings.
Design Thinking: Innovation Methodologies
24 HoursThis instructor-led, live training in Malaysia (online or onsite) targets beginner to intermediate 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 live, instructor-led training in Malaysia (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 key stages: empathize, define the problem, ideate, prototype, and test.
In today's increasingly complex world, we often encounter challenges that require specialised approaches. Design Thinking offers a framework to address these complex issues. By mastering design thinking, you can handle complicated problems more effectively, communicate with greater clarity, persuade more efficiently, improve business outcomes, and enhance both organisational and personal performance and behaviour.
- How DT works: learn from people and problems, identify patterns, design a model (accounting for model drift), test the model, evaluate it, and re-engineer as needed.
- The relationship between DT, innovation, and entrepreneurship.
- DT methods and tools: persona, stakeholder map, customer journey map, service blueprint, and business model innovation.
- Application of DT: fostering a design mindset, driving disruptive innovation, adopting an iterative approach, using agile estimation techniques, applying critical thinking and problem-solving skills, promoting teamwork, building leadership readiness, enhancing communication skills, staying tech-savvy, thinking forward, developing intercultural and ethical competency, boosting emotional intelligence, self-awareness, negotiating skills, and conflict resolution abilities.
Objectives:
- To understand the fundamentals and nuances of DT.
- To explore key concepts, factors, theories, types, and models in DT.
- To experiment with, experience, and practice DT.
Delivery:
This is a 1-day (4-hour) training course, structured as follows:
- Lectures (40% - presenting theories, concepts, models, and facilitating interactions),
- Group exercises (30% - focusing on group dynamics, games, discussions, and mock conflict resolution),
- Individual activities (15% - writing, designing, and peer discussions),
- Other activities (15% - videos and reading materials).
Note: Due to the interactive nature of this course, there is a minimum group size of 3 participants.
Design Patterns (GoF) for Java
21 HoursThis instructor-led live training Malaysia (online or on-site) is designed for intermediate-level Java developers who want to utilize design patterns to improve software structure, maintainability, and scalability.
By the conclusion 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 Malaysia (online or onsite) is designed for intermediate-level PHP developers who want 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 are designing and implementing advanced Internet applications. The training focuses on conveying best practices in JavaScript programming and highlights common pitfalls. A key aspect of the session is exploring object-oriented programming techniques available within JavaScript syntax.
Kubernetes Design Patterns
21 HoursIn recent years, the advancement of microservices and container technologies has fundamentally transformed how software is designed, developed, deployed, and operated. Contemporary applications demand optimization for scalability, elasticity, fault tolerance, and adaptability. To meet these evolving needs, modern architectural approaches necessitate a distinct set of patterns and practices. This training explores strategies to identify, comprehend, and adapt to these new requirements.
Audience
This course is designed for professionals who possess a foundational understanding of container technology and Kubernetes concepts but may lack practical, real-world experience. Drawing on use cases and lessons learned from actual projects, the content aims to inspire participants to design and manage superior cloud-native applications.
- Developers
- Operations teams
- DevOps engineers
- QA Engineers
- IT Project Managers
Format of the Course
- Interactive lectures and discussions
- Extensive exercises and practical sessions
- Hands-on implementation within a live laboratory environment
Course Customization Options
- To request tailored training for this course, please get in touch with us to make arrangements.