Skip to content

Commit c37527a

Browse files
committed
Merge branch 'master' of github.com:corrode/corrode.github.io
2 parents 8c5878a + a28ea6d commit c37527a

32 files changed

Lines changed: 286 additions & 280 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,17 @@ name: Zola
33
on:
44
push:
55
branches:
6-
- master
6+
- master
77
pull_request:
88
workflow_dispatch:
99

10+
# Serialize deploys so concurrent runs can't race when force-pushing to
11+
# gh-pages, which can leave the GitHub Pages deployment wedged. Queue rather
12+
# than cancel, so a half-finished push is never interrupted.
13+
concurrency:
14+
group: pages-${{ github.ref }}
15+
cancel-in-progress: false
16+
1017
jobs:
1118
build:
1219
name: Build
@@ -20,7 +27,7 @@ jobs:
2027
BUILD_DIR: .
2128
BUILD_ONLY: true
2229
BUILD_FLAGS: --drafts
23-
30+
2431
deploy:
2532
name: Deploy
2633
runs-on: ubuntu-latest

content/blog/bugs-rust-wont-catch/index.md

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -376,10 +376,4 @@ The type system can encode many things, but it cannot encode conditions outside
376376

377377
Idiomatic Rust, then, is not just code that the borrow checker accepts or that `clippy` leaves alone. It is code whose types, names, and control flow tell the *truth* about the system they run in. And that truth is sometimes ugly. It could mean using file descriptors instead of paths, `OsStr` instead of `String`, [`?` instead of `unwrap`](/blog/pitfalls-of-safe-rust/), and bug-for-bug compatibility over clean semantics. None of it is as pretty as the version you would write on a whiteboard. But it is more honest.
378378

