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', and a month-long beginner-level course of supported and directed learning. 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).
Learn Rust at your own pace and in your own style, with high-quality learning support and direction where you need it. We'll cover all the fundamentals required to get you started programming productively and effectively in Rust. You'll have four weeks in an innovative learning environment involving multiple teaching formats with varying degrees of interactivity and synchronicity.
This course will cover the fundamentals of Rust. Since the course is mostly self-directed, you'll cover more or less depending on your time commitment. Detailed curriculum coming soon.
Each week I will provide recommended learning goals, pointers to resources to learn from, and exercises. There will also be a mini-project towards the end of the course for which you'll receive detailed feedback. Each week there will be an hour-long talk/lecture (with lots of opportunities for questions) to give you a deeper understanding of important topics. You'll also be able to attend a small-group discussion/office hour each week. You'll be able to ask questions about any topic (not limited to the curriculum) at any time via Slack, including during a daily hour with 'immediate' response. You'll also be able to discuss and share experiences with a motivated cohort of fellow learners.
Time commitment is flexible and up to you, a realistic minimum is 8 hours per week, recommended is 16 to 20 hours per week. You could even study full-time to make it your own Rust boot camp.
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.
A similar teaching and learning style to the beginners course (above), but covering more advanced topics and with a bit more flexibility in what is covered.
Topics are likely to include:
Arriving mid-2025. Four week duration, cost TBA.