About:

Predrag Gruevski is an independent software engineer with a passion for compiler technology and data space. He is also a mentor and advocate for early-career professionals, with interests in query technology and diverse team building.

Website:

Specializations:

Interests:

Compiler technology Data space Query technology Developer productivity tools

Incoming Links:

Outgoing Links:

Subscribe to RSS:
The blog post discusses a user's issue with cargo-semver-checks, which reported build failures that did not occur when running cargo check directly. The author explains the 'Not My Fault' rule, which helps users verify issues inde...
The blog post discusses the implications and hazards of the #[target_feature] attribute in Rust, particularly its use in safe and unsafe functions. It details the author's exploration of this feature, the discovery of bugs in rust...
Cargo-semver-checks saw exponential growth in 2025 with 122 new lints and a focus on sustainable development and community support for future improvements.
The author shares amusing security flaws discovered during a college project on computer security, focusing on the vulnerabilities found in PC remote control mobile apps. The flaws include weak encryption, a home-grown challenge-r...
The cargo-semver-checks v0.40 ships a massive upgrade to its system for detecting sealed traits. The new system improves the accuracy of existing lints, enables new helpful lints, handles cyclic trait relationships, and is faster ...
The text is a review of the year 2024 for cargo-semver-checks, highlighting the improvements made, the funding received, and the goals achieved. It discusses the goal of fearless cargo update, the prevention of accidental breakage...
The blog post discusses how seemingly innocuous changes in the Cargo.toml file can lead to major breaking changes for users. It explains the basics of Rust package features, the implications of deleting a package feature, and how ...
The blog post discusses the importance of accurate sealed trait detection in Rust, using cargo-semver-checks v0.35 to catch SemVer breakage. It explains the complexities of determining if a trait is sealed, the implications of add...
The blog post discusses the author's talk at a virtual conference about unconventional uses of database-like technology, focusing on the Trustfall query engine's architecture. Real-world examples of using Trustfall to catch and pr...
The author shares a true story about how their home Wi-Fi only worked when it was raining, leading to a series of troubleshooting steps that ultimately revealed a tree interfering with the signal. Upgrading to new hardware with ad...
The blog post discusses the challenges of semantic versioning (SemVer) in Rust, highlighting the complexities and common edge cases that lead to accidental breakage. It emphasizes the importance of automated tools like cargo-semve...
The blog post discusses four challenges that the cargo-semver-checks project has yet to tackle, including project edge cases, cross-crate analysis limitations, checking of types, and sustainable project funding. The author highlig...
In 2023, cargo-semver-checks saw widespread adoption in various projects, with significant improvements in speed and accuracy. The tool doubled its library of lints, with most contributions coming from the community. The author di...
The blog post discusses the challenges of handling doc(hidden) items in Rust and how cargo-semver-checks v0.25 addresses these issues. It explains the importance of distinguishing between public API and all pub items, and how fals...
The post discusses the common semver violations in Rust code and the tool cargo-semver-checks that helps prevent these violations. The authors analyzed the top 1000 most downloaded crates on crates.io and found that around 1 in 31...
The author discusses a major breaking change in Rust caused by adding a private type or import, leading to shadowing issues in the public API. The post explains how this problem occurs, why it is a breaking change, and the implica...
The blog post discusses sealed traits in Rust, explaining the different ways to seal traits to prevent downstream crates from implementing them. It covers sealing traits with supertraits, method signatures, and allowing only some ...
The blog post discusses the concept of Moneyball hiring in tech, emphasizing the importance of unconventional hiring practices to find top talent. The author shares personal anecdotes and insights on how to identify promising cand...
Re-exporting an enum with a type alias in Rust can be a breaking change but not necessarily major. The post explores a semver hazard related to re-exporting, causing unexpected errors in downstream code. The breaking change can be...
The post discusses how cargo-semver-checks will benefit from query optimization in the Trustfall query engine, making it faster and more efficient. By implementing indexes, the tool can speed up semver-checking by over 2000x, maki...
The author discusses revamping the cargo-semver-checks import-handling system in Rust to prevent moving and re-exporting items from being flagged as major breaking changes. Various scenarios and edge cases are explored, including ...
The author discusses how some breaking changes in Rust do not require a major version bump, despite being technically breaking changes. Examples include adding new public items and changes to trait methods. The post explores vario...
The post discusses how turning a Rust struct into an enum is not always a major breaking change, focusing on maintaining semantic versioning in the Rust ecosystem. It explains the challenges and considerations involved in making t...
Cargo-semver-checks has been successful in preventing semver issues in Rust crates, with plans to merge into cargo itself. The tool automates the process of checking for breaking changes, with a focus on preventing false positives...