Zillow cuts more than 500 jobs in its largest layoff of the year
Zillow Group laid off more than 500 employees Tuesday, about 7% of its workforce, one day before it reports second-quarter earnings. … Read More
Get caught up on the latest technology and startup news from the past week. Here are the most popular stories on GeekWire for the week of Aug. 2, 2026.
Sign up to receive these updates every Sunday in your inbox by subscribing to our GeekWire Weekly email newsletter.
Zillow Group laid off more than 500 employees Tuesday, about 7% of its workforce, one day before it reports second-quarter earnings. … Read More
Jeff Dean, who earned his computer science Ph.D. … Read More
Teri Hatfield, Salesforce EVP and Tableau CRO, has taken a role at Iterable; Gates Foundation’s legal director has left for Arnold & Porter; and Seattle-area startups AIM and Gravitics have added to their C-suites. … Read More
Google is laying off 52 employees in Washington state, according to a state filing. … Read More
Affected positions include software engineers, product management directors, incident commanders, technical support engineers, and leadership roles across marketing and sustainability. … Read More
Charles Lamanna, who leads Microsoft’s Copilot, agents, and platform work, is helping build the coming Copilot Super App — a single front door meant to unify the company’s sprawling AI products. … Read More
A WARN notice filed with Washington state shows Zillow Group is cutting 91 jobs in its home state, a fraction of the more than 500 layoffs announced this week. … Read More
Jyoti Shukla is taking the product strategy skills she developed at Microsoft, Starbucks, Nordstrom and SiriusXM and applying them to a station she has relied on as a fan for decades. … Read More
After nearly seven years at the helm of the Paul G. … Read More
Wild Zebra raised $6 million to expand an AI learning platform for math and reading that asks students questions rather than just giving them answers. … Read More
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Is the 10th stream a charm? Will I finally be able to get a test to pass? I feel like I'm so close, so time to use the debugger to figure out what's going wrong.
https://github.com/JasonBock/CslaGeneratorSerialization/issues/49
#dotnet #csharp

