Articles
Brickhouse Guitars
Pellerin Folk C13 # 267 Demo by Roger Schmidt
Kitchener Panthers
2026 SIGNING TRACKER: P Ben Hewitt
♦KITCHENER - The Kitchener Panthers are proud to announce the signing of pitcher Ben Hewitt.
The big 6'5" hurler is coming off his senior season with Ottawa University (NAIA) in Kansas. There, he racked up 36 strikeouts and four saves in 16 appearances and 22.1 innings.
Batters hit just .173 against Hewitt.
He spent last summer with the Victoria HarbourCats of the West Coast League, where he had 11 strikeouts in 21 innings of work, 10 appearances and a 5.14 ERA.
"Ben's coming off a great season as the closer for a nationally ranked program," said general manager Shanif Hirani.
"His experience in high leverage situations will be a big addition to our bullpen."
============
BEN HEWITT
- Bats/Pitches: R/R
- Hometown: New Westminster, BC
- Birthdate: November 17, 2004
- Pronunciation: Ben HEW-it
Elmira Advocate
THE BIG STICK IS COMING: WRDSB FOR SURE IS IN TROUBLE BUT WHAT ABOUT WOOLWICH TOWNSHIP?
I know, I know we have lots of Conservatives locally who have always toed the provincial line. Heck we've got a number of Conservative M.P.s (federal) such as Connie Cody and Kelly Deritter and Matt Strauss. Apologies if I've lumped in a provincial Tory (Conservative ) here along with the federal ones but that just makes my point more that Doug Ford really shouldn't be gunning for anybody in Waterloo Region. Heck both Ken Seiling and Sandy Shantz are both Conservatives as well.
The Waterloo Region District School Board frankly are a bunch of idiots and whatever their political leanings have long been an embarrassment locally. Whether it was the Caroline Burjowski fiasco in which the Chair made the initial errors only to be followed by the rest of the Board leaping in with both feet and treating her savagely; they actually got their comeuppance by the courts which just goes to prove that they at least are not corrupt all the time. Or maybe it's been the treatment of their own trustees when one has dared not to follow the company/Board line on all things stupid. The Mike Ramsay affair makes a complete sham of the Board's commonsense and decency. Suspending publicly elected trustees based upon a few hurt feelings on the Board is jus so sad and pathetic.
Yes I can certainly see our premier being fed up with the WRDSB's nonsense and taking hard action. But what about a municipality (Woolwich) that has let one of the most heavily contaminated chemical sites in the country continue to fester? Instead of redoubling their efforts years ago they are merely preparing excuses and rewriting the narrative. What about a Region (Waterloo) that seems hell bent on infuriating its' citizens through secret land grabs (Wilmot) as well as a local Elmira Water Crisis that is now a Region wide Water Crisis? Plus don't forget speed cameras removed by Doug Ford only to be replaced by surveillance cameras. You know I'm not a Conservative voter but I could get behind the province saying enough is enough here in Waterloo Region. Call it amalgamation, call it sending in a superviser but whatever it's time for a major shakeup.
Elmira Advocate
THE LAWYERS ARE COMING, THE LAWYERS ARE COMING!
Oh thank goodness for involved and keen citizens. Despite decades of reading technical hydrogeological reports and understanding them and then providing informed advice which was generally ignored if it cost 25 cents more than another option; this time I will be a tad frivolous in my advice. In today's K-W Record Luisa D'Amato warns us that lawsuits are on the way. Her article on page A3 is titled "Region is running out of time to avoid legal action on water supply". My suggestion is this: Embrace the judicial system sticking their noses in, their supercilious attitudes, user unfriendly processes and procedures all combined with occasional ignorant judges and go for it. Sort of. Here's what you have to do. It's called judge shopping and the fact that it has a name indicates that it is a thing.
Pick Justice Craig Parry to be the sole jurist. No jury involved to dilute the pool of common sense that he has recently displayed. Based upon his obvious displeasure with the public as represented by 48 adult women versus one male doctor (we'll call him Dr. "hands") a lawsuit made up of mostly male plaintiffs aimed against a mixed bunch of regional councilors should be a slam dunk in favour of the developers and house builders at the expense of the public interest. This sounds to me right up this Judge's alley don't you think?
Now on the other hand if you were to pick judge Robert Reilly instead you could likely tailer the legal decision differently. If as I was told, after the fact, he favours females over males then by putting all the female regional councillors in the front row to emphasize regional council's femininity versus the masculinity of rough/tough home builders and construction guys; then the decision would be a slam dunk in favour of the public interest (politicians) over wealthy, influential, monied interests.
There is yet another legal term involved. It's called "home cooking". Basically courts who rely somewhat on the good will of the people they terrorize.... oops I mean tenderize, prefer to make decisions that the public can get behind no matter their legal merits. Hence each party needs to do a small, subtle con job on the judge alone (possibly favoured by Reilly & Parry?) which is much easier than winning over a jury of citizens based upon evidence. The party that the Judge feels represents more people should generally win court decisions to avoid controversy and worse such as bringing the administration of justice into disrepute.
So who really is in charge in Waterloo Region? Is it the behind the scenes movers and shakers or is it the pack of dummies that get elected every four years? Those politicians may get elected on the lies they tell the public during the election but it's the truth they tell the movers and shakers privately beforehand that gets them money and organization to run in the elections.
Exactly how rigged is the system? Can you believe the coincidence that speed cameras are being torn down in Waterloo Region literally at the same time as surveillance cameras are being put up? Who masterminded that Orwellian nonsense without public input? Waterloo Region still refuses to divulge what should be public knowledge regarding the 770 acre land grab in Wilmot Township. They also still haven't come clean as to the quantity of contaminated groundwater combined with incredibly dirty Grand River surface water requiring massively expensive treatment.
My personal view is that we are watching a bruhaha between the greedy and the incompetent. There will ne no winners but I can guarantee you who the losers will be! We can't vote out the movers and shakers but come this October we can vote out every single regional councillor plus incumbent mayors on regional council.
The Backing Bookworm
City of the Muse
City of the Muse is a mystery for lovers of Egypt history.
Told in dual timelines in the early 1900's and 2019, I loved the story's brief Toronto connection and how it centres on the perspectives of two strong female characters who are connected to a 120-year-old murder at an ancient Egyptian site.
Egyptology is fascinating but the extent of my knowledge is visiting the Royal Ontario Museum in Toronto. I was eager to learn more and through this story I now know about papyrology (the study of ancient papyrus) and have a greater understanding of the experience of female archaeologists and papyrologists who worked in the very male-dominated business of unearthing and preserving Egyptian history and its relics.
The mystery was more of a slow-burn kind that simmers in the background before revealing itself later on. What shines is Hilton's passion for Egyptian history as she creates a very atmospheric story, bringing her readers to dig sites to witness power struggles and the flippancy of the wealthy elite who fund excavations for their own greedy benefit with little regard to preserving history.
This is an atmospheric tale of buried mysteries, murder, stolen relics, Egyptian curses and women in STEM going up against the 'boys club' in the very male-dominated field of Egyptology.
I had the pleasure of seeing this author at an event last weekend.
♦
Disclaimer: My sincere thanks to the author for sending me a trade paperback copy of this book which was gifted in exchange for my honest review.
My Rating: 3.75 starsAuthor: Kate HiltonGenre: Historical mysteryType and Source: Trade paperback from authorPublisher: Simon and Schuster CanadaFirst Published: April 14, 2026Read: April 14 - May 1, 2026
Book Description from GoodReads: For fans of The Lost Apothecary, a gripping dual-timeline novel about the mysterious death of an indomitable female papyrologist during an archaeological dig in the early 1900s and an aspiring young female researcher’s present-day quest to find out who killed her.
An ill-fated dig. An ancient city believed to be cursed. And a century-old mystery at the heart of it all.
Egypt, 1903: When renowned papyrologist Helen Gardiner arrives at an excavation site in the ancient city of Calliopolis, she learns that she has been given the job because her predecessor has disappeared under mysterious circumstances. One of the only women on the dig, Helen—tasked with restoring and cataloguing the thousands of papyrus fragments recovered at the site—soon discovers that there’s more to Calliopolis than meets the eye. The archaeologists on the dig, mostly men, all have not only their own towering egos, but their own agendas, including secrets they might kill to protect.
Toronto, 2019: Archivist Maddie Sloan is at a dead she feels like her academic career is stalled, and she’s still healing from her recent breakup with her former partner, Ben. To make matters worse, Ben still works with Maddie’s father, a famous archaeologist, and with whom Maddie has had a major falling out. It feels like her father has chosen Ben over her.
When famous TV archaeologist Peter Bahar arrives at the Toronto Archaeological Museum to verify the provenance of objects from their Egyptian collection believed to be from Calliopolis, Maddie jumps at the opportunity. After all, she has her own ties to the Cursed City of Calliopolis through her grandmother, Iris, who worked at the site. As Maddie and Peter begin digging into the objects and circumstances surrounding the excavation, they learn that two papyrologists seem to have abruptly disappeared from the dig without explanation. Suddenly, a search for providence becomes a quest to uncover a history shrouded in secrets and lies—and a murder that has been covered up for more than a century.
♦
Adam Wathan
Exploring the Tailwind CSS v4.0 Beta with Sam Selikoff
Kitchener Panthers
Panthers sweep preseason road trip
♦
Two games, two days, two wins.
They may have been preseason games, but the Kitchener Panthers will take the boost in confidence going into this Sunday's 2026 season opener in Toronto.
On Thursday, the Panthers battled back from a 6-0 deficit to take down London 9-7 in front of a school day crowd.
After picking up three in the fourth inning, Yosvani Penalver hit a two-run double in the fifth.
In the sixth, Trent Lawson launched a two-run home run to take the lead. Raffi Gross followed that up with a two-run shot of his own in the same inning.
Samuel Quintana and Evan Elliott each saw three innings of work on the hill.
Bawin Colon finished things off in the seventh for the save.
Saturday night, Mateo Zeppieri played hero with a go-ahead two-run home run as Kitchener beat the Barnstormers 7-5 in Chatham-Kent.
Kitchener had a 4-0 lead, but the Barnstormers slowly chipped away and got a 5-4 lead.
Zeppieri's bomb to right field made it 6-5. Charlie Towers' groundout in the ninth brought in an insurance run from third to round out the scoring.
Jake Liberta got the first three innings on the bump. Cory Lawson saw the next two, followed by Brett Reid in the sixth, seventh and eighth. Colon worked a scoreless ninth to lock in his second preseason save.
Kitchener begins its 2026 regular season in Toronto at 2 p.m. Sunday.
Greater Kitchener Waterloo Chamber of Comerce
job post: Member Services & Operations Coordinator
The Greater Kitchener Waterloo Chamber of Commerce is seeking a Member Services & Operations Coordinator to support the day-to-day administration of member services, member data, front-office operations, and internal coordination. Serving more than 1,700 members in one of Canada’s leading business communities, the Chamber is looking for a highly organized, service-focused individual who can help ensure members receive timely, accurate, and professional support.
About the roleThis role will act as an operational hub for membership administration, including member inquiries, AMS updates, new member setup, renewals, profile changes, event registration support, online directory updates, Peer2Peer logistics, document certifications, and member letters in good standing. The Coordinator will also support office operations, including phone coverage, admin mailbox routing, walk-ins, office supplies, meeting room readiness, vendor coordination, and general administrative support across departments.
About YouThe ideal candidate brings a strong member-service mindset, excellent attention to detail, administrative strength, comfort with technology, and the ability to manage multiple priorities in a busy office environment. They should be professional, dependable, discreet, collaborative, and willing to learn membership systems, AI tools, and new processes as the Chamber continues to modernize its operations.
Application ProcessThis is a full-time role, Monday to Friday, 8:30 a.m. to 4:30 p.m., with a hybrid work model. Compensation is expected to be $42,000–$49,000 annually, plus benefits, RRSP matching, vacation, professional development opportunities, and parking. Interested applicants are invited to submit a resume and cover letter to hr@greaterkwchamber.com. The posting will remain open until filled.
Download the full job description here.
The post job post: Member Services & Operations Coordinator appeared first on Greater KW Chamber of Commerce.
Greater Kitchener Waterloo Chamber of Comerce
Chamber Young Professionals: Mental Health Awareness Month
Written by: Ashley Close, Chamber Young Professionals Committee & Realtor.
May is Mental Health Awareness Month — a reminder that mental health is just as important as physical health.
So many people are balancing careers, family responsibilities, financial pressures, and the everyday challenges of life — often without talking about the weight they’re carrying.
Mental health isn’t something that only matters when things feel overwhelming. It’s something we should care for every day through support, connection, rest, and open conversations.
One perspective I often come back to is this: life is happening for me, not to me. It doesn’t mean things are always easy, but it helps me pause, reflect, and look for meaning or growth—even in the harder moments.
Checking in on yourself matters.
Checking in on others matters too.
A simple message, a coffee with a friend, or asking someone “How are you really doing?” can go further than we realize. Let’s continue to normalize these conversations, support one another, and create communities where people feel safe to speak up and seek help.
You are not alone. ♦
#MentalHealthAwareness #MentalHealthMatters #EndTheStigma #CommunitySupport #Wellbeing
The post Chamber Young Professionals: Mental Health Awareness Month appeared first on Greater KW Chamber of Commerce.
KW Predatory Volley Ball
Welcome Jacob Nesbitt KW Predators Technical Director
♦
Read full story for latest details.Tag(s): Home
KW Predatory Volley Ball
OVAtions Awards 2026 Presented by Visit Mississauga
♦
Read full story for latest details.Tag(s): Home
Adam Wathan
Rebuilding Allbirds.com with Tailwind CSS
James Bow
Talking More about the Night Girl; and Caught Between Passions
♦It's been a bit chaotic here at home, which has kept me away from this blog, but I do want to thank Miss Liz for a fantastic podcast "teatime" back on April 23rd at 7 p.m. wherein we talked about The Night Girl, my development as a writer, the perks and challenges of storywriting, and about the benefits of fan fiction in building yourself as a writer. You can check out the stream on YouTube here, and the episode is also available on Spotify. Thanks again, Miss Liz, for a wonderful teatime!
After a particularly lengthy and harsh winter, spring has finally sprung. Good news: we now have green after what seems like forever. Bad news: this means it's allergy season. Oh, well.
I have to admit that I feel like I've been struggling creatively at the moment. Intellectually, I would like to work on finishing my latest draft of The Cloud Riders, but practice has not matched the theory. My creativity has instead focused a lot on my Transit Toronto videos (see one of my favourites here). This is frustrating to me, as I'd hoped to have a draft of The Cloud Riders done by July of last year, and I'm still only about two-thirds done.
But I can't deny that my video work on Transit Toronto hasn't been a creative outlet. It's just a different medium and a different subject. I've produced things ranging from vintage footage of streetcars on Kingston Road in east Toronto in 1969, to a ride-along featuring a lengthy commentary on the history of commuter rail in Montreal. For the past six months, I've been helping my team shift our YouTube operations onto a new channel that's more stable and prepped for succession, and I've been downloading, updating and uploading hundreds of older videos onto the new channel, in the hopes of getting the new one monetized as quickly as possible.
This has taken up a lot of my creative energy but also provided a lot of creative satisfaction. Except it's happening at the expense of my writing, and I'm starting to feel the withdrawal.
The Bible quote goes "No one can serve two masters. Either you will hate the one and love the other, or you will be devoted to the one and despite the other." (Matthew 6:24). But there aren't just two masters here. There's three; possibly more.
I write because I love to write. In this economy, this has to be the primary reason most writers write. I am very fortunate to be able to write for my dayjob, but that's separate from what I like to write. I can write press releases, business proposals, technical reports, or educational books for kids, but my passion is in young adult writing, science fiction and fantasy. And in transit history and videos therein.
You see my problem: I have a day job. And I have a passion. And my passion is divided, which divides everything about my passions.
As a science fiction/fantasy/young adult writer, my passion brings me in contact with a community of people who are also passionate about science fiction/fantasy, young adult literature and writing. And as a rail and transit fan, my passion here brings me in contact with a community of people who are also passionate about rail and transit and who create content based on that. There is rarely any crossover between the two communities (though I know of one or two individuals who cross the boundaries with me).
I'm forced to wonder whether having my passions divided makes me less able to commit to each one individually. I have two passionate communities to engage with, but possibly not as deeply as if I only had one. Right now, I've been pumping out a lot of transit-related content and contributing a lot to the Transit Toronto YouTube channel, but will that last? Or will I end up stepping back and letting others take up the slack and, if so, am I letting those people down?
On the other hand, I have said that having two book projects on the go is a good way to avoid writers' block. If you encounter frustrations with one project, you can move onto the other in order to maintain momentum, while you work on your first project's issues at the back of your mind. The best chefs are able to use their back burners to great effect, though I think this might end up being stressful if one project was under a deadline, and the second project was calling to you.
I don't see an easy solution other than to keep pursuing my passions in whatever direction they take me, and to try to nudge progress forward on The Cloud Riders as best I can, in the hopes that something snags my interest again. And, maybe by saying this out loud, I'll reach others who are experiencing similar issues. This is not an issue to fix, but it is an issue that is easier to handle when you know you're not alone, as I suspect I'm not.
Code Like a Girl
Broaden Your Professional Orbit, and Other Actions for Allies
Professional networks shape who gets opportunities. And they’re often less diverse than we think.
A new study highlighted that while women make up about a third of academic researchers globally, their representation drops significantly within scientific organizations. One reason: nominations often come from existing members who are mostly male and tend to recommend people like themselves.
As Amy Diehl, PhD, noted about the study, even “merit-based” systems can reinforce imbalance when networks drive nominations.
This pattern isn’t unique to academic settings. Homogeneous networks form because we like spending time with people with whom we have something in common. Herminia Ibarra, PhD, describes this phenomenon by saying, “Left to our own devices, we produce networks that are ‘just like me’.”
And those networks shape who we refer, recommend, and advocate for.
The next time you’re in the breakroom at work or attending an event, in person or virtually, actively broaden your network. Introduce yourself to someone of a different gender, race, age, or other visible difference. Get to know them and stay in touch.
Perhaps you’ll be able to learn from them or introduce them to an opportunity down the road.
Share this action on Instagram, LinkedIn, or YouTube.
This week’s Better Allies content is sponsored by:
♦As our industry evolves, Femgineer is here to help you stand out as a technical leader who can communicate and influence — not just build. We do that through coaching, courses, and content. Visit femgineer.com and subscribe to our newsletter to learn more!
2. Interrupt harmful behaviorDuring the Q&A session of a recent talk I gave, an audience member I’ll call Ann shared a disturbing story. She had raised her hand to speak at a webinar, and when the instructor called on her, twisted her last name into a racial slur and laughed.
Afterward, another participant reached out privately to express support, saying that they couldn’t believe the instructor did that.
What could have helped even more? Interrupting the behavior in real time.
A simple comment in the chat could have helped. For example:
- “Did I just hear the instructor make fun of a last name? Not cool.”
- “Did I just hear that correctly? That didn’t sound appropriate.”
- “We don’t make fun of people’s names here.”
If the above story has you squirming, you’re not alone. New research from Meg Warren PhD, et al. finds that only 3–5% of people are comfortable being extremely courageous when it comes to standing up as an ally.
That’s why it can help to start with actions that align with your personality and strengths, says Warren.
If you like giving people shoutouts for a job well done, do more of that for people who are typically overlooked. If you’re someone who enjoys connecting people to opportunities, lean into that.
This approach aligns with something I wrote in The Better Allies® Way: A Workbook for Being More Inclusive at Work, where I explore seven ally archetypes. “Double down on the ones that feel most like you, since you’ll most likely have the biggest impact there.”
And over time, stretch yourself. Try actions that feel less comfortable, too. By doing so with allyship, you’ll help create a better workplace where everyone can perform their best work and thrive.
To learn more about the seven roles allies can play, check out this infographic. And then get a copy of The Better Allies® Way to explore the exercises for each type.
4. Evolve your languageWhile reading my book Belonging in Healthcare, Dr. Nolan Kagetsu noticed my use of the phrase “death by a thousand cuts” to describe ongoing, subtle slights and insults that slowly wear a person down over time. He told me it refers to a form of torture and execution that was done in China.
I have to admit I wasn’t aware of its origin, nor had I ever thought of looking into it.
It reminded me of something linguist Dr. Suzanne Wertheim has said: we should be mindful about casually using phrases that reference painful parts of history.
Now that I know, I’ll shift away from using the phrase.
5. Community spotlight: Make invisible work visibleThis week’s spotlight on an ally action from the Better Allies community is from a higher education project manager who told me how they are making the unseen work of a team visible and valued.
As part of a newly restructured administration division, their team is redefining performance metrics for roles like project managers, executive assistants, and administrative staff.
One idea from a previous newsletter resonated with them: ensure fair access to promotable work. They forwarded it to their vice president, and it helped shape their approach.
As a result, their division will now explicitly recognize “social glue” and organizational well-being work, including:
- Planning retreats and team events.
- Organizing celebrations and milestones.
- Supporting informal onboarding.
They’ve now included this work in their performance metrics, rather than treating it as invisible or incidental.
Thank you 🙏. These contributions are often essential to how teams function, but are frequently overlooked in promotion criteria.
That’s all for this week. I’m glad you’re on this journey with me,
Karen Catlin (she/her), Author of the Better Allies® book series
Copyright © 2026 Karen Catlin. All rights reserved.
Together, we can make a difference with the Better Allies® approach.
- Say thanks to Karen and buy her a coffee (Need a receipt for educational reimbursement? Reply to this email, and we’ll take care of it.)
- Sponsor an edition of this newsletter
- Follow @BetterAllies on Instagram, Medium, or YouTube. Or follow Karen Catlin on LinkedIn
- Read the Better Allies books
- Tell someone about these resources
Broaden Your Professional Orbit, and Other Actions for Allies was originally published in Code Like A Girl on Medium, where people are continuing the conversation by highlighting and responding to this story.
House of Friendship
Building a Digital Pathway to Employment
For Ayse, the Digital Skills for Employment class at House of Friendship’s Sunnydale Community Centre is a lifesaver.
Ayse has been in Canada for three years, after leaving her native Türkiye (formerly known as Turkey) behind. There, she was a teacher.
♦Meghety and Ayse work hard on improving their computer skills at Sunnydale Community Centre.
Today, she has found part-time work as an online English tutor, and relies on the skills she’s learning at her weekly class to help her with the technology.
It has also helped her in other ways.
“This class helped me improve my English, too,” said Ayse. “Before last year, I couldn’t speak much English. Now I can.”
This program, offered in partnership with Focus for Ethnic Women, is geared towards supporting immigrant women with the practical skills they need in today’s tech-driven world.
Hajira, the course facilitator, said that the curriculum of the program is adapted to meet the participants where they are at – for some students, they need help with the most basic steps of sending an email; for others, they need help with more complex tasks.
“The first four classes are very basic,” said Hajira. “But the next four classes focus on employment – cover letters, resumes, and so on.”
The goal of the Digital Skills program is to help community members build the skills they need to get jobs, but they can also get support outside of regular class time on specific things they’d like to learn.
Ayse has also found a community of support at Sunnydale Community Centre through this program.
“I was always at home, not knowing what to do,” said Ayse. “Coming here makes me so happy. Everyone is so good, so encouraging. I am confident here. When I have problems, Hajira helps solve them for me. She has opened doors for me.”
Hajira said that she loves the passion of the students who come to her class.
“I love to see their dedication to learning,” said Hajira. “They don’t waste a moment. They all want to learn.”
Neighbourhoods programs like the Digital Skills for Employment offer fresh starts for newcomers to Canada, and support for others who are struggling. Your faithful, generous support of these programs helps transform lives like Ayse’s every day – thank you!
Donate today to help people like Ayse build the skills they need for employmentThe post Building a Digital Pathway to Employment appeared first on House Of Friendship.
Code Like a Girl
How an Insult Became a Movement
♦
Canada won gold. Always ran an ad. I made a sticker. It snowballed.
Continue reading on Code Like A Girl »
James Davis Nicoll
Pride <span class="amp">&</span> Prejudice / Behind Five Willows By June Hur
June Hur’s 2026 Behind Five Willows is a historical romance novel.
Shin Haewon would be perfectly happy to spend her life transcribing the novels she so loves. This cannot be, thanks to pesky august personage King Jeongjo the Great, King Jeongjo’s reverence for munchebanjeong, and the drought.
…
Aquanty
NEW version of HGS PREMIUM May 2026 (REVISION 2961)
Share your ideas to help improve the HydroGeoSphere user experience. Your feedback plays an important role in guiding future development— whether it’s new commands, workflow enhancements, or usability improvements that support more efficient integrated hydrologic modelling.
The HydroGeoSphere May 2026 release is now available for download.
This month’s update focuses on improving evapotranspiration stability, runtime performance, and boundary condition flexibility, while also adding several useful new commands for segment selection and Tecplot visualization. Together, these updates improve reliability, speed up preprocessing and post-processing workflows, and provide more control when working with surface boundary conditions in HydroGeoSphere (HGS).
New boundary condition commands (see hydrosphere_ref.pdf)
bound time-file tablebound time-file table to surface elevation offset
These commands allow users to cap head values defined in a time-file table when applying head or pressure head boundary conditions.
New segment selection command
The new command choose segments polyline no diagonals works similarly to choose segments polyline but restricts selected segments to mesh edges only, avoiding diagonal connections.
New Tecplot export command
The new command chosen segments to tecplot exports the current segment selection directly to a Tecplot ASCII file, simplifying visualization and debugging of selected segment sets.
Performance improvements
Improved the performance of computing output times in hgs2vtu when processing binary output files.
Improved the performance of the regional model command when reading porous medium mesh files.
Improved grok I/O performance through the use of buffered I/O.
Improved Linux compatibility for verification layouts
Fixed broken layout files in the verification folder and updated them to be more Linux friendly.
Improved snowmelt boundary condition error checking
Added validation to ensure that the snowmelt boundary condition can only be specified once within a model setup.
Updated reporting of simulation times
Refined reporting of target times and output times in the .eco file so that nonzero initial simulation times are handled correctly.
Fix for ET subsurface wetness factor computation
Resolved a bug in the evapotranspiration calculation that caused a division by zero when the minimum evaporation limiting saturation was equal to the maximum evaporation limiting saturation. This improves stability when working with customized ET parameter definitions.
Greater Kitchener Waterloo Chamber of Comerce
Businesses Call for Urgent Action on Expanded U.S. Tariffs at Ontario Chamber AGM
As business leaders from across the province gathered for the 2026 Ontario Chamber of Commerce (OCC) AGM and Convention under the theme “Ontario Connected: Business Without Barriers,” a clear message emerged: the recent expansion of U.S. Section 232 tariffs is putting jobs, investment, and integrated supply chains at risk in Ontario, and across the binational Great Lakes region.
The recent expansion of U.S. duties to the entire value of steel, aluminum, copper and derivative products – not just the metal content – poses an immediate risk to 15,000 jobs in southwestern Ontario alone, and thousands more in manufacturing supply chains across the province and in U.S. states.
“After a year in which tariffs devastated manufacturing in both Canada and the U.S., this new measure throws another wrench in the engine of the North American economy,” said Daniel Tisch, President and CEO of the Ontario Chamber of Commerce. “These tariffs are not well-understood, and that’s why Ontario businesses are sounding the alarm. Without swift relief, orders will vanish, investments will be shelved, and good jobs will be lost.”
For many businesses, the strain is already visible. Companies report absorbing sudden cost increases, losing long-standing U.S. customers, and delaying or cancelling expansion plans. Some are scaling back production or pausing hiring decisions.
“Businesses need two things from governments right now: relief and resolution,” Tisch added. “In the short term, that means reinstating remissions and providing targeted cash-flow support. But we also need a durable fix, one that’s negotiated between the two nations. If we get this wrong, we’re not just hurting Ontario, we’re undermining North America’s competitive edge.”
As Canada and the United States prepare for the upcoming CUSMA review, Ontario’s business community is united in its message: protect what works, fix what doesn’t, and remove barriers that put jobs and communities at risk.
“Our Chamber supports the call from the federal and provincial governments to support business sectors that are being impacted unfairly targeted by Trump’s ridiculous tariffs. Support is needed now to help these sectors and their businesses get through this period of crisis before the CUSMA negotiations start. We cannot wait for the US midterm elections or a return to sanity in the White House. Action is required now, and we have full confidence that Canada and Ontario will step up again.”
— Ian McLean, President and CEO, The Greater KW Chamber of Commerce
The post Businesses Call for Urgent Action on Expanded U.S. Tariffs at Ontario Chamber AGM appeared first on Greater KW Chamber of Commerce.
Greater Kitchener Waterloo Chamber of Comerce
Time for Action: Business Leaders Warn of Investment Freeze in Waterloo Region
May 4th, 2026
Minister Harris,
We noted your recent letter related to the Region of Waterloo’s water crisis and agree immediate action is needed.
The business and investment community continues to be deeply concerned about the holding provisions on approved development applications, as well as the freeze on processing new applications. This uncertainty is effectively freezing investment decisions, resulting in capital and labour shifting to other jurisdictions.
At its core, businesses need certainty. They need to know when Waterloo Region will once again be “open for business.” As of today, it is not.
There is no question that this issue must be addressed, and we recognize that the Region has approved a range of immediate and medium-term infrastructure projects related to water. However, there is no immediate risk that justifies the complete shutdown currently in place.
The Region’s own timelines indicate that infrastructure renewal efforts will take 12 to 24 months to restore full development capacity. This timeline is unacceptable.
The following questions are on the top of mind of many in the Region:
– What is the timeline for lifting holding provisions on approved applications?
– When will new development applications be received and processed without delay?
The clarity to these critical questions cannot come months from now. Rather they must be made clear in a matter of weeks. Investment, financing, and skilled labour depend on confidence that Waterloo Region is a place for business and growth.
Once again, we agree the time is now for all of the relevant ministries and the Region to bring clarity and a clear timeline, so the Region is open for business.
Respectfully,
Ian McLean
President & CEO
Greater Kitchener Waterloo Chamber of Commerce
Greg Durocher
President & CEO
Cambridge Chamber of Commerce
The post Time for Action: Business Leaders Warn of Investment Freeze in Waterloo Region appeared first on Greater KW Chamber of Commerce.
The Baheyeldin Dynasty
What To Do When Linux Boots To A Grub Prompt?
What do you do when your Linux machine boots in a Grub prompt, and never proceeds to loading Linux and getting you a login prompt?
This happened to me a few weeks ago, and searching resulted in old advice that didn't work for me.
By the way, I am on Xubuntu 24.04 LTS, with UEFI, but this may apply to other distros.
Among things that you could try are:
- Hit Enter
- Type 'boot' then hit Enter
Other advice was to mount the EFI partition and so on.
What ended up working in my case is what I describe in the rest of the article.
- Read more about What To Do When Linux Boots To A Grub Prompt?
- Add comment
Kitchener-Waterloo Real Estate Blog
Waterloo Region Real Estate Market Update: May 2026
The Waterloo Region real estate market continued to show signs of stabilization in April 2026 as we moved further into the spring market. While overall activity remains steady, the pace of the market has changed. Buyers are still active, but they are being more selective, taking more time to compare options, and placing a stronger focus on value.
This is not a slow market. It is a more selective one.
For homeowners thinking about selling in Kitchener, Waterloo, Cambridge, or the surrounding area, the key takeaway is simple: the opportunity is still there, but strategy matters more than ever.
April brought a modest shift in overall market activity. Sales were down 7.6% year-over-year, while new listings remained relatively flat, down just 0.9%. Inventory also decreased 5.0% compared to April 2025, leaving the market with 3.6 months of supply.
While 3.6 months of inventory is in line with this time last year, it is still higher than what we have historically seen in more competitive seller’s markets. This means buyers have more choice than they did during the high-pressure markets of previous years, but demand has not disappeared.
From a pricing perspective, values remain modestly lower year-over-year, but there are signs of improved stability month-over-month. Prices have shown modest gains across several property types as the spring market has progressed, including single-family homes, townhomes, and condos.
Across Kitchener-Waterloo and Cambridge, prices remain down approximately 4% to 7% year-over-year, but the month-over-month improvement suggests the market is continuing to find its footing.
In April 2026, Waterloo Region saw:
- 561 homes sold, down 7.6% year-over-year
- Average sale price of $754,877, down 3.8% year-over-year
- 1,386 new listings, down 0.9% year-over-year
- 3.6 months of inventory, in line with last year
- Average days on market of 25 days, up 4.2%
These numbers point to a more balanced real estate market in Waterloo Region. Homes are still selling, but buyers are no longer rushing into offers with the same level of urgency we saw in previous years.
♦Source: Cornerstone Association of REALTORS®
What the Data is Telling UsWhile the year-over-year numbers still reflect softer pricing and slightly longer selling times, the more important takeaway is how the market is functioning today.
Inventory levels have improved, which gives buyers more options. Buyers remain active, but they are taking more time to compare homes, review pricing, and make decisions. Well-priced homes are still selling, but the market is more measured and price-sensitive.
We are also continuing to see strong showing activity and buyer engagement across Waterloo Region. However, offers are becoming more value-driven. Buyers are doing their homework, watching comparable sales closely, and responding more cautiously to homes they feel are overpriced.
This means pricing is playing a major role in how a home performs.
A home that is priced accurately from the beginning can still attract strong interest. A home that is priced too high may sit longer, require a price adjustment, or lose momentum during its most important first few weeks on the market.
Source: Cornerstone Association of REALTORS®
Single-Family Homes vs. Townhomes and CondosOne of the clearest trends in the April 2026 Waterloo Region housing market is the difference between property types.
Single-family homes have remained relatively stable, with sales holding flat month-over-month and only moderate price adjustments. Detached homes in strong neighbourhoods continue to attract serious buyer interest, especially when they are well-prepared, well-marketed, and priced in line with current market conditions.
Townhomes and condos, however, are experiencing softer demand. Sales in this segment are down 18.7% year-over-year, with longer days on market and higher inventory levels.
This divide matters.
While the overall Waterloo Region market remains active, not every property type is performing the same way. Condo and townhome sellers may need to be more strategic with pricing and presentation, especially as buyers compare more options and take longer to make decisions.
Homes are taking slightly longer to sell overall, particularly in the condo segment, but timelines remain reasonable when properties are positioned properly.
For sellers, the April 2026 market is not a “list it and wait for multiple offers” environment. The market has shifted, and buyers have become more careful.
That does not mean sellers are out of luck. It means the right strategy is essential.
Buyers are more informed. They are comparing neighbourhoods, property condition, recent sales, and asking prices before making a move. Overpriced homes are sitting longer, while well-prepared and well-positioned homes are still attracting strong interest.
With more inventory available, sellers are facing more competition. That makes pricing, presentation, and exposure more important than ever.
Before listing your home, it is important to understand:
- How your property compares to similar active listings
- What has recently sold in your neighbourhood
- How buyers are responding to your price point
- Whether your home is positioned properly for current demand
- How your marketing will help your property stand out
In this type of market, success comes down to more than simply putting a sign on the lawn. Sellers need a clear pricing strategy, strong listing preparation, professional marketing, and an understanding of how buyers are behaving right now.
♦ The Bottom LineWaterloo Region is in a more balanced spring real estate market.
This is not the high-pressure, multiple-offer market of past years, but it is still an active market where the right homes are selling. Buyers are out there, but they are more selective, more cautious, and more focused on value.
For sellers, that means the homes getting the strongest results are the ones that are priced accurately, presented well, and marketed strategically from day 1.
The opportunity is still there, but the margin for error is smaller.
Broader housing trends across Ontario and Canada continue to influence buyer behaviour in Waterloo Region.
The Bank of Canada has held its overnight rate steady at 2.25%, which has helped create a more stable borrowing environment for buyers. At the same time, elevated bond yields continue to place upward pressure on fixed mortgage rates. This is influencing how buyers approach affordability, monthly payments, and timing.
Affordability has improved slightly compared to last year, which is helping support ongoing buyer activity. However, buyers are still being careful. Many are watching rates, comparing options, and waiting for the right home at the right price.
Despite broader market uncertainty, Waterloo Region continues to show relative stability. The region remains supported by consistent demand, strong local employment, respected post-secondary institutions, and long-term buyer interest in communities such as Kitchener, Waterloo, and Cambridge.
Compared to many surrounding markets, Waterloo Region continues to perform steadily.
Buyers now have more choice and more negotiating power, but the market remains active, especially for well-priced homes in strong neighbourhoods. The biggest difference from previous years is buyer urgency.
Instead of rushing into offers, buyers are moving more thoughtfully. They are looking for value, reviewing comparable sales, and taking time to make confident decisions.
For sellers, this means your pricing and marketing strategy need to reflect the market we are in today, not the market we saw 2 or 3 years ago.
The Waterloo Region real estate market is continuing to find its footing as we move through the spring season. Conditions have become more balanced, and there are clear differences in how various property types are performing.
Single-family homes remain relatively steady, while condos and townhomes are facing more pressure from softer demand, longer timelines, and increased competition.
Buyers remain active, but they are approaching decisions more thoughtfully. They are focused on value, options, and whether a home is priced appropriately for today’s market.
The key takeaway is this: in today’s Waterloo Region real estate market, success comes down to a tailored approach. Understanding the competition, reading buyer behaviour in real time, and positioning your home strategically can directly impact your result.
If you are considering making a move this year, we would be happy to walk you through what these numbers mean for your home, your goals, and your specific situation.
The post Waterloo Region Real Estate Market Update: May 2026 appeared first on Kitchener Waterloo Real Estate Agent - The Deutschmann Team.
Andrew Coppolino
Ottawa and Canada’s 100 Best Restaurants
♦
Recently dropped was the list of Canada’s 100 Best restaurants and best bars. It’s a sparkling annual compilation that has appeared for about a decade, and the selections from across Canada are presented with an informative and engaging elan — plus it’s really fun just to dip in and, vicariously, “explore” some excellent restaurants from coast to coast.
Previous to the new May list being announced, I wrote a short introduction to Antheia, on Somerset West in Ottawa, for the C100B magazine: that story is here (available for purchase).
Otherwise, Pearl Morrisette, in Jordan Station, is numero uno on the list, while the inimitable Langdon Hall (which I recently very happily visited) checked in at 18: both are simply superb.
After only a few month open, and after quite a significant time as a work-in-progress for chef-owner Briana Kim, Antheia took its spot as C100B #76. Congrats to the staff and best wishes with what is probably one of Canada’s most unique venues.
And … it was terrific to also see a couple of other Ottawa restaurants make the list: Atelier (on my list to visit) registered #54, while Arlo Wine Bar — an absolute favourite spot of mine — took #77.
Photo/Jamie Kronick
Check out my latest post Ottawa and Canada’s 100 Best Restaurants from AndrewCoppolino.com.
Greater Kitchener Waterloo Chamber of Comerce
Ontario Provincial Budget 2026: What Small Businesses Need to Know
The 2026 Ontario Provincial Budget introduces a series of measures aimed at supporting business investment and improving competitiveness, with a particular focus on small and medium-sized enterprises. The most notable change is a reduction in the small business corporate income tax rate, alongside additional incentives intended to encourage capital investment and business growth.
The central feature of the budget is a reduction in Ontario’s small business corporate income tax rate, which will fall from 3.2% to 2.2% beginning July 1, 2026. This change applies to Canadian-controlled private corporations (CCPCs) on the first $500,000 of active business income.
For many small businesses, this change is expected to result in annual savings of several thousand dollars, depending on income levels and business structure. The intent of this measure is to improve after-tax profitability, strengthen cash flow, and support reinvestment within the small business sector.
The government estimates that a significant number of businesses across the province will benefit from the lower tax rate. Taken together with other business-related tax measures, the budget outlines multi-billion-dollar levels of total tax relief over the coming years. Overall, the direction of the policy reflects a continued effort to enhance Ontario’s competitiveness and support businesses operating in a high-cost and high-pressure economic environment.
The reduced tax rate applies specifically to Canadian-controlled private corporations earning active business income. The lower rate applies only to income up to $500,000 annually, with standard corporate tax rates continuing to apply beyond that threshold. As a result, the benefit is primarily concentrated among small and mid-sized businesses, while larger or rapidly growing firms will see the benefit taper as income increases beyond the eligibility limit.
In addition to the corporate tax reduction, the budget includes measures intended to support business investment and productivity. These include enhanced provisions that allow businesses to deduct eligible capital investments more quickly, including equipment, machinery, and technology-related assets. This change is intended to improve near-term cash flow by accelerating tax deductions.
The budget also strengthens support for manufacturing and industrial investment through an enhanced investment tax credit for qualifying capital expenditures. These measures are particularly relevant for capital-intensive sectors where reinvestment and modernization are key drivers of growth.
Important Trade-Offs and Longer-Term Considerations
While the budget introduces measures that reduce corporate tax liability, business owners should also consider the broader tax environment when planning. The benefit of the reduced corporate tax rate is limited to retained earnings within the business and applies only up to the specified income threshold. Federal corporate tax rates remain unchanged, meaning overall corporate taxation continues to be a combination of federal and provincial components.
In addition, as with any tax policy change, the overall impact for individual businesses will vary depending on their structure, income levels, and how profits are allocated between reinvestment and owner compensation.
What This Means for Business Owners
For many businesses, the most immediate impact will be improved cash flow at the corporate level and increased retained earnings. This may provide additional capacity for reinvestment in operations, staffing, and capital upgrades.
Businesses that prioritize growth and reinvestment are likely to benefit most directly from the combination of lower tax rates and enhanced capital investment incentives.
At the same time, owner-operated businesses should ensure they consider the full tax picture when planning compensation strategies, as corporate-level savings do not automatically translate into lower personal tax liability.
Overall, the 2026 Ontario Budget introduces a targeted reduction in small business taxation alongside measures intended to support investment and business growth. The reduction in the small business tax rate from 3.2% to 2.2% represents the most significant direct change for eligible businesses, improving after-tax cash flow and supporting reinvestment capacity.
The full impact of these changes will vary by business type and structure, making proactive financial and tax planning an important consideration as businesses assess how best to respond to the evolving policy environment.
The Greater Kitchener Waterloo Chamber of Commerce will continue to support our members through advocacy with all levels of government to assist Waterloo Region employers in maintaining and expanding their operations amidst our current economic uncertainties. We will ensure that relevant information is provided when available.
The post Ontario Provincial Budget 2026: What Small Businesses Need to Know appeared first on Greater KW Chamber of Commerce.
Elmira Advocate
I PROPOSE AN ANNUAL AWARD NAMED THE ROBERT REILLY DULY MEMORABLE BASTION OF ARTICULATE SOUL SEEKERS - 1ST RECIPIENT JUSTICE CRAIG PARRY
Justice Parry through his recent, courageous and forward seeking decision to put 48 female whiners and complainers in their place can only be given the due he deserves. With full knowledge that all the lefties, some righties, men and women of all shapes and colours would find fault with his independent, long thought out and incredibly humourous exaggerations that he used in order to calm the ever complaining masses. This award has of course been named after another giant of jurisprudence, Robert Reilly, who pioneered the advanced technique of dismissing witness credibility based upon zero evidence presented on the matter. Now of course Robert Reilly was a mere piker compared to Justice Craig Parry but innovators sometimes have to begin small. Both gentlemen have surmounted the tightly constrained and impeded bounds of logic, fact and reason with their obviously male talent of foresight, psychic vision and mind reading capabilities far in advance of their peers, their critics, and humanity in general.
This award known as the RR DUMBASS could easily have been mistaken for the name of their joint pleasure yacht the SS DUMBASS but for the foresight of Mr. Reilly's parents' naming abilities. It is rumoured that they too were giants in their fields as well. Clearly the apple does not fall far from the tree and Mr. Reilly's legal exploits are as equally balanced as his bicycle riding we are advised. Further praise and public recognition may be forthcoming for both gentlemen at the planned festivities outside the Elmira Waste Water Treatment Plant this Saturday at 11 am. All are welcome although sore losers and complainers will be met with Waterloo Region's finest batons and pepper spray.
Cordial Catholic, K Albert Little
Mary's Role in Prophecy and the Messiah's Return #shorts
James Davis Nicoll
Locked Inside My Memory / Darksight Dare (Penric & Desdemona, volume 16) By Lois McMaster Bujold
2026’s Darksight Dare is the sixteenth (!) Penric &Desdemona secondary universe fantasy novella from Lois McMaster Bujold.
Learned Penric, faced with two sad situations—a dying woman and a blinded man—decides to use what in our universe would be called the Reese’s Peanut Butter Cup solution. Satisfying two goals at once.
…
Cordial Catholic, K Albert Little
Jesus Fulfilled These 63 Messianic Prophecies (AND MORE!) (w/ Gary Michuta)
KWSQA
Wednesday, May 27, 2026 – The Moving Target of Software Quality
Register: Online at our KWality Talk Page, the attendance link will be included in an email the day of the event.
Location: Online. Please ensure that your onscreen name matches your registration name.
Time: The meeting starts between 11:55 am and 12:00 pm, a waiting room might be enabled if you arrive prior to this time. Meeting ends at approximately 1:00 pm.
Speaker: Tina Fletcher
Topic:
When I started my career twenty years ago, software quality basically meant “no bugs,” and testing meant executing a finite set of cases. Since then, I’ve watched the concept evolve alongside significant shifts in technology and industry practices. Because these changes have been largely additive, we face an ever-expanding horizon of what “good” software looks like.
In this talk, I offer a definition of modern software quality that incorporates the many expectations accumulated from technological and process trends such as Agile, automated testing, cloud hosting, DevOps, and AI. Drawing on my own painful experiences with neglecting or misunderstanding the evolving dimensions of quality, I’ll share examples of what I’ve learned from them and what effective practices can look like.
To help organize and categorize this laundry list of quality-related things to be responsible for, we will break them down into four key pillars:
- User Value: Building the Right Thing (strategic alignment, risk assessment, measurable impact)
- Product Health: Testing the Things We Can Predict (enabling and executing solid testing strategies)
- Operational Health: Dealing with the Unexpected (observability, recovery, non-derministic behaviour)
- Sustainability: Holistic Stewardship (security, cost, performance, accessibility, maintainability)
We’ll cover a series of questions to help you explore and audit your team’s practices in each area, followed by a set of prompts to help you determine where the next quality evolution is likely to come from in your context.
While the field may have been simpler when I began, the constant transformation is what has kept it exciting. Fortunately, today it’s easier than ever to learn a new skill that can bring more value to your users and your business. As a final thought, I hope to leave you with the realization that the most important software quality strategy is the willingness to adapt, evolve, and stay curious in an ever-changing landscape.
Bio:
Tina Fletcher is an Engineering leader who brings a software quality-focused mindset to the teams and projects she leads. She’s also a Director on the KWSQA Board, an occasional conference speaker, and a bit obsessed with her vegetable garden. Find her online at tinafletcher.ca.
Github: Brent Litner
brentlintner pushed vim-settings
-
♦
0b7f62eShould be using smart case insensitive searching
The Backing Bookworm
The Forgotten Midwife
Set in Ireland with dual timelines with resilient women at its heart, I was thrilled to read this book as I travelled across Ireland two weeks ago - our train even passing through the town where the book is set (Thurles, County Tipperary).
The story follows two women: 1950's - Margaret Lannigan is forced by her family and her priest to abandon her future plans to become a nun at a convent with secrets of its own.
Present-day - Riley is a young woman who is searching for answers and her family's history and unearths more than she could ever imagine.
This is my first book by Irish author Laura Anthony, and it won't be my last. Her story, which is inspired by real events, pulled me immediately into the Irish setting, Irish history and lives of these two women.
I appreciate how Anthony doesn't shy away from emotional elements: the few choices granted women of the time, the suppression and outright denial of women's rights, the power of the Church and the greed of those who were meant to help and lead others. While there could be a sense of hopelessness with this heavy subject matter, Anthony gives readers characters they will cheer on; those who go against the greater power with subterfuge and determination to make the lives of others better. There are also characters you'll love to hate (I hold a serious grudge, so I wish they suffered worse fates).
Poignant, powerful and thought-provoking, this read shows how individuals can make a big impact despite going against a much greater power. It's a story about resiliency and the tenacity of the 'underdog' that will give readers (and book clubs!) much to discuss. Highly recommended.
Disclaimer: My sincere thanks to Gallery Books for the complimentary digital advanced copy of this book that was given to me in exchange for my honest review.
My Rating: 4.5 starsAuthor: Laura AnthonyGenre: Historical FictionType and Source: ebook from publisher via NetGalleyPublisher: Gallery Books (S&S) First Published: May 12, 2026Read: April 19-29, 2026
Book Description from GoodReads: Set in the dual timelines of present-day and 1950s Ireland and based on real historical events, a powerful, poignant novel of feminism and resilience that follows the life of a young woman consigned to work in a home for “fallen girls” who quickly realizes she must risk everything to protect them.
New Jersey, 2023. Riley Carmichael is getting married and finally joining a huge, loving family but can’t help but feel the emptiness of her own side of the church. For most of Riley’s life it’s just been her and her wonderful grandmother, Betty, but as late-stage dementia overtakes her grandmother’s mind, Riley knows she’s losing her, too. On one of Riley’s visits to Betty’s nursing home, she encounters her grandmother in one of her increasingly rare moments of lucidity as Betty desperately hands Riley a tatty birth certificate for an unknown baby born in Ireland in the 1950s. Full of questions about her heritage, Riley embarks on a trip to Ireland to find that elusive sense of home.
Tipperary, Ireland, 1954. Margaret Lannigan’s life is made up of weekly dances and spending time with the love of her life, Joseph. But when Margaret’s older sister suddenly passes away, it falls to Margaret to fulfill the family’s commitment to the the eldest daughter of the Lannigan family has joined the Sisters of Mercy nuns for generations. Forced to part with Joseph and take the veil, Margaret is sent to a Home for Fallen Girls to care for expectant mothers who fell pregnant outside of marriage. With no training or midwifery skills, she must fight to provide compassionate care she feels these women deserve amid the cruelty and abuse they face.
When Margaret meets a young and terrified Delia O’Rourke, the sister of her childhood best friend, she must find the strength she needs to protect this young woman and her baby in the face of a system built to ensure they disappear.
Based on true historical events, The Forgotten Midwife is a powerful and emotional story of the women lost to Ireland’s “mother and baby homes,” as well as the young women forced to join the orders that ran the establishments. Told with courage and heart, it’s a haunting, hopeful novel of feminine strength, found family, and love that transcends oppression.
♦
Child Witness Centre
Spring Appeal: Make a Powerful Difference for Local Kids
Dear Friend,
This spring, we’re sharing a difficult truth. For many children and youth who have experienced abuse or crime, the impact doesn’t end when the harm stops.
It can live on in anxiety, in fear, in sleepless nights and overwhelming thoughts.
Children like Jenna.* When Jenna first came to us, she was quiet and withdrawn. She stayed close to her caregiver, unsure who she could trust.
But with the right support, something powerful can begin to change.
♦At Child Witness Centre, children and youth are met with compassionate, trauma-informed care that helps them begin to feel safe again.
- They begin to understand what they’ve experienced.
- They learn ways to cope with difficult thoughts and emotions.
- They rebuild confidence, connection, and a sense of control.
Right now, your gift will be matched – doubling your impact. All donations will be matched up to $5,000, thanks to Badge of Hope.
That means twice the support, twice the care, and twice the opportunity for a child like Jenna to begin healing.
Warmest regards,
Robin Heald | Executive Director
*Name changed to respect confidentiality. This child’s story reflects countless clients we support on a regular basis.
Giving options include: on our website, by phone (519-744-0904) with your credit card, by e-transfer, or by mailing/delivering a cheque payable to Child Witness Centre to our office (111 Duke St E, Kitchener, ON N2H 1A4). Thank you!
The post Spring Appeal: Make a Powerful Difference for Local Kids first appeared on Child Witness Centre.
Kitchener Panthers
2026 SIGNING TRACKER: OF Mateo Zeppieri
♦
KITCHENER - The Kitchener Panthers are proud to announce the signing of outfielder Mateo Zeppieri.
The 23-year-old hit .289 with the Panthers last season, primarily slotted in as the lead off hitter.
He had 24 hits, including 11 for extra bases. Six of those were home runs.
He is coming off his final year at Richmond, where he saw limited action.
Previously, he was with Mount St. Mary's University (NCAA D1), where he hit .231 in spring 2025. He had 12 home runs and 40 RBI in 48 games with the Mountaineers.
"I'm excited to have Mateo start the season with us this year," said general manager Shanif Hirani.
"As soon as he joined our team midway through last season, he flashed his elite power, but also helped solidify our outfield defence. His all around game complements our lineup really well."
============
MATEO ZEPPIERI
- Bats/Pitches: L/R
- Hometown: Newcastle, ON
- Birthdate: April 8, 2003
- Pronunciation: muh-TAY-oh ZEP-ee-AIR-ee
Child Witness Centre
2026 Annual Meeting
We hope you will join us on Monday, June 8, at 6:00 p.m. to learn about our collective impact in the community! This hybrid meeting will take place in person inside the Hampton Hospitality Room at Hampton Inn & Suites – Waterloo St. Jacobs (55 Benjamin Road, Waterloo) and virtually on Microsoft Teams.
Please RSVP (for free) on this Eventbrite page. If you’re planning to attend virtually, please also send an email to admin@childwitness.com by 12:00pm on Monday, June 8. The link will be emailed out shortly before the meeting start time.
In our 2025-26 fiscal year, we supported 975 children and youth, and 770 caregivers, in Waterloo Region, Guelph, and Wellington County. These young victims and their families experienced healing and empowerment for brighter futures. It will be wonderful for us to share more at our Annual Meeting!
The post 2026 Annual Meeting first appeared on Child Witness Centre.
KW Habilitation
KW Habilitation Health and Wellness Fair
You’re invited to a Health and Wellness Fair at KW Habilitation, a free, fun, and inclusive event focused on promoting well-being for everyone in our community!
Location: 99 Ottawa Street South, Kitchener
Date & Time: June 4, 2026 from 6:00 PM – 7:30 PM
Cost: Free!
Who’s Welcome: Everyone!
RAFFLE PRIZES TOO!
This event brings together a wide range of local vendors and wellness activities designed to support your mind, body, and community connections. Whether you’re looking to explore new wellness services, learn about community resources, or just enjoy a relaxing evening, there’s something here for you.
Vendor Highlights Include:
- Medical Device and Supply Providers: Westmount Place Pharmacy, Silver Cross, Adaptive Clothing
- Community Activities and Groups: Special Olympics, Sports for Special Athletes, Red Line Fitness
- Health and Aging: Arnold Hearing Centre, Hospice Waterloo Region, St. Mary’s Health @ Home
Crescendo Choir Performance
6:00 PM – 6:20 PM in the Parking Lot
Enjoy a live performance from Crescendo Choir, WRDSBs Special Education Choir that will lift your spirits and celebrate our community’s talent.
Tae Kwon Do Demonstration
6:30 PM – 7:00 PM in the Parking Lot
Be inspired by a high-energy martial arts demo showcasing strength, focus, and discipline.
Please note: There is no parking available at 99 Ottawa Street South.
Free parking is available nearby at:
- 124 Sydney Street
- 85 Ottawa Street South
Come connect with local organizations, learn about healthy living options, and enjoy activities that focus on wellness in all forms. We can’t wait to see you there!
The post KW Habilitation Health and Wellness Fair appeared first on KW Habilitation.
Cordial Catholic, K Albert Little
The Bible or Tradition?! #apologetics #bible #jesus #christian #catholic
Code Like a Girl
Why Your Brain Keeps Choosing Good Looks Over Good Logic
Why our brains keep choosing aesthetics over logic — and how it’s quietly shaping the future of work.
♦Automatic Rendering: How our brains “fill in the blanks” before we even process the substance. (Image generated by the author using Google Gemini)There’s an invisible variable shaping more of our lives than most of us are comfortable admitting. It doesn’t show up on resumes, no recruiter will ever say it out loud, and yet it quietly influences who gets attention first, who gets trusted faster, and who gets remembered longer. The more I pay attention to it, the more it feels less like a personal trait and more like a background system, something always running, rarely questioned, but constantly affecting outcomes.
We call it pretty privilege. And honestly, the name still feels too soft for how much impact it actually has.
The Moment I Stopped Believing in Meritocracy♦The Halo Effect: When the shadow of perception outshines the reality of the work. (Image generated by the author using Google Gemini)I didn’t arrive at this idea through theory. It came from small, forgettable moments that started stacking up into a pattern I could no longer ignore. Try to remember your last Zoom meeting. Not the agenda or the metrics, but the screen itself. Those small rectangles lined up in silence, each one waiting for its turn to speak. Someone leans slightly closer to the camera, inhales like they’re about to contribute something important, and then it happens. Another voice cuts in. A different square lights up. The first microphone flickers on, then off again. No one calls it out, but everyone notices.
Same meeting. Same topic. Same level of competence.
Different gravity.
At some point, I stopped asking who was better. I started asking something more uncomfortable. Why does it feel like the room has already decided before the conversation even begins?
Why Our Brains Love “Automatic Rendering”We’ve spent years swallowing the promise of meritocracy. Work hard, be competent, and things will align. I used to believe that almost by default because it offers a clean narrative and a sense of control. But the more you observe how people respond to each other in real situations, the harder it becomes to ignore the cracks. Put two equally capable people in the same room and something shifts before either of them completes their first sentence. One is read as confident almost instantly, while the other has to earn that label slowly, sometimes painfully. Same idea. Same delivery. Different starting line.
Psychology calls it the halo effect, but that term feels too polite for what’s actually happening. If I’m being honest, it feels more like Automatic Rendering. The brain upgrades the visuals before it processes the substance. When someone attractive speaks, their ideas seem sharper, more structured, more convincing, as if you’re watching them in high resolution with perfect lighting. Someone else might be delivering something equally valuable, but it lands flatter, like the connection isn’t quite stable.
And here’s the part that stays with me.
We don’t feel like we’re being unfair when it happens. We call it intuition. We trust it. But in reality, it’s often just the brain taking a shortcut, choosing efficiency over accuracy, and disguising that shortcut as insight.
Legacy Software in a Digital WorldBlaming modern culture alone feels too easy. This didn’t start with social media. Evolution doesn’t care about your meritocracy; it cares about efficiency. Our brains are still running legacy software from a time when quick visual judgment meant survival. There’s a biological layer behind it that’s hard to ignore. When we see symmetry or conventionally attractive features, the brain triggers small dopaminergic rewards, subtle signals that say, this feels right. That reaction happens before logic even has a chance to load.
It’s a survival shortcut that simply hasn’t been updated, running legacy code in a high-speed digital world.
Before the internet, these biases had physical limits; they were confined to offices, classrooms, and small social circles, which made them easier to overlook because their impact felt localized. But the moment the feed replaced the room, those boundaries disappeared. First impressions are no longer handshakes, they are scrolls, repeated hundreds of times a day, turning something once situational into something constant.
Algorithms don’t care about fairness. They care about eyeballs.
An attractive face functions like a perfectly optimized thumbnail. It buys you a second of attention, just enough to interrupt someone’s scrolling pattern. That second becomes a pause, the pause becomes engagement, and the system quietly amplifies it. More reach leads to more visibility, and more visibility starts to look like credibility. Over time, the line between perception and merit begins to blur, until the advantage feels earned, even when it wasn’t neutral to begin with.
First Impressions are Now Handshakes with AlgorithmsThe more I observe platforms like LinkedIn, the harder it is to ignore how subtle this has become. A well-lit photo, a clean aesthetic, a face that fits a certain mold, and suddenly the exact same idea feels sharper, more trustworthy. Nothing about the substance changes. Only the packaging does.
The Aesthetic Audit in TechThis becomes even more layered when you look at women in tech.
I’ve seen a female software engineer spend hours solving a deeply complex production issue, breaking it down into something clear and accessible, and sharing it publicly. It’s the kind of content that should trigger thoughtful discussion, maybe even admiration for the technical depth behind it. But look at the comment section, and you’ll see the halo effect mutate into something more subtle and more frustrating. While she’s presenting a masterclass in debugging, the feedback loop drifts toward her lipstick shade, her headphones, or the aesthetic of her workspace.
The 200 lines of elegant, complex logic become a footnote to her appearance. We aren’t auditing her technical depth; we’re auditing how she looks while explaining it.
Another developer builds credibility slowly through consistent, thoughtful contributions. Real effort, real substance. Then something shifts. People start questioning whether her visibility is entirely earned, hinting that appearance might be part of the equation. It’s rarely said directly, but it lingers in tone and implication. And what’s striking is how unevenly that suspicion is distributed.
For a while, I thought this might just be my own pattern recognition going too far. Maybe I’m overthinking this. Maybe I was projecting meaning onto something neutral. But the more I looked into it, the harder it became to dismiss.
The Competence Premium: What the Science SaysThis isn’t just a subjective observation; it’s a quantified bias. Researchers from have found that we instinctively assign a Competence Premium to individuals we perceive as attractive, rating them higher even when their qualifications are identical to others. Experiments from push this further, showing that this bias doesn’t stop at first impressions. It influences salary expectations, shapes hiring decisions, and quietly determines who we see as leadership material before they’ve even had the chance to lead.
So this isn’t just perception. It translates into measurable outcomes.
I keep seeing conversations about pretty privilege collapse into two extremes. One side insists everything is purely merit-based, as if perception plays no role at all. The other treats appearance as the main explanation for success, reducing everything to aesthetics. From what I’ve seen, both positions miss something important.
Attractiveness doesn’t guarantee success. But it shifts the starting point in ways that are easy to overlook and hard to measure in isolation. It smooths first interactions, reduces friction, and builds trust faster than it logically should. Those small advantages compound over time.
You start noticing it in subtle ways. Someone gets interrupted less. Someone’s rough idea is treated as promising, while someone else’s polished explanation is met with skepticism. Someone gets described as naturally confident, while another is asked to prove it repeatedly. None of these moments seem significant on their own, but together they form a pattern that’s difficult to ignore.
Zoom out far enough, and that pattern becomes structural. Certain types of faces appear more frequently in visible positions. Not always intentionally. Not always consciously. But consistently enough to shape expectation. Over time, people begin associating specific appearances with competence, even if they would never openly admit it.
That’s the point where this stops being about individuals and starts influencing who gets seen, who gets heard, and who gets opportunities in the first place.
“Awareness doesn’t uninstall the system. It just exposes it.”The Power of the Pause♦Seeing honestly requires a moment of hesitation in a world driven by split-second impressions. (Image generated by the author using Google Gemini)
And knowing all of this doesn’t magically fix anything. I’ll probably still catch myself trusting a well-lit profile picture faster than I should tomorrow.
But now, there’s something new in the loop. A moment of hesitation that didn’t exist before. And in that split second, we find something small, but real.
A choice.
Maybe this awareness won’t fix the system tomorrow morning. But the next time your finger pauses on a post, or you’re about to cut someone off in a meeting, stop for a second.
Ask yourself something uncomfortable.
Is this really about the quality of the work?
Or are you just reacting to how good it looks?
Because in a world driven by perception, admitting that you can be fooled might be the only way to start seeing honestly.
♦Why Your Brain Keeps Choosing Good Looks Over Good Logic was originally published in Code Like A Girl on Medium, where people are continuing the conversation by highlighting and responding to this story.
Code Like a Girl
How I Used Notion AI’s Agentic Features to Build a Self-Updating Learning Plan for My Preschooler
♦
Seed data, multi-document reasoning, and GPT-5.2 in Notion AI
Continue reading on Code Like A Girl »
Elmira Advocate
CREDIT GOES TO SANDY SHANTZ FOR ANNOUNCING HER STEPPING DOWN EARLY
Instead of delaying her announcement that she wasn't running and hence possibly being viewed as a "lame duck" mayor by both her Woolwich and regional colleagues; she has announced already that she is not running for Woolwich Mayor again this October. Hallelujah albeit the damage is done and the last ditch chance to reverse Woolwich Township's disgraceful "water crisis" legacy is now well past. The Township rolled over early and joined the Uniroyal Chemical fellow travellors' cheerleading group. After the new CPAC (2011-2015) changed the channel and set the new direction however it was Sandy Shantz who re-embraced Uniroyal/Chemtura, kicked out CPAC and went back to the status quo of much talk and little action or cleanup.
Uniroyal and their corporate successors have made a laughing stock of local democracy and of the provincial Ministry of Environment (MECP). Clearly our provincial environmental laws are absolutely no match for multi billion dollar, multi national corporations with large legal budgets and tiny ethics and decency. No effort was ever spared by the polluters to minimize their cleanup costs and enhance their soiled reputations. And our local councils aided and abetted that over decades to their everlasting shame.
To date I believe that councillor Eric Schwindt has thrown his hat into the ring. I guess I'm not terribly surprised nor alarmed although I will admit my knowledge of him is limited. What I have seen over the last four years has been positive in a number of areas . I do not know if there will be other contenders or not although it seems likely. You know I can live with a mayor with a different background than myself but dear God at least let them have an open mind regarding our public water supply and they must put the public interest first in all matters. They must not be beholden to developers, builders, industrialists or our local big shots or for that matter any other self-serving groups especially including regional and provincial governments.
Code Like a Girl
What Fear Costs Your Team Over Time
♦
Fear can make leaders play safe by sticking with the status quo, avoid decisions with unknowns and uncertainty to limit mistakes, people…
Continue reading on Code Like A Girl »
Aquanty
HydroSphereAI Case Study: Spring Freshet Forecasting for Hydropower Risk Awareness – Vermilion River Ontario (Station: 02CF011 - VERMILION RIVER NEAR VAL CARON) – April 2026
HydroSphereAI’s machine learning-driven forecasting system.
Between April 15 and April 22, 2026, watersheds across Greater Sudbury experienced a significant spring flood event driven by rapid snowmelt and sustained rainfall. A Flood Warning issued by Conservation Sudbury highlighted elevated inflows across the region, including the Vermilion River system near Val Caron.
While the Vermilion River is not a regulated hydropower system, Water Survey of Canada Station 02CF011 (Vermilion River near Val Caron) provides a comparable watershed area for understanding naturalized inflow dynamics relevant to hydroelectric operations across northern Ontario.
This case study demonstrates how HydroSphereAI (HSAI) captured the timing and magnitude of peak flows during a complex spring freshet event, and how similar forecasting capability can support hydropower decision-making.
♦Vermilion River Ontario. Vermilion River near Val Caron (Station 02CF011).
Why This Event Matters for Hydropower
Spring freshet events represent one of the most operationally challenging periods for hydroelectric utilities. Even in unregulated basins like the Vermilion River, the hydrologic behaviour observed is directly transferable to regulated systems. During this event rapid snowmelt combined with rainfall generated sustained high inflows. Peak discharge of 104 m^3/s occurred on April 19, following several days of rising flow, with flows exceeding 83 m^3/s (a 1 in 20 year flow rate) for 4 consecutive days from 2am on April 18th until 11pm on April 21st. Flood warnings were issued by Conservation Sudbury on April 15th and April 17th, highlighting Val Caron and surrounding areas as high-risk zones.
For hydropower operators, similar inflow conditions can translate to reservoir level exceedance risk, spillway activation and flood routing decisions, reduced flexibility in generation scheduling and increased downstream flood liability.
Comparable Watershed for Regulated Systems
The Vermilion River basin upstream of station 02CF011 exhibits characteristics common to many hydroelectric operational locations in Ontario, including a mixed storage response (lakes and wetlands) , snowmelt-dominated hydrology, sensitivity to rain-on-snow events and multi-day hydrograph peaks rather than flash responses. Although no dam is present at this site, the observed inflow dynamics closely resemble naturalized inflows to hydroelectric reservoirs, making it an ideal test case for forecasting performance.
Forecasting Challenge for Hydropower Operations
Spring inflow forecasting is particularly complex due to uncertainty in snow water equivalent and melt rates and nonlinear runoff generation during rain-on-snow events. The temperature-driven variability in timing of peak inflows and prolonged inflow periods often require multi-day operational planning. For hydroelectric facilities, the key challenge is not just predicting that inflows will rise, but accurately forecasting when peak inflow will occur, what maximum flow rates to expect, and how long elevated inflows will persist.
HydroSphereAI Performance Overview
HydroSphereAI demonstrated strong predictive capability at station 02CF011 (Vermilion River near Val Caron) throughout the event:
April 11 (8-day lead time):
Early forecasts identified a developing inflow event, providing advance notice of potential operational stress. The model was already tracking the timing and magnitude of peak inflow with high accuracy, enabling early planning.April 15–22 (Flood Warning period):
Forecasts remained stable as inflows increased, aligning closely with observed hydrograph trends. Short-range forecasts (1–3 day lead time) performed particularly well between April 17 and April 20, closely matching both the rate of rise and sustained peak conditions, further reinforcing confidence during critical operational decision-making periods.Peak Capture (April 19):
HydroSphereAI accurately predicted the timing of peak inflow, maintaining consistency throughout.Forecast Convergence:
As lead time decreased, uncertainty narrowed, supporting higher-confidence operational decisions.
Operational Value for Hydropower
HydroSphereAI’s performance in this event highlights several direct applications for hydroelectric operators:
Advanced Inflow Forecasting
Early detection (up to 10 days ahead) enables pre-emptive reservoir drawdown and optimization of storage capacity ahead of peak inflow.Surplus Flow and Flood Management
Accurate peak timing supports controlled spillway operations and reduced downstream flood risk.Generation Optimization
Reliable inflow forecasts allow operators to maximize generation during high inflow periods and avoid reactive or suboptimal dispatch decisions.Risk Reduction
Improved foresight can improve emergency operational responses and reduces infrastructure stress during peak events.
Conclusion
The April 2026 spring freshet event across the Sudbury region illustrates the type of inflow dynamics that hydroelectric operators must manage each year. Even in an unregulated system like the Vermilion River, the observed hydrologic response, driven by snowmelt, rainfall, and basin storage, closely mirrors conditions experienced at hydroelectric reservoirs.
HydroSphereAI’s ability to detect early inflow signals , accurately forecast peak timing and maintain consistency across a multi-day event demonstrates its value as a decision-support tool for hydropower operations. As climate variability increases the uncertainty and intensity of spring inflows across Canada, AI-driven forecasting platforms like HydroSphereAI provide utilities with the actionable intelligence needed to improve reservoir management, optimize generation, and enhance flood resilience.
James Davis Nicoll
Dress You Up / My Dress-Up Darling, volume 1 By Shinichi Fukuda
My Dress-Up Darling, Volume One is the first tankōbon in Shinichi Fukuda’s romantic comedy manga series (tankōbon is titled “Sono Bisuku Dōru” in the original Japanese). Dress-Up was serialized in Square Enix’s seinen manga magazine Young Gangan from January 2018 to March 2025.
Although he assures his grandfather that he has friends, high schooler Wakana Gojo is a loner. This is because Gojo has a dreadful secret, a dark passion that he is desperate to ensure none of his classmates ever learn.
Gojo is an aspiring doll-maker.
…
Brickhouse Guitars
Pierre Explaining Assembly Mold - Interview From Boucher Guitars
KW Linux User Group(KWLUG)
2026-05: Incident Response, LibreTime
Thomas Busch discusses how to respond to security incidents. Bob Jonkman discusses how he uses LibreTime to manage the Radio Waterloo radio station. See kwlug.org/node/1463 for additional information, slides and other auxiliary materials. Note that this audio has had silences clipped.
Code Like a Girl
Readability vs. Performance: What Should You Optimize First?
Should performance be important? Absolutely yes.
Should it be your starting point? Not really.
I recently ran a poll on LinkedIn where 71% of engineers said they prioritize performance over readability. That instinct isn’t surprising. Performance feels tangible. Faster systems, lower latency, better benchmarks — it’s measurable, visible, and often celebrated.
But here’s the catch: most engineering work doesn’t fail because the code was too slow. It fails because the code was too hard to understand.
Early in your career, this distinction is easy to miss.
You’re drawn to writing clever code. Optimized logic. Compact solutions. It feels like real engineering. But over time, you start realizing that code is not written for machines — it’s written for people who have to read, debug, extend, and trust it.
That’s where readability quietly becomes a force multiplier.
Readable code reduces the time spent deciphering intent. It makes debugging less of a guessing game and more of a structured process. It allows teams to collaborate without constantly reinterpreting each other’s work. And perhaps most importantly, it ages well. Systems evolve, teams change, and requirements shift—but readable code adapts without breaking under its own complexity.
It also has practical advantages that are easy to underestimate. Clean, understandable code lowers onboarding time for new engineers. It reduces the chances of introducing subtle bugs. It makes testing more straightforward. Over time, this directly translates into lower maintenance costs and less technical debt.
That said, performance is not optional — it’s contextual.
There are systems where performance is the product. Real-time gaming, high-frequency trading, large-scale data processing — these domains demand precision and efficiency. In such cases, optimizing code is not premature; it’s essential.
Performance can also unlock real business value. Faster systems can handle more users, reduce infrastructure costs, and provide better user experiences. In competitive environments, these gains matter.
But here’s the nuance most engineers miss: performance should be intentional, not instinctive.
You don’t start with optimization. You start with clarity. You build something correct, understandable, and measurable. Then you identify bottlenecks. Then you optimize—with purpose.
This is what Donald Knuth was pointing to when he said, “Premature optimization is the root of all evil.”
Not that optimization is bad—but that optimizing without context leads to unnecessary complexity with little payoff.
The real skill is not choosing readability over performance or vice versa. It’s knowing when each matters more.
Early in your career, bias toward readability. It will teach you how systems work, how teams collaborate, and how to write code that survives beyond your immediate use case. As you grow, you’ll develop the judgment to selectively optimize where it actually counts.
Because in the end, performance might give you a thrill — the satisfaction of efficiency, speed, and precision.
But readability gives you something far more enduring: stability, clarity, and trust in the systems you build.
And in most real-world systems, that’s what scales.
♦Readability vs. Performance: What Should You Optimize First? was originally published in Code Like A Girl on Medium, where people are continuing the conversation by highlighting and responding to this story.
Code Like a Girl
How I Use AI as a Product Data Scientist (A Year In)
I didn’t notice the shift while it was happening.
It only became clear when I looked back at how I worked a year ago compared to now.
The tools changed, but more than that, the nature of what I spend my time on changed, in a way that’s hard to reverse once you see it.
What my work used to look likeA year ago, a large part of my week was operational.
Cleaning data, writing SQL and Python, producing ad-hoc analyses, building dashboards that stakeholders would inevitably come back to and ask me to update.
A lot of repetition, much of it necessary to make sure the final output actually fit their use case.
That layer has started to shift. For me, the change wasn’t from “using AI as a helper” to “using AI more”, it was from using AI as a tool to building agentic skills, MCP servers, LLM applications, as part of my job.
What I actually use, and for whatThe fundamentals of my role haven’t changed, but the shape of it has. I’ve gone from a builder of dashboards to a curator of domain context and a builder of AI systems.
- Codex and Claude Code for generating code, refactoring, and code review. Most of the time it’s faster than writing it myself. Sometimes it’s not, I’ll come back to that. 👀
- Claude / ChatGPT for first-pass analyses. I feed in a previous analysis and ask it to draft a new one for a similar problem. I still rewrite most of it, but starting from a draft is much easier than starting from a blank page.
- Agent and skill building for the parts of my work that repeat. Here I’m not the writer of the analysis, I’m the conductor, making sure the AI’s logic aligns with business goals.
The bigger change wasn’t speed. It was scope.
A few weeks ago, a UX researcher reached out asking me to help understand a product behavior pattern. The analysis involved building a logistic regression to understand what drives users to return (for a product I don’t own).
A year ago, that kind of cross-functional ask would have required real setup: scoping the work, routing it to a data scientist to do the analysis, even for a proof of concept.
Now, stepping into an adjacent problem is much easier, because execution isn’t the limiting factor anymore. Judgement is.
Our team is also building an LLM-powered internal tool right now, even though none of us are full-stack web developers. The gap between “what I know” and “what I can build” has narrowed, not because we suddenly became experts, but because the execution layer is no longer where the time goes.
And this isn’t unique to data roles. I see engineers building tools outside their main stack, designers prototyping with code, PMs running their own analyses.
The shape of what someone can do at work is changing across the entire workforce.
Where my time actually goes nowLess coding. More everything else.
More time talking to PMs and stakeholders to understand what they need to move faster.
More time on the deep analyses where the pattern looks fine on the surface and only gets interesting when you push on the assumption underneath.
More time deciding what’s even worth building in the first place.
AI is fast at implementation, but it’s not yet reliable at knowing what’s meaningful to pursue. It tends to over-engineer when the context isn’t constrained, so part of my job is now framing the problem tightly enough that the output stays grounded. Strong references in, useful output out.
What I won’t outsourceEven with all this, there are parts of my work I still do myself.
I talk to PMs and stakeholders directly to understand what they actually need before any code gets written. I sanity-check data across sources manually, that’s the kind of work where being wrong is expensive and AI shortcuts haven’t earned my trust yet.
I design the experiments and write the recommendation at the end of an analysis, because AI lacks the domain knowledge to decide which metrics are worth tracking and which trade-offs are worth accepting.
There are also moments where writing the code myself is just faster than waiting for AI to generate and review it. I’ve stopped forcing it.
The point isn’t to use AI for everything, it’s to use it where it actually helps. For small code updates and edits, I let it handle the work. For framing, judgment, and decisions, that part stays mine.
💭 Final ThoughtsWhen writing code becomes easy, deciding what to build becomes the real bottleneck.
A year ago, you could still get by as a primarily execution-focused data scientist, someone who writes the SQL and python codes, builds the dashboard, answers the request. I don’t think that’s enough anymore.
The value is shifting toward understanding the business, the KPIs, the system behind the product. Toward being the person who uses AI as an execution layer, rather than being the execution layer.
I’ve stopped thinking about it as replacement and started thinking about it as positioning.
That’s the part of the year that actually changed me.
Xoxo,
Kessie 🧚
♦How I Use AI as a Product Data Scientist (A Year In) was originally published in Code Like A Girl on Medium, where people are continuing the conversation by highlighting and responding to this story.
Code Like a Girl
Confessions of Building a Digital Wardrobe in C++
♦
By Someone who is trying to learn C++
Continue reading on Code Like A Girl »
Code Like a Girl
The Evolution of Cybersecurity: From Simple Defenses to Intelligent Warfare.
Cybersecurity, intrestingly, didn’t start as the complex, high-stakes battlefield you know it today to be. It evolved quietly at first, and then, rapidly.
As technology became deeply braided into every aspect of human life. What began as basic system protection transformed into a continuous, intelligent fight against highly adaptive adversaries.
♦Photo by Boitumelo on UnsplashThe Early Days: When security was simply an afterthoughtIn the 1970s and 1980s, cybersecurity wasn’t a defined field. Computers were isolated systems, used mainly by governments, research institutions, and large corporations. The primary concern wasn’t external attacks , it was system functionality.
One of the earliest known cybersecurity incidents, the Creeper Virus, was more of an experiment than a threat. It displayed a simple message and spread across ARPANET. Shortly after, the Reaper Program was created to remove it , marking the birth of defensive security.
At this stage, security was minimal, and at large, experimental.
The 1990s changed everything. With the rise of the internet, systems became interconnected — and vulnerable.
Malware evolved from harmless experiments into destructive tools. Attacks like the ILOVEYOU Virus and the Melissa Virus demonstrated how quickly threats could spread globally, causing billions in damage.
This era introduced:
- Antivirus software as a standard defense.
- Firewalls to control network traffic.
- Intrusion Detection Systems (IDS).
However, defenses were still largely signature-based; meaning they could only detect known threats. Attackers quickly learned to stay one step ahead.
The Modern Age: Sophisticated and Persistent ThreatsAs organizations digitized operations, cyberattacks became more targeted, strategic, and financially motivated and personal.
The emergence of Advanced Persistent Threats (APTs) marked a turning point. These weren’t random attacks — they were carefully planned campaigns designed to infiltrate, remain undetected, and extract value over time.
Incidents like Stuxnet showed that cyber warfare had entered the geopolitical stage. Meanwhile, ransomware attacks such as WannaCry disrupted healthcare systems, businesses, and governments worldwide.
Key advancements during this period included:
- Security Information and Event management (SIEM) systems.
- Endpoint Detection and Response (EDR).
- Cloud security frameworks.
- Zero Trust architecture.
Cybersecurity was no longer just IT’s responsibility — it became a business-critical function.
The AI Revolution: A Double-Edged SwordArtificial Intelligence is now redefining cybersecurity on both sides of the battlefield.
AI enables:
- Threat detection at scale through behavioral analysis.
- Anomaly detection beyond known signatures.
- Automated response systems that act in real time.
- Predictive intelligence to anticipate attacks before they occur.
- Machine learning models can analyze massive datasets far faster than any human team, identifying subtle patterns that signal compromise.
At the same time, attackers are leveraging AI to:
- Automate phishing campaigns with personalized content.
- Develop polymorphic malware that constantly changes form.
- Bypass traditional detection systems.
- Generate deepfakes for social engineering attacks.
Cybersecurity today is moving toward proactive and intelligence-driven defense. Some of the most impactful advancements include:
- Zero Trust Security: Never trust, always verify — every access request is continuously validated.
- Extended Detection and Response (XDR): Unified visibility across endpoints, networks, and cloud.
- Cloud-Native Security: Protecting dynamic, scalable environments.
- Threat Intelligence Platforms: Real-time global insights into emerging threats.
- Security Automation (SOAR): Reducing response time and human error.
Organizations are shifting from “defend the perimeter” to “assume breach and minimize impact.”
♦Photo by Joshua Sortino on UnsplashThe Road Ahead: Cybersecurity as a Continuous StrategyCybersecurity is no longer a static solution — it is a continuous, evolving strategy.
The future will likely be defined by fully autonomous security systems, AI-driven cyber defense ecosystems, Increased regulation and global cooperation and a stronger focus on human factors and insider risk.
One thing is clear: cybersecurity is no longer about preventing attacks entirely — that’s unrealistic. It’s about resilience, speed, and adaptability in the face of constant threats.
Final Thoughts
The evolution of cybersecurity reflects a simple realistic truth: as technology advances, so do the risks that come with it.
The journey has been defined by continuous adaptation. Organizations that succeed are not those with the most tools — but those with the ability to evolve as fast as the threats they face.
Enjoyed the article? Give it a clap and share your thoughts in the comments.♦
Have a different perspective? I’d genuinely like to hear it.
Until then, stay safe and stay secure.😁
The Evolution of Cybersecurity: From Simple Defenses to Intelligent Warfare. was originally published in Code Like A Girl on Medium, where people are continuing the conversation by highlighting and responding to this story.
Code Like a Girl
From Jira Bug to Draft PR
I wanted bugs filed in Jira to turn into draft pull requests on GitHub without anyone needing to shepherd them through the middle.
That’s the one-line version. The actual version took about two weeks and ended up with four moving parts:
- A Lambda that takes a Jira webhook, classifies the ticket, mirrors it as a GitHub issue, and copies attachments to S3.
- A triage workflow that generates a repo map and decides, for every freshly opened GitHub issue, whether to assign Copilot coding agent or just post a diagnosis comment.
- A log analyser in dev-scripts/ for the heavier path, where attached logs need to be turned into a structured root-cause analysis first.
- Copilot coding agent itself, which opens the draft PR.
None of the pieces were especially hard on their own. Each one was some Python, some Terraform, and some agent instructions. The time went into the joins: Jira’s idea of valid JSON, webhook retries, Copilot’s token rules, S3 log links, and a model that decided to ask for more information instead of checking the repo.
So this is the long version. The small annoying bits are most of the story.
The shape♦Stage 1: The LambdaThe Lambda is the boring bit you only notice when it gets something wrong.
When a Jira ticket is created or updated, it receives the webhook, decides whether the ticket is actionable, and opens or updates the matching GitHub issue. It also carries over attachments or S3 links so the GitHub side has enough context to do something useful.
The classifier itself is mostly regexes and form fields. Not glamorous. The parts that slowed me down were the places where Jira, AWS, and GitHub all had slightly different ideas of what “simple webhook” meant.
Webhook payloads are user-controlled JSON, sometimes barelyJira’s automation rules let you POST a custom JSON body to a URL. You write the body as a template and Jira fills in the values from the ticket. In theory, simple. In practice, the validator that decides whether your template is “valid JSON” is brittle in ways nobody documents.
Things I had to discover the slow way:
- Some smart-values aren’t supported on every tenant. The literal {{issue.url}} text was being left in the body on mine, breaking the JSON.
- Array-valued smart-values have to come last in their object, or the validator fails before you can even save.
- Free-text fields like description blew the body up whenever a user pasted text with control characters or unescaped quotes.
I ended up bisecting the body field by field, saving the rule each time, until I found which smart-value was breaking it. The validator’s error message is basically the same regardless of which line is wrong.
What I now do by default: send the smallest possible payload — usually just the ticket key — and have the Lambda fetch everything else via the Jira API. One extra call per webhook is free. Debugging the validator is not.
Make it safe to retry, then assume it will beWebhooks have at-least-once delivery. The Lambda can see the same event twice, see an update while a previous run is still in flight, or trigger itself by editing the same ticket. None of those should create duplicate GitHub issues or comments.
Three mechanisms, roughly:
- A hash of the classification result, written back to the ticket. If the new hash matches the stored one, skip everything.
- A sentinel label that says “the classifier just touched this.” The Jira rule excludes that label so the Lambda’s own writes don’t loop.
- Reading the existing GitHub-issue mapping on every event, not just on updates.
By the time I reached the GitHub-issue side, the Lambda was mirroring tickets reliably enough that the next question was obvious: can Copilot do anything useful with them?
The naive plan was: assign Copilot coding agent to every issue the Lambda creates, let Copilot figure it out.
That plan falls over as soon as the first vague ticket arrives. Copilot coding agent is not a triage tool.
What Copilot coding agent actually doesWhen you assign Copilot to an issue, it:
- Reads the issue body and existing comments at the moment of assignment.
- Researches the repo in its own GitHub Actions VM.
- Drafts a plan.
- Opens a draft PR — success or otherwise.
- Requests review.
What it does not do:
- Post “I need more info before I try”
- Decide the issue isn’t fixable and abstain
- Use your domain-specific tooling
- Read comments added after assignment
If the issue is vague, you get a low-quality draft PR you’ll close. If the issue is a duplicate, you get a draft PR. If it’s a “the docs don’t make sense” question, you get a draft PR for that too.
Useful tool. Wrong contract for “triage every opened issue.”
The three-way decisionWhat I actually needed before Copilot ran was a small decision point:
ClassificationActionauto_fixableAssign Copilot, let it open a draft PRneeds_infoComment listing what's missing, don't assigndiagnosis_onlyComment with root cause + workaround, don't assign
Copilot only fires when there is a real fix to make and enough information to make it. Everything else gets a comment and stops there.
The triage model is Claude Sonnet 4.6 routed through the Copilot SDK: same billing surface as the coding agent, but chat completions instead of the cloud agent. In practice the pipeline uses two different shapes of agent. Claude does the messy issue reasoning. Copilot coding agent does the repo-aware code edit.
The token mazeThis is the part I would shortcut hardest if I started over.
Copilot SDK has its own auth contract, separate from regular GitHub auth. The SDK does not accept:
- GITHUB_TOKEN (the built-in Actions token)
- ghp_* classic PATs
- ghs_* GitHub App installation tokens
It accepts:
- gho_* OAuth user tokens
- ghu_* GitHub App user tokens
- github_pat_* fine-grained PATs with Copilot Requests: Read
The fine-grained PAT path looks easy until you discover that org-owned fine-grained PATs don’t expose the Copilot Requests permission. There’s an open GitHub issue about it. If your repo is in an org, that path is blocked.
The OAuth route works but requires running a device flow, which is annoying when what you want is “give CI a secret and move on”. After two days of permission spelunking, I found the shortcut: the ghu_* token already exists on any machine signed into Copilot. It's sitting in ~/.config/github-copilot/apps.json. Pull it out, drop it into a secret, done.
That’s the SDK token. Then there’s the assignment token.
The Copilot coding agent assignment goes through a separate GraphQL call (replaceActorsForAssignable), and that one needs a PAT that can see Copilot in suggestedActors. The Actions GITHUB_TOKEN cannot — GitHub explicitly filters Copilot out of suggested actors for the Actions identity. This is by design: the same loop-prevention rule that stops Actions from triggering other Actions.
So I tried to consolidate. Use GITHUB_TOKEN for assignment, simpler workflow, fewer secrets. The error was crisp:
Copilot is not in suggestedActors — coding agent is not enabled
for this repository, or the token lacks the scope to see it.
Coding agent was enabled. The token just couldn’t see it.
Final shape: three tokens.
SecretWhat it doesToken typeCOPILOT_SDK_TOKENTriage + log analysis (Copilot SDK inference)ghu_* from local CopilotCOPILOT_ASSIGN_TOKENAssign coding agent to issueFine-grained PAT, repo-scopedGITHUB_TOKENComments, labels, gist fetchesBuilt-in Actions token
Three tokens for three different jobs. Annoying, but at least explicit.
The two pathsOnce auth was out of the way, the workflow branched on a label:
TriggerPathissues.opened (no label)Generate repo map → Claude triage → comment → maybe assignlabeled: analyze-logsDownload log → run log_analyze.py → log-triage comment → maybe assign
Path A is cheap. The repo map gives the model project layout, Claude classifies the issue, and assignment is gated on confidence >= 0.7.
Path B is heavy. The Lambda renders log attachments as markdown links to S3 pre-signed URLs. When the analyze-logs label gets added, the workflow downloads the log and runs the multi-agent log analyser from stage 3. That already produces root_cause, possible_fixes, and code references, so there is no point asking a smaller triage prompt to rediscover the same thing.
Most issues take Path A. The expensive path only runs when there is a log worth spending time on.
Grounding the triageThe fix was not a smarter model. It was making the procedure less optional.
I’d already given the triage agent the same search_repo and read_repo_file tools that log_analyze.py uses. Tools alone weren't enough. The model treated them as optional. So the prompt got a numbered procedure:
- Extract every identifier from the issue body
- search_repo each one
- Follow the path-chain: registry → template → implementation
- read_repo_file to confirm the leaf
- Only then classify
I also added a small set of owner-to-file routing rules that I had internalised but the model had not. Things like “templates owned by namespace A live in config X, namespace B lives in config Y”. Encoding those cut a whole class of “model guessed the wrong file” misses.
Then citation discipline. diagnosis and copilot_instructions must include file:line references with before/after values, not vague paths. Vague paths gave Copilot a worse starting position than no instructions at all.
And one carve-out. The original needs_info rubric was too bug-report-shaped: repro steps, expected vs actual, environment. That is right for a crash, but wrong for a change request like "bump version to 7" or "rename flag X to Y". Those have no repro steps because they do not need any. The model was pattern-matching on missing bug fields and refusing to classify obvious edits as fixable. The carve-out is simple: when the body names an explicit target value, do not demand a repro before considering auto_fixable.
After all four edits, the same issue went auto_fixable → assign Copilot → draft PR. Copilot still does the work. The triage layer just stops getting in its way.
Single LLM vs orchestrated pipelineI wrote about this gap before, in Computer Says No. It applies here too.
A vanilla LLM call on the issue body would have classified needs_info and stayed there forever: no tools, no grounding, no way to verify. The orchestrated version reads actual files, traces actual chains, and only then decides. Same model. Different shape.
The annoying part is that Copilot coding agent already does this internally. It researches the repo before drafting. That’s why assigning it directly worked on some issues my own triage was bouncing. The triage layer needed the same kind of grounding before deciding whether to hand off. Otherwise it was just a worse version of Copilot gating a better version of itself.
Once I made the triage agent use its tools the way Copilot uses its own, the pipeline started behaving the way I wanted: most issues either get a useful comment or a draft PR within minutes of opening.
Stage 3: The log analyserStage 3 is the heavy path the triage layer hands off to. I built it before the triage layer existed, because the bugs that mattered were arriving as megabyte-sized application logs and reading them by hand was killing my afternoons. By the time I needed a triage agent, this tool was already doing useful work.
The shape:
♦The split that mattersThe line I kept coming back to was: deterministic where it can be, model-driven where it has to be. If you can compute something from the log without judgement, compute it. If it needs judgement, give it to a model with grounded tools. Try not to blur the two.
What that meant in practice:
- Actor detection. Logs contain both the orchestrator side and the worker side, sometimes on the same machine, both logging under the same [orchestrator] tag. A regex over thread-name patterns determines which actors are present and which one to prioritise (worker-side first, because that's where root causes live). No model involved.
- Window selection. Logs are 50–100 MB. Models can’t usefully read the whole thing. The deterministic layer offers anchors such as last_task, last_abort, and last_traceback, then slices the relevant ~500 lines. The model never sees the rest unless it asks for more.
- Evidence ranking. Within the window, traceback frames beat worker-side exceptions beat protocol-level exceptions beat task-abort summaries beat generic warnings. This priority is hard-coded; the model can override it only with explicit reasoning. Without this, models default to “the first ERROR line is the cause” and you get diagnoses that point at the wrapper.
- File reference extraction. If the log mentions sdk/foo/bar.py:247, the deterministic layer captures that and pre-loads the file as context. The model doesn't have to figure out it's relevant.
By the time the scout agent runs, it is looking at a couple hundred lines of high-signal log plus pre-resolved file references. Not the raw log. Not a generic instruction to “find the bug.”
The agent stackThe analyser uses three separate Copilot SDK sessions, with a different model for each role:
RoleModelWhyScoutgpt-5-miniCheap. Plans which files/searches matter. Doesn't need to reason deeply.Analystclaude-opus-4.6Strong. Does the actual root-cause reasoning with grounded repo tools.Reviewergpt-5.4Strong, different family. Challenges the analyst. Up to three rounds of disagreement.
The reviewer loop is the part I am most attached to. Without it, the analyst picks an answer and you take it. With it, the reviewer either accepts or sends a structured “no, here’s why I disagree” back to the analyst, which reruns with that as additional context. After three rounds, whatever they converge on is the answer. If they still disagree, an optional orchestrator model reconciles.
This is more expensive than a single-model call. It is also much better on the awkward 15–20% of investigations where the first-pass answer is plausible but wrong.
The tools, for realThe agents don’t get “use search_repo” as a hint. They get actual SDK-defined tools backed by Python implementations:
search_tool = define_tool(
"search_repo",
description=(
"Search the monorepo for lines matching regex patterns. "
"Use this to find relevant code when the supplied evidence is "
"insufficient to diagnose the issue."
),
handler=_handle_search_repo,
params_type=SearchRepoParams,
skip_permission=True,
)
_handle_search_repo does a real ripgrep-style scan over the checked-out repo, returns hits with path, line, text. read_repo_file reads bounded snippets (default 40 lines of context) from a file the model names. Path resolution allows relative paths or unique-filename suffixes — the model can ask for dataframe.py and the tool finds sdk/data/sources/dataframe.py if it's the only match.
The bound repo_root matters. The tool can't escape the checkout (path traversal blocked at the resolver layer), can't read absolute paths, can't see ignored directories. Read-only by construction. The agent has every relevant lookup it needs and zero ability to do anything destructive.
This is what makes the analyst’s diagnoses grounded. Every file path it cites came from a real read_repo_file result. Every code reference was a real search_repo hit. The output is still model-synthesised, but the raw material is real.
The instruction fileDomain rules about how to read these specific logs aren’t in code; they live in log_analyze_instructions.md, loaded automatically and appended to every agent's system prompt. The file is short, opinionated, and mostly negative — it tells the models what not to do:
- “Treat GenericAbortError as a wrapper unless deeper evidence is missing."
- “Do not report wrapper messages as the root cause if the selected window contains earlier causal evidence.”
- “Prefer multiple small targeted investigations over one large unfocused pass.”
- “If the model owner is not internal, bias toward the model input path, not opaque model internals.”
These were learnt the expensive way. The first version of the analyser kept reporting “GenericAbortError” as the root cause for every failure. Technically true, completely useless. The wrapper-error rule fixed that. The third-party model rule came after watching the analyst speculate about model internals it could not read, when the actual bug was in the data pipeline feeding the model.
The rule I took from this: domain knowledge belongs in instructions, not code. Encode the rule once in markdown and every agent in the stack inherits it. The --agent-instruction and --agent-instruction-file flags let me steer per-run without editing the repo.
Streaming and timeoutsEach SDK call has a timeout: 180s for scout, 420s for analysis/review. They also use streaming events. Streaming matters for two reasons: progress logs appear in stderr while the model is still thinking, and if a turn times out before completing, the partial content can often be salvaged instead of throwing the whole investigation away.
The fallback chain when a turn times out:
- Did we get a final assistant message before timeout? Use it.
- Did we accumulate any streamed parts? Concatenate and use them.
- Can we read the latest assistant message from session history? Use that.
- None of the above? Raise — the run is genuinely lost.
I built this after the third time a seven-minute analysis call basically succeeded but threw on the timeout boundary. The work was done; the SDK just had not formally closed the turn. The fallbacks recover that work.
What came out of building itlog_analyze.py taught me most of what the triage agent in stage 2 needed:
- Tools beat prompts. Give the model real search_repo and read_repo_file, not a description.
- Deterministic preprocessing wins. Don’t make the model read 50 MB; pre-rank evidence and slice the window.
- Domain rules go in instructions, not code.
- Multi-agent isn’t just “more is better” — it’s specifically scout-cheap, analyst-strong, reviewer-different-family.
- Defensive parsing is part of the contract.
- Streaming + timeout-fallback turns flaky into robust.
The triage layer reuses build_repo_tools() directly. It shares the same search_repo / read_repo_file implementations as the analyst. It gets the same grounding for free. That code reuse is why the triage prompt can stay fairly short: the heavy lifting is in tools the analyser already proved out.
Stage 4: Copilot assignment and draft PRIf you made it here, thank you. This is actually the easy part.
Once an issue is deemed auto_fixable, the workflow assigns Copilot coding agent. It analyses the request in the cloud agent environment and opens a draft PR.
The thing I like is that there is still a human review point, just later. The workflow does not merge code. It only spends Copilot/GitHub minutes when the triage layer thinks there is a real edit to make.
Some open questions readers might haveWhy not use an off-the-shelf tool? The simple answer is that I didn’t want to. I had fun building this, and I learnt more by sitting in the annoying bits myself.
Could something like n8n have done this instead? Yes and no. It could have saved me time on the boring routing parts, and would have been a great choice if the pipeline was “Jira event in, GitHub issue out, maybe a Slack ping”. I still would have had to do my own work for the AWS infrastructure, the agent grounding needs custom code, and the Copilot auth dance still needs extra hip movement. I preferred the learning curve to be focused on building blocks rather than tools.
Why Jira? It is the workflow tool my company already uses. I wanted to minimise friction for non-engineer colleagues.
Why GitHub Copilot instead of OpenAI or Anthropic directly? Our code already lives in GitHub and we already have Copilot enabled, so it felt natural to try that route first.
Why do the S3 dance for logs? The bug reports already arrive with S3 links pointing to the relevant logs. Whatever orchestration tool I picked, I still had to get the logs out of S3 and into the analysis path.
Where it landsThe end-state is a pipeline that, on every Jira bug:
- Mirrors the ticket to a GitHub issue with the right team’s repo
- Mirrors any attachments to S3 with pre-signed URLs in the GitHub issue body
- Generates a repo map for grounding
- Routes the GitHub issue through Claude triage (cheap path) or log_analyze.py (heavy path)
- Posts a structured diagnosis comment
- Conditionally assigns Copilot coding agent when the issue is auto-fixable with high confidence
- Marks the issue auto-triaged to prevent double-handling
- Re-classifies and cross-repo-moves cleanly when the team label changes
- No-ops idempotently when nothing’s changed
Two LLMs, three tokens, two paths, one Lambda, one workflow. Most of the value isn’t in the model calls — it’s in the gates between them.
If you’re doing something similar: don’t try to make Copilot coding agent a triage tool. It’s a fix tool. Build the triage layer separately, and let it decide whether to hand off.
And if you’re plumbing webhooks into AWS and wondering why your auth isn’t working — curl it directly, layer by layer. The error code you see in the audit log is rarely from the layer you think it is.
Have you wired Copilot agents into a custom workflow? I’d love to hear what auth maze you got stuck in — and whether your triage layer is gating better than mine.
♦From Jira Bug to Draft PR was originally published in Code Like A Girl on Medium, where people are continuing the conversation by highlighting and responding to this story.