379-
{% info(title="Need Help Hardening Your Rust Codebase?", icon="crab") %}
380-
381-
Is your team shipping Rust into production and want to make sure you're not falling into the same traps?
382-
I offer Rust consulting services, from code reviews and security-focused audits to training your team on the patterns that the compiler won't enforce for you.
383-
[Get in touch](/#contact) to learn more.
384-
385-
{% end %}
379+
{{ next_steps(context="Shipping Rust to production and want to make sure you're not falling into the traps the compiler won't catch?") }}

content/blog/cpp-rust-interop/index.md

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -103,13 +103,7 @@ Here are some key takeaways from Tyler's experiences with Rust and C++:
103103

104104
As Tyler's experiences illustrate, the benefits of Rust often become most apparent in the "day two operations" of software development – in code reviews, refactoring, and managing complexity.
105105

106-
{% info(title="Make the most of Rust", icon="crab") %}
107-
108-
Is your company considering to migrate from C++ to Rust?
109-
I offer consulting services to get you up to speed with your Rust projects, from training your team to code reviews and architecture consulting.
110-
Check out my [services page](/services) to learn more.
111-
112-
{% end %}
106+
{{ next_steps(context="Moving a C++ codebase to Rust? Getting the interop boundaries right is exactly the kind of decision that pays off with a second pair of eyes.") }}
113107

114108
## Recommended Reading
115109

content/blog/hiring-rust-engineers/index.md

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -141,11 +141,5 @@ work with your hiring manager to help them understand how to hire more Rust devs
141141

142142
Good luck with your Rust hiring process!
143143

144-
{% info(title="Is your company adopting Rust?", icon="crab") %}
145-
146-
Let me help you make the most of Rust.
147-
I offer consulting services to get you up to speed with your Rust projects, from training your team to code reviews and architecture consulting.
148-
Check out my [services page](/services) to learn more.
149-
150-
{% end %}
144+
{{ next_steps(context="Building out a Rust team and want to set them up for long-term success?") }}
151145

content/blog/long-term-rust-maintenance/index.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -577,11 +577,7 @@ tooling, and active community.
577577
By following the principles outlined in this post, you can
578578
ensure that your codebase remains robust and maintainable for years to come.
579579

580-
{% info(title="Supercharge Your Rust Adoption", icon="radio") %}
581-
582580
If you want to learn from top companies that have successfully adopted Rust,
583-
consider subscribing to the [Rust In Production Podcast](/podcast).
584-
585-
In case your company is considering to adopt Rust for a new project, feel free to reach out for a [consultation](/#contact).
581+
consider subscribing to the [Rust in Production Podcast](/podcast).
586582

587-
{% end %}
583+
{{ next_steps(context="Planning Rust for the long haul and want a codebase that stays maintainable for years?") }}

content/blog/memory-safety/index.md

Lines changed: 3 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,6 @@ This is a **global, bipartisan, cross-sector consensus** that memory-unsafe code
5555

5656
The direction is clear. The question is not _whether_ your organization will need to address this, it's _when_, and whether you'll do so on your own terms or under external pressure.
5757

58-
{% info(title="Where Does Your Organization Stand?", icon="warning") %}
59-
60-
If your software touches critical infrastructure, handles sensitive data, or ships into regulated markets, the regulatory direction above applies to you. Most organizations I work with underestimate how long it takes to build internal Rust expertise and draft a credible memory safety roadmap.
61-
62-
I help companies close that gap, typically saving months of trial and error. **[Book a free assessment call](/#contact)** and let's figure out your exposure before deadlines set the pace.
63-
64-
{% end %}
65-
6658
## Memory Safety Vulnerabilities Are Everywhere
6759

6860
Before we talk about regulation, let's talk about the problem.
@@ -253,48 +245,13 @@ At a minimum:
253245
4. Interim mitigations for code that won't be migrated soon (compiler hardening, fuzzing, static analysis).
254246
5. A timeline with milestones showing a credible, prioritized reduction of memory safety vulnerabilities.
255247

256-
This is exactly the kind of work I do with my clients at [corrode](/services/). We've helped organizations across industries, from
257-
cloud infrastructure to embedded devices to backend services, develop practical Rust adoption strategies (see our [case studies](/learn/case-studies/) for real-world examples).
258-
259248
(For a complete guide on the organizational side, see our [Rust Business Adoption Checklist](/blog/successful-rust-business-adoption-checklist/).)
260249

261250
## You Don't Have to Do This Alone
262251

263-
Making this transition on your own, on top of an already overwhelming workload, is hard.
264-
But here's the good news: **you don't need to figure this out from scratch**.
265-
266-
The Rust ecosystem is mature, the tooling is excellent, and there is a growing body of industry experience to draw from. What most organizations lack is not motivation. It's **guidance**.
267-
268-
That's where I come in.
269-
270-
At [corrode](/) I provide Rust consulting and training specifically designed for organizations navigating this transition. I've helped teams:
271-
272-
- Evaluate whether Rust is the right fit for their specific use case.
273-
- Build memory safety roadmaps aligned with CISA and EU CRA requirements.
274-
- Train existing C/C++ developers to become productive in Rust.
275-
- Architect interoperability layers between legacy C/C++ and new Rust code.
276-
- Review and audit Rust codebases for production readiness.
277-
- Hire and grow Rust teams (see our guide on [hiring Rust engineers](/blog/hiring-rust-engineers/)).
278-
279-
I've also spent years documenting real-world Rust adoption through the [**Rust in Production podcast**](/podcast/), where companies like [Microsoft](/podcast/s04e01-microsoft/), [Cloudflare](/podcast/s05e03-cloudflare/), [1Password](/podcast/s04e06-1password/), [Volvo](/podcast/s03e08-volvo/), and [many others](/podcast/) share their experiences.
280-
281-
I write about the practicalities of long-term Rust adoption on this blog, from [flattening the learning curve](/blog/flattening-rusts-learning-curve/) to [long-term maintenance strategies](/blog/long-term-rust-maintenance/) to understanding [Rust for foundational software](/blog/foundational-software/).
252+
Making this transition on your own, on top of an already overwhelming workload, is hard. But the Rust ecosystem is mature, the tooling is excellent, and there is a growing body of industry experience to draw from.
282253

283-
## The Cost of Inaction Far Exceeds the Cost of Action
284-
285-
Let me put it in business terms.
286-
287-
Engaging a Rust consultant is an **insurance** policy for your organization.
288-
The cost of a consulting engagement is a rounding error compared to:
289-
290-
- A single critical CVE in production ($150,000+ per Microsoft's estimate).
291-
- A regulatory non-compliance penalty under the EU Cyber Resilience Act.
292-
- An emergency scramble to produce a memory safety roadmap when your government customer asks for one.
293-
- The reputational damage of a headline-grabbing breach traced to a buffer overflow in 2026.
294-
295-
**Starting now means you control the timeline, the budget, and the scope.** You choose which components to migrate first. You train your team at a sustainable pace. You build institutional knowledge before you _need_ it.
296-
297-
Waiting means someone else, a regulator, a customer, a competitor, dictates the terms.
254+
I've documented real-world Rust adoption through the [**Rust in Production podcast**](/podcast/), where companies like [Microsoft](/podcast/s04e01-microsoft/), [Cloudflare](/podcast/s05e03-cloudflare/), [1Password](/podcast/s04e06-1password/), [Volvo](/podcast/s03e08-volvo/), and [many others](/podcast/) share their experiences. I also write about long-term Rust adoption on this blog, from [flattening the learning curve](/blog/flattening-rusts-learning-curve/) to [long-term maintenance strategies](/blog/long-term-rust-maintenance/) to [Rust for foundational software](/blog/foundational-software/).
298255

299256
## Next Steps
300257

@@ -309,17 +266,7 @@ Here's what I recommend:
309266

310267
I'd love to help you with any or all of the above.
311268

312-
{% info(title="Let's Talk About Your Memory Safety Strategy", icon="crab") %}
313-
314-
If you're evaluating Rust or need to build a memory safety roadmap for compliance, [reach out for a free initial consultation](/#contact).
315-
316-
I work with organizations of all sizes, from startups to Fortune 500 companies, to make Rust adoption practical, sustainable, and aligned with regulatory requirements.
317-
318-
Let's make sure your organization is ahead of the curve, not behind it.
319-
320-
**[Get in touch →](/#contact)**
321-
322-
{% end %}
269+
{{ next_steps(context="Evaluating Rust or building a memory safety roadmap for compliance?") }}
323270

324271
## Frequently Asked Questions
325272

content/blog/pitfalls-of-safe-rust/index.md

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -914,10 +914,4 @@ That's why testing, linting, and fuzzing are still important in Rust.
914914
For maximum robustness, combine Rust's safety guarantees with strict checks and
915915
strong verification methods.
916916

917-
{% info(title="Let an Expert Review Your Rust Code", icon="crab") %}
918-
919-
I hope you found this article helpful!
920-
If you want to take your Rust code to the next level, consider a code review by an expert.
921-
I offer code reviews for Rust projects of all sizes. [Get in touch](/services/) to learn more.
922-
923-
{% end %}
917+
{{ next_steps(context="Want a second pair of expert eyes on your Rust code before it ships?") }}

content/blog/rust-learning-resources-2026/index.md

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -142,12 +142,4 @@ All the material is open source and free. You can browse the [full workshop cata
142142
You can go through the material on your own to see if it fits your needs.
143143
Once you're ready, feel free to reach out about tailoring the content for you and your team.
144144

145-
{% info(title="Speed Up Your Learning Process", icon="crab") %}
146-
147-
Is your company considering a switch to Rust?
148-
149-
Rust is known for its steep learning curve, but with the right resources and guidance, you can become proficient in a matter of weeks. I offer hands-on workshops and training for teams and individuals who want to accelerate their learning process.
150-
151-
Check out my [services page](/services) or [send me an email](mailto:hi@corrode.dev?subject=Rust%20Workshops) to learn more.
152-
153-
{% end %}
145+
{{ next_steps(context="Want to accelerate past Rust's learning curve with hands-on guidance?") }}

content/blog/rust-prevents-data-races-not-race-conditions/index.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -357,9 +357,4 @@ Rust holds an enormous amount for you, and what remains is the part that lives i
357357

358358
If you want to go deeper on the concurrency side of this, read [Rust Atomics and Locks](https://mara.nl/atomics/) by Mara Bos. It's free online.
359359

360-
{% info(title="Want to get concurrency right in your Rust codebase?", icon="crab") %}
361-
362-
I offer Rust consulting, from code reviews and audits to training your team on the patterns the compiler won't enforce for you, including the concurrency traps in this post.
363-
[Get in touch](/#contact) to learn more.
364-
365-
{% end %}
360+
{{ next_steps(context="Want to get concurrency right in your Rust codebase, including the traps covered in this post?") }}

content/blog/successful-rust-business-adoption-checklist/index.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -451,9 +451,4 @@ By acknowledging the challenges and following these strategies, you can ensure a
451451

452452
Check out our ['Rust in Production' podcast](/podcast/) for insights from industry experts on how their teams successfully adopted Rust in production.
453453

454-
{% info(title="Need Help with Your Rust Project?") %}
455-
456-
If you're considering adopting Rust for your next project, I can help you get started.
457-
[Reach out for a free consultation](/#contact) if you need help with your Rust project. I'm happy to help you get the most out of Rust and guide you through the process.
458-
459-
{% end %}
454+
{{ next_steps(context="Considering Rust for your next project and want guidance from someone who's done it before?") }}

0 commit comments

Comments
 (0)