When a compiler optimizes your program, it has to guess. Which functions are worth inlining? Which side of a branch is the common one? Which method does this interface call actually reach? At compile time it cannot know, so it uses heuristics. Profile-guided optimization (PGO) replaces the guessing with measurement: you run your program, record where it spends its time, and hand that recording back to the compiler for a second build.
PGO is a common feature of compiler systems. Google applied PGO to Chrome under Windows in 2016, reporting gains of up to 15%. I expect all mainstream Web browsers to be built with PGO.
There are now fancier techniques than mere heuristics with PGO. You can use AI to recognize patterns and so forth. But they are not always widely available.
Go has supported PGO since version 1.20. You collect a profile, and pass it to the compiler.
A CPU profile is a statistical record of where a program spends its time. While the program runs, the Go runtime interrupts it about a hundred times a second and writes down the call stack at that instant. After a few seconds you have thousands of such samples, and counting them tells you which functions were executing and who called them. In Go you produce one by wrapping the work you care about:
f, _ := os.Create("cpu.pprof")
pprof.StartCPUProfile(f) // from runtime/pprof
defer pprof.StopCPUProfile()
The compiler reads the call-stack counts and uses them for two things above all: inlining call sites that turn out to be hot, and devirtualizing interface calls whose target is nearly always the same concrete type.
I took three JSON documents that I wanted to parse:
twitter.json (632 kB), a nest of small objects with short string keyscanada.json (2.25 MB), essentially one enormous array of floating-point coordinatescitm_catalog.json (1.73 MB), deeply nested objects with numeric keysI parse each of them with the standard library’s encoding/json into an interface{}. The baseline, with no profile, parses at 112 MB/s for twitter.json, 74 MB/s for canada.json and 116 MB/s for citm_catalog.json.
The procedure is three commands:
go build -o bench . # ordinary build
./bench -profile cpu.pprof -train twitter.json # collect a CPU profile
go build -pgo=cpu.pprof -o bench_pgo . # build again, with the profile
I did it three times, profiling each document on its own, and then measured all three documents against each of the three builds.
Each panel of the figure is one document being parsed, and the three bars inside it are the three PGO builds: the binary trained on twitter.json, the one trained on canada.json, and the one trained on citm_catalog.json. Bar height is the speed gain over the ordinary, profile-free build of that same document, in percent, so zero means PGO changed nothing and a bar below the axis means the PGO build was slower. The green bar in each panel is the matched case, where the profile was collected on the very document being measured.
The gains are modest. The best result is canada.json at +4.7%, and most differences are in the 2–3% range. Profiling one document usually helps the others, but not reliably. Profiling twitter.json gave a decent improvement everywhere: +3.1%, +2.0%, +2.8%. But profiling canada.json bought 4.7% on canada.json and essentially nothing anywhere else. Interestingly, profiling citm_catalog.json produced a mere +0.8% on its own document while helping twitter.json more.
A 3% speedup is not exciting in isolation, but it may come nearly for free. Observe how you may get slightly negative results for cases you did not train for. That’s expected generally, but the effect is modest in the case of Go because its optimizations are themselves modest in the first pace. That is, you are not getting a much an effect, but the process is less likely to backfire for other workloads.
Modern software teams have become exceptionally good at reviewing production code.
Before almost every pull request is merged, another developer checks for bugs, readability, architecture, security, and maintainability.
Code reviews have become one of the most valuable quality practices in software engineering.
But there’s something missing.
Almost nobody reviews the tests.
Developers review the code.
The build verifies that the tests pass.
And then everyone assumes the tests themselves must be correct.
That’s becoming a dangerous assumption.
Code reviews have become a standard practice for maintaining software quality. Google’s engineering guidelines, for example, emphasize reviewing code for correctness, readability, maintainability, and design. Excellent reference for why code reviews matter.
Imagine a developer opening a pull request with 500 lines of production code.
No review.
No discussion.
No comments.
Most engineering teams would reject that immediately.
Production code deserves review because it can contain mistakes.
It can be duplicated.
It can be difficult to maintain.
It can introduce hidden dependencies.
Tests are no different.
They’re software.
They deserve the same level of attention.
Continuous Integration answers an important question:
Does everything still work?
It does not answer another important question:
Are these new tests actually improving the test suite?
A test can pass while still being:
A green build should never be confused with a quality review.
Only a few years ago, developers carefully wrote every test by hand.
Today, AI can generate dozens of tests in seconds.
That’s a huge productivity gain.
But it also means pull requests increasingly contain test code that nobody has deeply reviewed.
Reviewing every generated test manually doesn’t scale.
Teams need better ways to understand whether those tests actually contribute something valuable.
A good test review asks questions that go beyond syntax.
For example:
Or does another test already validate the same thing?
Does it unexpectedly access:
Complex mocking often hides unnecessary setup.
Unused fakes make tests harder to understand.
Good tests communicate intent.
If the setup is more complicated than the production code, that’s often a warning sign.
Reviewing tests produces benefits far beyond cleaner test code.
Teams typically see:
Most importantly, developers begin trusting the test suite again.
That trust is incredibly valuable.
Large organizations already maintain tens of thousands of automated tests.
Some maintain hundreds of thousands.
As AI continues generating more tests, manual review becomes increasingly difficult.
Developers simply don’t have time to inspect every assertion and every mock.
That’s why test review needs automation.
Not to replace developers.
To help them focus on the tests that deserve attention.
For years our pull requests have contained several quality gates.
The next logical quality gate is obvious.
Test Review.
Not simply asking whether tests passed.
Asking whether the tests themselves improve the quality of the project.
Code reviews transformed software engineering because they recognized a simple truth:
Every line of production code deserves scrutiny.
The same principle applies to automated tests.
As software teams continue embracing AI-assisted development, reviewing tests will become just as important as reviewing production code.
The organizations that adopt this mindset earliest will build cleaner, faster, and more trustworthy test suites.
We’ve spent years improving how we review production code.
Now it’s time to give our automated tests the same attention.
Passing tests aren’t enough.
Coverage isn’t enough.
A successful build isn’t enough.
The next step in software quality is reviewing the tests themselves.
Because the quality of your software depends not only on the code you write—
but on the tests you choose to trust.
TypeMock Test Review, included in the TypeMock Isolator 9.5 , helps development teams automatically review automated tests by identifying hidden dependencies, duplicate tests, and ineffective fakes before they become long-term maintenance problems.
The post Why Every Pull Request Should Include a Test Review appeared first on Typemock.