I offer innovative and effective training to help you and your team succeed with Rust. I offer training courses for Rust beginners and more experienced users, both open and private (corporate) training. Corporate training can be customised and tailored to your needs. I also offer coaching and mentoring for individuals and teams.
Open training is offered remotely in time zones friendly to Asia, Oceania, and the Americas. Training typically consists of structured presentations, exercises, Q&A using Slack, and/or small group discussions. Optional follow-up chat support is available. I'm currently offering a two-day, intermediate-level training: 'performance engineering using Rust'. See below for more details and to book.
Corporate training courses are the most effective way for teams to learn Rust or improve their use of it. Corporate training consists of training sessions dedicated and specialised for your teams and their needs. Training can be combined with expert support to give your team extended access to my expertise. Training can be adapted from the open trainings below or built new. You can choose the format, tools, material, etc. Training can be offered remotely in any timezone or on-site (subject to local regulations around visas, tax, etc.). I can cater to any level and a broad range of topics.
To learn more or discuss corporate training, get in touch to schedule a chat.
If these dates or times don't suit, I'll be offering them again in the near future, optimised for different time zones. Join my mailing list to keep informed of new dates. If you want them at your own convenience, in-person, or customised for your org, it can be done! Get in touch to discuss!
An introduction to performance engineering and optimising Rust code. This course covers essential background including modern systems architectures, and how that applies to program performance. I teach the tools, techniques, and engineering culture required to produce fast software. Ideally suited to programmers with little or no background in systems performance moving to Rust from high-level languages such as Go, Python or Java.
The course consists of two taught days, the first covers the fundamentals of performance engineering (using Rust for examples and context). The second day covers applying these fundamental principals when using Rust.
During the first day, I take a holistic view of performance engineering covering human and technical aspects. I'll cover designing for performance, prioritising performance, premature optimisation, and being data-driven; and on the technical side: computational complexity and algorithms, architecture of modern CPUs including caches, instruction pipelining, and branch prediction, relative costs of IO, memory, and computation, and how all these things affect software performance. I'll also cover important tools and techniques for benchmarking and profiling.
On the second day, we get specific. We'll go over tools and libraries you'll use with Rust, understanding concepts such as allocation and data layout which can have a big impact on Rust performance, and techniques such as buffering, iteration, and data-oriented design. We'll also cover making best use of parallel and asynchronous programming using libraries like Rayon and Tokio.
On both days, there will be breaks from teaching to put things into practice with exercises and experiments.
The course is designed for programmers with some Rust experience, but little experience with performance. The course is not suitable for experienced performance engineers who want to learn Rust. For engineers who have some performance experience in high-level languages and want to learn how to apply that in Rust, there is an option to attend only the second day (however, if you're an experienced C/C++ engineer with a strong background in performance, I don't expect even this option will be worthwhile for you).
I'm currently developing more training material which will probably become the following courses. If you're keen to participate, please let me know so I can prioritise appropriately. You can join my mailing list to get notified when the courses are available. These courses can also be the basis for corporate training.
Stop fighting the borrow checker! A deep dive into Rust's most unique (and sometimes confusing) aspect, ownership. By exploring this fundamental concept, you'll get a boost along Rust's learning curve, gain a thorough understanding of how Rust works, and learn to write effective and idiomatic Rust code.
Intermediate level, suits Rust programmers with two months to two years Rust experience. The course will cover:
Arriving early 2025. Duration and cost TBA.