The Rust fundamentals training aims to build a solid understanding of the Rust programming language, from basic to advanced engineering requirements. The knowledge is built from the ground up, covering fundamental techniques such as ownership and borrowing up until more advanced topics such as traits, generics, concurrency and unsafe code.
Throughout the training we will maintain a focus on memory-safe, idiomatic programming in Rust, covering language features up to the 2024 edition. Next to interactive lectures, a large part of the training will be hands-on exercises to apply knowledge in practice.
This training is available for open enrollment as well as for in-company sessions. For in-company sessions, the Rust Fundamentals training can be adapted to your situation and special needs.
Many people consider software quality as being equivalent to testing or as being achieved by processes and process compliance alone.
Software quality is so much more than mere testing or process-compliance. Additionally, software quality is not achieved by the quality manager but by the team. Software quality is very diverse and comprehends many different aspects, of which testing and processes are two to mention.
Software quality is not only important for the customer, the user of the software, it is also important for the development organization itself because it directly determines the complexity the development teams are facing and thus the speed of development. This brings a delicate balance between (short-term) speed and quality.
Therefore, it is important that software quality is understood in the complete and proper way. In this three half-day training course, software quality will be addressed in all of its aspects and why it is important to be addressed properly in the context of the business.
In the software industry, many people work in related functions that are not the core of software development: recruiters, recruiting software specialists, account managers making deals about software projects, but also product owners and project leaders who have never written a line of code. Even quality managers might not have written a line of code themselves but still need to think about and define processes for software developers.
This training is meant for those who are working in the software industry but are not a software specialist themselves. Wouldn’t it be good to have an understanding about concepts of software without being a specialist? Wouldn’t it be good to understand what these specialists are talking about and why they take certain decisions? Wouldn’t it be good to understand why certain aspects cannot be measured or why some measurements do not have the desired effect?
Strategic approach: goes beyond syntax to cover adoption barriers and strategies.
Experienced instructor: led by an industrial software developer.
Versatile scope: relevant to various application domains, from embedded to cloud/web application development contexts.
Classroom interaction: encourages engagement and peer networking.
The Rust programming language offers guaranteed memory safety: a tremendous benefit in security-critical or concurrency-heavy software systems. Still, Rust is a compiled language without garbage collection, and it offers zero-overhead abstractions as well as top-tier performance optimization possibilities. And if that is not enough in and of itself, Rust features an expressive, modern syntax and an excellent tooling ecosystem.
Even though the Rust programming language is relatively young, it has been stirring up the software engineering community for some years now. But is Rust fit for production? Can it be applied in any software engineering field? Is Rust hard to learn? Can Rust interact with my existing code base or hardware? Despite its age, Rust is being widely adopted in production environments, in small and large tech companies alike. Rust is definitely fit for production, and can be applied in a plethora of use cases, from embedded environments, systems programming environments up to web applications. Furthermore, there are plenty of possibilities to have Rust interact with other programming languages or hardware devices. Even though there’s excellent documentation on Rust and many related topics, a good preparation is recommended, as the learning curve for Rust can be quite steep.
As a software engineering business, it may be challenging to adopt a new tool like Rust. Preparing for such a process is important, and will determine the success of the adoption as a whole. In this intense, two half-days introductory training course, experienced software engineers will learn about the benefits the Rust programming language can offer, and how to proceed for successful adoption of the language.
This training is available for open enrollment as well as for in-company sessions. For in-company sessions, the Exploring Rust training can be adapted to your situation and special needs.
Led by an experienced industrial software developer.
Especially relevant for engineers in high-tech and embedded systems.
The C++ fundamentals training aims to build a solid understanding of the C++ programming language, from basic to advanced engineering requirements. The knowledge is built from the ground up, covering fundamental techniques such as function and operator overloading up until more advanced topics such as template programming. Throughout the training we will maintain a focus on a safe, modern style of programming in C++, covering language features up to those part of C++20. Next to interactive lectures, large part of the training will be hands-on exercises to apply knowledge in practice.
Depending on the group skill level and preferences, the training can be adapted to emphasize specific subjects and exercises.
This training is available for open enrollment as well as for in-company sessions. For in-company sessions, the C++ Fundamentals training can be adapted to your situation and special needs.
This is a comprehensive training for those who work in a software environment where object-oriented software development is applied or will be applied. In lectures the typical OO approach for requirements analysis and design and the development of a complete analysis model in UML will be explained. Several practical exercises will help in the understanding and benefits of the OO approach compared to the more traditional (functional) approach. The course also gives insight in how a detailed design can be implemented in a programming language like C++ or Java.
User interfaces are becoming more important every day and users expect a user experience as nice as their high performance smart phones. During our one day training UX for Software Engineers we equip you with the basic knowledge about good user interface design. Not only will you learn about the fundamentals, but also you will gain hands on experience.
Two expert trainers will be involved for extensive guidance.
Energy consumption has become a primary design constraint, along with performance and clock frequency:
A multitude of devices are connected through the Internet (Internet of Things – loT);
Many devices communicate wirelessly and run on batteries;
European laws become stricter about energy.
We need to use much less energy. This workshop shows that the energy consumption can be reduced drastically provided we work on a systematic and holistic way.
Energy consumption is a system issue with many consumption influencing factors. A gain on one place can create a loss on another place. It is a matter of balancing and making compromises.
Significant lower energy consumption can only be achieved by proper design at all levels of abstraction: from architectural design to component selection and physical implementation, but also through careful use and control of the operating system and careful design of application programs. Power management and functionality are interwoven and ask for a real time control.
This hands-on workshop gives a broad and systematic overview of the overwhelming possibilities for ultra low power design. More experienced people can also benefit from this course because of the overview and the many hints and tips.
Various hardware blocks are discussed from the perspective of their possibility to consume less power: MCU’s, memory/processor/I-O, sensors & interfacing, radio, energy sources, regulators. Energy reduction possibilities are discussed on various levels:
Guidelines for MCU selection;
System architecture: balance between the location of data processing and data transport, distribution of activities in the pipeline of a system;
Balance between performance and energy consumption;
Effects of compiler and linker settings;
Software mapping onto memory modules dependent on their speed and consumption and on time critical routines (e.g. analysis of the effect of alignment);
Instruments (hardware tooling, benchmarks) are used to measure the energy consumption before and after the introduced changes.
The lecturer (advanced expert at Capgemini Engineering) has a broad and in-depth hardware-software engineering experience (in research and development, feasibility studies, system performance tuning), has acted a lot on the border between hardware and software and is an advisor of the EEMBC Working Groups ULPMark, IoTMark-BLE and SecureMark-TLS. (EEMBC defines Industry-Standard Benchmarks for Embedded Systems). Other activities the trainer is involved in: participated in the ULP group at Holst Center for 2 years, (co-)author of several papers in the area of parallel programming using the Communicating Sequential Processes paradigm and the use of Analytical Software Design / Dezyne, regularly gives guest lectures at universities, polytechnics and at various conferences, defines graduation projects and coaches students.
The ‘Ultra Low Power’ hands-on workshop:
Identifies factors that influence energy consumption;
Shows how to model and measure energy consumption;
Provides an overview of available energy measurement tooling;
Provides an overview of how to reduce the energy footprint;
Gives a guideline for MCU selection;
Gives a design process use case on how to investigate and apply the energy reduction techniques in a systematic way;
Provides hands-on sessions to anchor the obtained knowledge.
The development of real-time software requires special methods and techniques. In this intensive 5-day course participants will learn design aspects of real-time (embedded) programs, in particular timeliness and concurrency.
This 5-day training is intended for developers who want to develop for or build an Embedded Linux system from scratch or from commercial Embedded Linux solutions. The training covers the various components of an embedded Linux target, the development choices and the different debugging possibilities. A more detailed look is also taken at the Linux kernel architecture and important issues such as cross compilation and building of the main components. The training finishes with some more specific subjects to the choice of the participants (such as Real Time Linux, Qt development, etc…). During this training all participants get the opportunity to build and experiment with a multifunctional small-footprint embedded target with an LCD touchscreen interface, which can be kept after the training.
This training stands out through:
Continuously updated content: always up to date with the latest tools (such as Buildroot, OpenEmbedded/Yocto, Real‑Time Linux, Qt development) and practices.
Hands-on with real hardware: build and experiment on an embedded hardware board you get to keep.
Personalized guidance: small groups (max 10) ensure individual attention (limited capacity!).
For all levels: accessible for beginners, challenging for experts.
Direct impact: practical skills and insights you can apply immediately.
This training is available for open enrollment as well as for in-company sessions. For in-company sessions, the Embedded Linux training can be adapted to your situation and special needs.
This websites uses cookies to function. Additionally, we would like your consent to include cookies from third-parties. For more information on our cookies, please read our cookie statement. ACCEPT
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.