WRDashboard

Fork Me on Gitlab

Articles

Kitchener-Waterloo Real Estate Blog

12 Essential Questions to Ask Your Real Estate Agent Before You List Your Home in Waterloo Region

Selling your home is a major life event and one of the biggest financial decisions you will ever make. Choosing the right real estate agent is the single most important factor that will influence your outcome. Whether you live in Waterloo, Kitchener, Cambridge, St. Agatha, Conestogo, or Wilmot Township, the real estate market in Waterloo Region behaves differently from neighbourhood to neighbourhood. Colonial Acres does not follow the same pricing patterns as Laurelwood or Beechwood. A rural estate in Wilmot requires a different marketing strategy than a family home in Eastbridge. Because of these differences, the agent you choose must bring far more than a real estate license—they must bring hyper-local expertise, data-driven analysis, strong negotiation skills, and a deep understanding of the Waterloo Region real estate landscape.

Before committing to anyone, it is essential to ask the right questions. The following twelve questions will help you determine whether an agent is truly capable of safeguarding your home’s value, marketing it strategically, and securing the best price possible.

1. How will you determine the listing price of my home?

Pricing a home correctly from day one is one of the most important components of a successful sale. An experienced Waterloo Region agent will base your pricing on a detailed Comparative Market Analysis (CMA) that incorporates recent sales in your neighbourhood, homes you will be competing with once you hit the market, historical sales trends, location-specific adjustments, and the unique characteristics of your property. This is especially important in areas like Colonial Acres, Eastbridge, Laurelwood, or Beechwood, where micro-market fluctuations can impact value significantly.

A qualified agent should be able to clearly walk you through their valuation process, explaining why certain comparables matter, how they will adjust for lot size and updates, and what price range will attract the greatest number of qualified buyers. Pricing should never be based on guesswork, personal opinion, or automated online estimates. Buyers in Waterloo Region are highly informed, and pricing mistakes can lead to extended days on market, lower offers, and reduced negotiating leverage.

2. Which neighbourhoods in Waterloo Region do you specialize in?

Waterloo Region is made up of highly distinct sub-markets, each with its own buyer demographic, pricing trajectory, school catchments, and long-term appreciation patterns. A home in Colonial Acres attracts a very different buyer than a home in Laurelwood, Beechwood, or Vista Hills. Likewise, rural properties in St. Agatha, Wellesley, or Wilmot Township require a completely different pricing strategy and marketing approach than condos in Downtown Kitchener or family homes in Doon South or Eastbridge.

A knowledgeable agent should understand the nuances of your specific neighbourhood, including school performance, commute patterns, LRT or highway access, local amenities, buyer expectations, and current absorption rates. Someone who regularly sells in your area will also know how to position your home with the right pricing, staging, and marketing strategy to attract qualified, motivated buyers—not just traffic.

In a region as diverse as Waterloo, true neighbourhood expertise is not optional. It is essential.

3. How much experience do you have selling homes like mine?

Real estate in Waterloo Region is not one-size-fits-all. Selling a rural estate, a custom-built executive home, a century property, a suburban family home in a top school district, a luxury listing, or a townhouse/condo each requires a different set of skills, marketing assets, and pricing strategies. Your agent must understand the buyer demographic for your specific property type—and know how to reach and convert that buyer pool effectively.

Ask your prospective agent to show you real examples of properties similar to yours that they have successfully sold across Waterloo, Kitchener, Cambridge, and the surrounding townships. Their experience with your specific property type will directly influence your pricing strategy, marketing plan, negotiation strength, and final sale result.

Experience matters—and it shows up very clearly in results.

4. Are you a full-time real estate agent?

The Waterloo Region real estate market moves fast—sometimes in hours, not days. New listings, sold comparables, pricing shifts, showing requests, and buyer activity require constant monitoring and immediate response. A full-time real estate professional who is fully immersed in the market can pivot quickly, provide timely advice, and make data-backed recommendations as conditions change.

A part-time agent, or someone who treats real estate as a secondary job, simply cannot match the responsiveness, consistency, or depth of market knowledge required to sell one of your largest financial assets. When you are preparing to sell in a competitive regional market, you need a full-time expert who is available, informed, and actively engaged every single day.

5. What is your average sold-to-list price ratio and days on market? ♦

These two metrics offer transparent, measurable insight into an agent’s performance. A strong Waterloo Region agent will consistently achieve a sold-to-list price ratio at or above neighbourhood averages and will maintain a days-on-market timeline that reflects strong pricing strategy, marketing execution, and negotiation skill.

If an agent frequently overprices listings and relies on multiple reductions to get a sale, you’ll see it in their days-on-market data. If they consistently underprice to mask poor marketing or negotiation skills, their ratio will reflect that as well.

Evaluating these numbers ensures you’re hiring someone whose results are supported by real data—not vague promises or polished marketing materials.

6. What does your marketing plan include—specifically for my home?

Marketing is one of the biggest differentiators between real estate agents in Waterloo Region. Today’s buyers expect premium digital marketing, high-quality visuals, and a seamless online experience. A strong listing strategy should include professional photography, cinematic video tours, drone footage, 3D iGuide floor plans, targeted social media advertising, Google search campaigns, email marketing to active buyers, and maximum exposure across Realtor.ca, ITSO MLS, RE/MAX, and other national and international platforms.

More importantly, the marketing plan should be tailored, not generic. A luxury home in Colonial Acres requires a different positioning strategy than a family home in Eastbridge, a condo in Downtown Kitchener, or a rural estate in St. Agatha, New Hamburg or Conestogo. Rural properties often require marketing that highlights land features, privacy, and outdoor lifestyle elements through drone footage and wide-format visuals. Urban homes, on the other hand, benefit from marketing that showcases walkability, neighbourhood amenities, school zones, transit access, and day-to-day lifestyle appeal. In truth, every home—rural, suburban, or urban—requires lifestyle-focused marketing that helps buyers emotionally connect with the property and understand how it fits the way they want to live.

Your agent should be able to articulate a clear, sophisticated, and data-backed marketing plan designed specifically for your property—not a “list it and hope it sells” approach. A true marketing strategy is what separates top-performing listings from those that sit on the market.

7. How will you help me prepare my home for the market?

Preparing your home properly is one of the most powerful ways to increase buyer interest, strengthen your online presence, and maximize your final sale price. A top Waterloo Region real estate agent should provide a detailed, customized plan outlining exactly what to do—and equally important, what not to do—before listing. This includes identifying high-ROI updates, recommending cost-effective improvements, prioritizing decluttering, improving curb appeal, and addressing small repairs that can dramatically impact how your home shows both in person and in professional photography.

Your agent should also offer clear staging guidance and, ideally, provide access to a vetted network of trusted professionals—stagers, cleaners, painters, landscapers, a handyman, and contractors. Having the right team in place ensures your home looks exceptional from day one, which is crucial in competitive neighbourhoods where buyers expect move-in-ready, well-presented properties.

Proper preparation has a direct impact on your sale price. The right agent will know precisely how to position your home to appeal to today’s buyers across Waterloo, Kitchener, Cambridge, St. Agatha, Conestogo, and the surrounding townships, ensuring your listing stands out in the market—online and in person.

8. What costs should I expect when selling?

A professional real estate agent should walk you through every cost associated with selling your home—clearly, transparently, and upfront. This includes real estate commission, potential staging or preparation expenses, cleaning, legal fees, land transfer tax on a purchase if you are moving, and potential mortgage penalties if you are breaking your term early. In Waterloo Region, these costs can vary depending on your property type, your lender, and the level of marketing required to position your home competitively.

Your agent should also help you estimate your expected net proceeds before listing, not after. Understanding your projected bottom line allows you to plan your next move confidently, avoid unpleasant surprises, and make strategic decisions around pricing, timing, and preparation. A clear financial picture is essential for a smooth and successful sale.

9. How will you manage showings and communicate feedback?

Clear, consistent communication is one of the biggest factors in reducing stress during the selling process. Your agent should outline exactly how showings will be scheduled, how your home will be protected during viewings, how buyer feedback will be gathered, and how often you will receive updates about your listing’s performance. You should never be left wondering whether your home is generating interest, how many buyers have viewed it, or what the market response has been so far.

A structured communication plan keeps you informed, builds confidence, and helps maintain momentum—especially in a fast-moving market like Waterloo Region, where conditions can shift quickly. An agent who provides timely, transparent updates allows you to make informed decisions throughout your sale.

10. What is your negotiation strategy? ♦

Negotiation is one of the most important ways an agent protects your financial outcome. It can influence tens of thousands of dollars—or more—in your final sale price. Ask your agent how they handle low offers, bully offers, conditional offers, multiple-offer scenarios, and attempts by buyers to renegotiate after inspections or appraisals.

A knowledgeable, experienced Waterloo Region agent will be able to articulate a clear negotiation strategy for every situation, explaining exactly how they protect your interests while maximizing your sale price. Skilled negotiation isn’t luck—it’s a practiced, data-driven process that directly impacts your bottom line.

11. How do you ensure compliance with Ontario real estate regulations?

Your agent must operate with full compliance under Ontario’s real estate laws. This includes the Real Estate Council of Ontario (RECO) Code of Ethics, FINTRAC identification requirements, MLS® rules, proper disclosure practices, and provincial consumer protection regulations.

Compliance isn’t optional—it protects you legally and financially. A strong agent prioritizes accuracy, transparency, and proper documentation throughout the entire transaction, ensuring your sale proceeds smoothly from listing to closing. When an agent is meticulous with paperwork and regulation, it provides an additional layer of protection and professionalism.

12. What is your plan if the home does not sell immediately?

Even in a strong market, every listing must be monitored and adjusted as conditions evolve. A proactive agent will have a plan in place if buyer activity slows or market dynamics shift. This may include updating the marketing strategy, boosting digital advertising reach, refreshing listing photos, adjusting the price based on new comparable sales, or repositioning the listing to reach a stronger buyer demographic.

The key is responsiveness—not guessing or waiting. A data-driven, analytical approach ensures your home stays competitive and continues to attract qualified buyers, whether you’re selling in Kitchener, Waterloo, Cambridge, St. Agatha, Wilmot Township, or Conestogo.

Why These Questions Matter in Waterloo Region

The Waterloo Region real estate market is shaped by a unique blend of factors: rapid tech-sector growth, ongoing immigration, strong university influence, shifting remote-work trends, and highly localized neighbourhood demand. Prices and buyer behaviour can vary dramatically between Waterloo, Kitchener, Cambridge, St. Agatha, Conestogo, and Wilmot Township. A home in Laurelwood performs differently from one in Colonial Acres, and rural properties in Wilmot require a completely different pricing and marketing strategy than urban homes near the LRT or Uptown Waterloo.

Because of these neighbourhood-specific variations, choosing the right real estate agent is critical. An experienced, data-driven agent who understands Waterloo Region’s micro-markets can guide you through timing, pricing, marketing, negotiation, and preparation—ensuring you make confident decisions and maximize your results.

Hiring the wrong agent can cost you time, money, leverage, and momentum. Hiring the right one can protect your financial outcome, reduce stress, and create a smooth, successful selling experience.

Why Sellers Trust The Deutschmann Team ♦

With more than $700,000,000 in career sales and a long-standing reputation for professionalism, market expertise, and exceptional client care, The Deutschmann Team is one of the most trusted and recognized real estate teams in Waterloo Region. Our results are driven by accurate pricing strategies, sophisticated digital marketing, strong negotiation skills, and hands-on guidance from start to finish.

We combine local data, years of experience, and hyper-neighbourhood insight to position your home strategically and deliver top-tier results—whether you are selling a luxury home in Waterloo, a family home in Kitchener, a condo in Downtown, or a rural estate in St. Agatha or Wilmot Township.

Final Thoughts Planning to Sell? Start With an Accurate, Local Home Evaluation

The most important first step when preparing to sell your home is knowing its true market value. Online valuation tools often miss key factors such as neighbourhood trends, property condition, upgrades, lot characteristics, and current buyer demand. A personalized Home Evaluation based on real Waterloo Region data gives you a far more accurate and reliable understanding of what your home could achieve in today’s market.

Request Your Free Home Evaluation today. You will receive:
 • a precise valuation based on neighbourhood-specific comparables
 • a customized pricing and marketing strategy
 • preparation and staging recommendations
 • financial projections and next-step guidance
 • honest feedback tailored to your goals and timeline

With the right information—and the right team—you can move forward with clarity, confidence, and a strong plan for success.

The post 12 Essential Questions to Ask Your Real Estate Agent Before You List Your Home in Waterloo Region appeared first on Kitchener Waterloo Real Estate Agent - The Deutschmann Team.


Kitchener-Waterloo Real Estate Blog

Why Local Data Beats Online Estimates Every Time

When you begin thinking about selling your home in Waterloo Region, one of the first questions that comes to mind is how much your property is realistically worth in today’s market. It’s easy to enter your address into an online home value tool and get a quick estimate, but in a region with neighbourhoods as diverse as Laurelwood, Eastbridge, Westmount, Doon South, Vista Hills, Beechwood and Uptown Waterloo, those automated numbers rarely tell the full story. These tools miss the nuances that matter most when you’re preparing to sell.

This is exactly why relying on local market data and a professional Home Evaluation provides a much more accurate picture of your home’s true value. If you are preparing to sell, starting with a detailed Home Evaluation is far more reliable than any automated estimate.

Why Online Estimates Don’t Reflect What Homes Actually Sell For

Automated valuation tools pull from public records, MPAC data, and historical sales. What they cannot interpret are the characteristics that buyers actually care about in the Waterloo Region market. They do not recognize the quality of your finishes, the size and privacy of your lot, the street you live on, whether you recently renovated your kitchen, or whether your home backs onto green space or a quiet trail system.

More importantly, online tools cannot read neighbourhood desirability. A home in Laurelwood, with top school zones and extensive amenities, will perform very differently from a similar home in Lincoln Heights, Pioneer Park or Forest Heights, even if they appear identical on paper. For many sellers, this lack of accuracy leads to unrealistic expectations or unnecessary hesitation—neither of which helps you prepare your home for the market.

Neighbourhood Nuance Matters in Waterloo Region

Neighbourhood performance is one of the most important factors in determining a home’s sale price. Waterloo Region is made up of highly distinct pockets, each with its own buyer demographic, level of demand and pricing patterns. Buyers are strongly influenced by school rankings, proximity to the LRT, nearby tech employment hubs, walkability, parks and trails, and the overall feel and reputation of the street. An online estimate cannot measure any of these details.

This is why local expertise is so essential when you’re preparing to sell. If you browse our Waterloo and Kitchener neighbourhood guides on our Neighbourhoods page, you’ll see how much variation exists even between subdivisions just a few minutes apart.

How a Home Evaluation Gives You Accurate Information ♦

A Home Evaluation is not the same as an appraisal. It is an in-depth, market-based analysis completed by a real estate professional who understands how your home fits into the current market conditions. Instead of relying on broad averages, a Home Evaluation examines recent comparable sales in your immediate area, current listings that buyers will compare your home against, and the features that buyers are prioritizing right now.

A Home Evaluation also captures the details that algorithms miss: the quality of your renovations, the condition of your home, the layout, natural light, curb appeal and how your home compares to the homes buyers have recently toured. This type of analysis gives sellers invaluable clarity before listing. It helps you understand what price range is realistic, what improvements may meaningfully increase your sale price, and how your home should be positioned in today’s market.

To learn more about how a Home Evaluation works, visit our Home Evaluation page.

What Is a Comparative Market Analysis (CMA)?

One of the most accurate methods to find an estimated home value is the Comparative Market Analysis (CMA). To create CMAs, real estate professionals base their work on the latest information that is gathered locally and the close analysis of comparable houses in the area.

Here’s what a CMA includes:

Recently sold listings: This shows what buyers have really paid for similar homes like yours within the past few months.

Active listings: These include what is being offered now and how your house might perform in today’s market.

Expired listings: This shows what didn’t sell, helping them understand which prices were too high.

Property characteristics: The size, age, upgrades and condition of your house in comparison to others in the area.

Neighbourhood trends: Data on local demand, price movement, and local attractiveness.

A CMA is not a generic site like an online home price estimator. It combines facts and human cognition—an unbeatable combination.

Waterloo Region’s Real Estate Market Moves Quickly

One of the biggest limitations of online estimates is that they update slowly. Meanwhile, the Waterloo Region market shifts quickly based on interest rate announcements, tech-sector hiring trends, inventory levels, seasonal timing, university cycles, and new developments such as LRT expansion or major employer changes. These changes affect buyer behaviour within weeks. Automated models, on the other hand, often reflect conditions from three to six months ago.

A Home Evaluation is based on what’s happening now, with real-time data that reflects current supply, demand and buyer sentiment. When pricing your home, that timing difference matters.

How This Plays Out in the Real Market ♦

Consider two similar homes in Vista Hills—same builder, same square footage, same general layout. An online estimator might value both homes at $950,000. However, once an experienced agent walks through the properties, the differences become clear. One home may have a renovated kitchen, new windows and a premium lot backing onto conservation. The other may be in original condition on a busier street.

In today’s market, the upgraded home could easily sell for $1,020,000 while the original version may land closer to $915,000. That’s a $100,000 gap that an algorithm simply cannot capture. These distinctions are what drive real buyer behaviour—and real sale prices.

The Risks of Relying on Online Estimates

Online home valuation estimates may be attractive, but they can be misleading when making a significant decision. Being overly high with your listing price due to a misrepresented online home estimate may scare away customers. It might also cost you thousands to price it too low.

Likewise, when refinancing, your lender may base their assessment on a professional appraisal, which is much lower than what your online figure is, altering your opportunities for the loan.

Such mistakes occur because online home estimators do not consider human factors that shape market perception. They do not know whether your home is bright and welcoming, whether it is in good condition or whether there is something unique in it, and buyers in your neighbourhood are seeking to possess it.

How to Get the Most Accurate Home Value

Still, to accurately estimate home value by address, it is advisable to work with a local professional who can combine data and experience. It is best to begin with a Comparative Market Analysis. It provides you with an actual estimate of home value relying on facts, not speculations.

You will have a clear understanding of how your property compares to others in the area and what could be done to make your property worth more when it is listed. Additionally, you will be aware of the products that buyers in your locality demand and the prices they are willing to accept.

With the help of local information, you will avoid the pitfalls of generic online home price estimators and make more consistent decisions regarding the future of your home.

Why Local Data Helps You Make Smarter Selling Decisions ♦

Accurate, neighbourhood-specific data allows you to understand how your home will actually perform when listed. It provides clarity around pricing strategy, timing, preparation, and how your home compares to the competition. It also gives you a realistic sense of what buyers value in your neighbourhood, helping you make informed decisions before listing.

If you’d like to explore how we market homes strategically across Waterloo Region, visit our Why Sell With Us Page.

Conclusion Thinking About Selling? Start With a Free Home Evaluation

If you want a clear, accurate understanding of your home’s value in today’s Waterloo Region market, a Free Home Evaluation is the best place to begin. The Deutschmann Team has helped hundreds of families sell successfully across Waterloo Region, including Kitchener, Waterloo, St. Jacobs, Conestogo, Breslau, and across Woolwich and Wilmot Townships. With over $700,000,000 in real estate sold, we know what buyers are looking for and how to position your home strategically for top market performance.

Request your complimentary Home Evaluation today and get a true understanding of what your home could achieve—powered by real local insight, not algorithms.

The post Why Local Data Beats Online Estimates Every Time appeared first on Kitchener Waterloo Real Estate Agent - The Deutschmann Team.


Angstrom Engeneering

Sputter Down System | Angstrom Engineering

-/-

KW Habilitation

January 7, 2026: What’s Happening in Your Neighbourhood?

♦Mario Kart Madness
Friday, January 16
6:00 PM – 8:00 PM
$35
The Hangout at Grant’s Cafe – 99 Ottawa St. S, Kitchener

Buckle up, racers—it’s Mario Kart night! We’re kicking things off with a five round race fest, and only the four fiercest drivers will blast their way into our grand prix showdown. Between heats, fuel up with Mario’s favourite Italian food, pizza and cheer the others on. Win prizes for:

Biggest Banana Peeler – for the driver who slips on the most banana peels
Bullet Bill’s Bestie – for the racer who calls in the most Bullet Bills
Final Race Champion – for the undisputed champion of the night

Let’s see who can cross the finish line first!

Click here for more info

♦♦ ♦

♦Looking for Weekly, Fun and Free? Click on me! Program details can be found in the Community Calendar

 

♦Annual Neighbourhood Tobogganing
Sunday, January 18
10:00 AM – 12:00 PM
FREE
Knollwood Park – 175 Stirling Ave. N, Kitchener

Bring your friends and your sleds to Knollwood Park. Enjoy hot chocolate, donuts and music. This event is put on every year by the volunteers from both the Auditorium and Eastwood Neighbourhoods. Come on out and meet your neighbours on the way down the hill!

Click here for more info

 

 

♦Rusty Nail Comedy Pro Night
Wednesday, January 14
7:30 PM – 10:00 PM
$6.66
TWH Social – 1 King St. W, Kitchener

Comedy is back at the Walper Hotel in DTKitchener and it’s PRO AM night. They will be featuring semi-pro amateur and professional comedians from all over Canada. If you are coming with a group, you can email rustynailcomedy@gmail.com to reserve your table.

Click here for more info

 

 

♦Repair Café
Thursday, January 15
7:00 PM – 10:00 PM
FREE – Registration Required
Kwartzlab – 145 Bedford Rd. Kitchener (2nd floor)

This local Repair Café is run by KwartzLab in partnership with 4RepairKW. Bring in your broken items and get them fixed with their volunteers. Typical repairs include, small household appliances, yard tools, housewares, umbrellas, gadgets, backpacks, bags, purses, and clothing. If you don’t have anything in need of repair… don’t despair, we are happy to have you come and see the repairs in action.

Click here for more info

♦You can be a part of creating the new Public Art Installation at the Mill-Courtland Community Centre. Artists Agnes Niewiadomski and Michelle Purchase were selected to create Swoop, a murmur of hand-woven swallows to fill the space above the lobby in the newly renovated Mill Courtland Community Centre. The individual birds will be woven by community members at a series of free workshops. The willow will be locally harvested and some of the birds will be dyed with natural pigments from walnut and acorn.

We will be using sharp tools and weaving the willow will require a fair amount of hand strength. Everyone who makes a swallow will be recognized in the final artwork. Don’t miss this unique opportunity to contribute to a permanent collaborative artwork in your community. Sign up for one of the free willow weaving workshops today!

Click here for more info

The post January 7, 2026: What’s Happening in Your Neighbourhood? appeared first on KW Habilitation.


Children and Youth Planning Table of Waterloo Region

2025 Youth Impact Project Showcase: Kids Code and Fun Program

About the Youth Impact Project

The Youth Impact Project (YIP) is a collaboration between the Children and Youth Planning Table of Waterloo Region (CYPT) and Smart Waterloo Region Innovation Lab (SWRIL). The Youth Impact Project looks to fund youth who are addressing local challenges which are identified through the 2023 Youth Impact Survey results. The funded projects include a focus on supporting youth mental and physical health, increasing feelings of belonging, and responding to climate change and food insecurity.

 

In 2024, over 100 youth from 15 local organisations pitched their ideas to a panel of nine youth. The Youth Decision-Making Panel (“The Dragons”) decided which projects would receive funding to make their idea a reality. In 2025, CYPT and SWRIL accepted youth applications online, and a team of three youth decided which projects received funding.

Funded Youth Project #11: Kids Code and Fun Program

Kids Code and Fun Program is a youth-led, two-week winter break coding and activity program for children, ages 6-11. Learning technology is a real skill for the future, and many kids don’t get the chance to learn due to financial barriers. Kids Code and Fun Program will give kids a chance to learn these skills, make friends, and build confidence in a safe, educational, and affordable way. Kids will learn beginner skills like algorithms, block coding, and problem solving – while starting a small project. The program will also include breaks for physical activities and games.

 

Applications for the 2025 Youth Impact Project are now closed and 17 youth projects across Waterloo Region received funding. Stay tuned in the coming weeks as we announce the other 6 projects!

 

Last but not least, we are grateful to our funders United Way Waterloo Region Communities and Region of Waterloo for making the Youth Impact Project possible.

 

Learn more about the Youth Impact Project here.

 

The post 2025 Youth Impact Project Showcase: Kids Code and Fun Program appeared first on Children and Youth Planning Table.


The Backing Bookworm

The Bookbinder's Secret


I love a good Historical Fiction story with secrets and a bit of mystery and The Bookbinder's Secret looked like it fit the bill. 
The premise of The Bookbinder's Secret, which is set in the very early 1900's in Oxford, follows Lily Delaney, a young bookbinder who finds mysterious handwritten pages hidden inside old books. She learns there are more books in the series, and she puts her life in danger to collect them all, becoming more and more obsessed to learn more about the mystery surrounding forbidden lovers. 
The premise sounded great and so many readers loved this book, but I’m sad to report that I am an outlier with this book. I struggled to be pulled into this story from the get go. I didn't connect with the slowly paced story or the main character and thought the author adding their name as the author of the book within the story was a bit strange. Lily’s obsession with these letters was over the top and the unnecessary love triangle and repetitive feel made this a very slow read.  
Points for atmosphere and bookish backdrop, but this unfortunately was a miss for me. 
Disclaimer: My sincere thanks to St Martin's Press for the complimentary digital advanced copy of this book that was given to me in exchange for my honest review.

My Rating: 2.5 starsAuthor: A.D BellGenre: Historical MysteryType and Source: ebook from publisher via NetGalleyPublisher: St Martin's PressFirst Published: January 13, 2026Read: Dec 14-23, 2025

Book Description from GoodReads: Every book tells a story. This one tells a secret.
A young bookbinder begins a hunt for the truth when a confession hidden beneath the binding of a burned book reveals a story of forbidden love, lost fortune, and murder.

Lilian ("Lily") Delaney, apprentice to a master bookbinder in Oxford in 1901, chafes at the confines of her life. She is trapped between the oppressiveness of her father’s failing bookshop and still being an apprentice in a man’s profession. But when she’s given a burned book during a visit to a collector, she finds, hidden beneath the binding, a fifty-year-old letter speaking of love, fortune, and murder.

Lily is pulled into the mystery of the young lovers, a story of forbidden love, and discovers there are more books and more hidden pages telling their story. Lilian becomes obsessed with the story but she is not the only one looking for the remaining books and what began as a diverting intrigue quickly becomes a very dangerous pursuit.

Lily's search leads her from the eccentric booksellers of London to the private libraries of unscrupulous collectors and the dusty archives of society papers, deep into the heart of the mystery. But with sinister forces closing in, willing to do anything for the books, Lilian’s world begins to fall apart and she must decide if uncovering the truth is worth the risk to her own life.



James Davis Nicoll

Unspeakable / Secrets Of The Silent Witch, volume 1 By Matsuri Isora (Translated by Alice Prowse)

2021’s Secrets Of The Silent Witch, Volume One is the first light novel in Matsuri Isora’s secondary universe fantasy series. The 2022 translation is by Alice Prowse. Cover art and interior illustrations are by Nanna Fujimi1.

The Seven Sages are Ridill’s most powerful mages. They are asked to watch over the second prince, Prince Felix, as he attends Serendia Academy. One of them is to accompany him under cover.

Monica Everett, the Silent Witch, is sixteen, the right age to attend Serendia. Monica habitually hides her face, so despite her fame, nobody knows what she looks like. Monica is a logical candidate to protect Felix. There is just one small catch.


Cordial Catholic, K Albert Little

The Atheist Naval Surgeon Who Became a Catholic Deacon! (w/ Dcn. Patrick Lappert, MD)

-/-

Github: Brent Litner

brentlintner pushed linus

♦ brentlintner pushed to feat/bin-files in brentlintner/linus · January 6, 2026 22:46 1 commit to feat/bin-files
  • 1ed669b
    PM Work

Github: Brent Litner

brentlintner created a branch

♦ brentlintner created a branch in brentlintner/linus · January 6, 2026 22:36 ♦ refs/heads/feat/bin-files in brentlintner/linus

Updated Jan 6


Code Like a Girl

The Product Manager’s Guide to AI Prototyping

Extending AI Playbook to for PMs who think beyond prototypes.

Continue reading on Code Like A Girl »


Capacity Canada

Breast Cancer Canada

♦ Board Members Recruitment Location: National

Breast Cancer Canada (BCC) is a national organization with immense impact. The vision of ending breast cancer is one shared by many, especially those whose lives have been touched by breast cancer. The organization realizes that it cannot achieve the mission alone. It needs the generous support of time, talent, and treasure from many to bring the shared vision to life. BCC gets closer to making this vision a reality through each partnership, including: breast cancer researchers; patients and families; community members; organizations; volunteers across Canada; Board members; and staff. It is through them and in them that Breast Cancer Canada finds its voice, passion, energy and momentum.

Breast Cancer Canada is searching for five (5) new board members

As a candidate for a director role with Breast Cancer Canada, you have a keen interest in serving a cause that focuses on impact. Directors are leaders from various professions and sectors who bring an understanding of non-profit. You will be part of a governance board that helps to attract funding for the BCC mission.

COMPETENCIES SOUGHT IN NEW BOARD MEMBERS INCLUDE:
  • Willingness to serve as philanthropic ambassadors for the organization – leveraging their relationships, credibility, and influence to help advance BCC’s fundraising and partnership efforts
  • Strong financial acumen – can confidently interpret financial statements, assess organizational performance, and contribute to informed oversight of investment and risk strategies
  • Experience in one of the following areas:
    • government relations
    • health sciences
    • banking
    • lawyer
  • technology representative
  • Minimum 3 years of experience sitting on a non-profit board, with an understanding of board governance and the partnership role with a non-profit CEO
  • Alignment with BCC’s values
  • Strong relationships/networks

 

APPLICATION DETAILS:

crawfordconnect has been retained by the BCC to recruit board member candidates. Through crawfordconnect, BCC is inviting expressions of interest from qualified individuals in the form of a cover letter and a biography or resume. We ask that you articulate why you are interested in serving as a director in your cover letter. As part of the assessment and recommendation process, candidates may be invited to interviews with the Board Recruitment Committee and may be asked to participate in reference checks. Should you have any questions regarding this opportunity, contact Janice Wooster, Strategic Search Advisor, janice@crawfordconnect.com / 416.388.4049. Please email your cover letter and your biography or resume by January 30, 2026 directly to janice@crawfordconnect.com.

The post Breast Cancer Canada appeared first on Capacity Canada.


Cindy Cody Team

Raising a Family in Kitchener-Waterloo: Schools, Safety, and Supportive Communities

What families love about settling down in Kitchener-Waterloo and which neighbourhoods top their list.

Kitchener-Waterloo has quickly become one of Ontario’s most desirable regions for families looking to put down roots. Blending small-city warmth with big-city conveniences, the area offers quality schools, safe neighbourhoods, and a thriving community spirit that makes newcomers feel at home from day one. Whether you’re expecting your first child or guiding teens through high school, the region offers a lifestyle that grows with your family.

In this guide, we break down what families love most about raising kids in Kitchener-Waterloo and highlight the neighbourhoods that consistently top their lists.

Excellent Schools and Diverse Learning Options

Families in Kitchener-Waterloo appreciate the strength and variety of the local education system. With both the Waterloo Region District School Board (WRDSB) and Waterloo Catholic District School Board (WCDSB), there are options for every learning style and preference.

Why parents appreciate KW schools:

  • High-quality education with well-established programs in STEM, arts, French immersion, and special education.
  • Advanced learning opportunities, including the International Baccalaureate (IB) program at Cameron Heights Collegiate Institute and Integrated Arts at Eastwood Collegiate Institute.
  • Strong community engagement. Schools regularly partner with local organizations, libraries, and universities to enrich student learning.
  • Proximity to post-secondary institutions, including the University of Waterloo, Wilfrid Laurier University, and Conestoga College, fueling an academic culture that benefits younger students.

Whether families choose public, Catholic, French-language, or private education, they find the schools here well-supported and deeply connected to the community.

Safe, Family-Centred Neighbourhoods

Kitchener-Waterloo is known for its safe streets, walkable communities, and friendly neighbourhood feel. Many areas strike the perfect balance between peaceful residential living and easy access to essential amenities.

What makes KW feel safe and welcoming:

  • Well-maintained parks and trails, including the Iron Horse Trail, Walter Bean Trail, and expansive conservation areas.
  • Active neighbourhood associations that host events, picnics, and seasonal celebrations.
  • Accessible local services such as libraries, community centres, arenas, splash pads, and youth programs.
  • Reliable transit options, including ION light rail and a growing network of cycling paths.

Families often note that Kitchener-Waterloo offers the security of a suburban environment without feeling isolated or disconnected from city life.

A Strong Sense of Community

Kitchener-Waterloo’s culture is rooted in collaboration, creativity, and inclusivity. Families quickly notice how easy it is to get involved, meet neighbours, and build a network of support.

Community highlights families appreciate:

  • A packed calendar of festivals and events, from Oktoberfest and Christkindl Market to community block parties, multicultural festivals, and farmers’ markets.
  • Accessible programming for all ages, including parent–child classes, youth sports leagues, art workshops, and science camps.
  • A welcoming environment for newcomers, with active cultural associations and settlement support programs.
  • Growing opportunities for work-life balance, supported by the region’s strong job market in tech, healthcare, and education.

Whether you’re joining a library storytime or cheering from the sidelines at a soccer game, there’s always a sense of togetherness.

Top Neighbourhoods for Families in Kitchener-Waterloo

While great family-friendly areas can be found across the region, some neighbourhoods stand out for their schools, amenities, and overall lifestyle.

  1. Laurelwood, Waterloo
    Known for top-rated schools, stunning green spaces, and easy access to the university district, Laurelwood remains one of the most sought-after family neighbourhoods. Parents love its quiet streets, community centres, and proximity to Laurel Creek Conservation Area.
  2. Beechwood & Beechwood West, Waterloo
    These established neighbourhoods feature large family homes, access to community pools and tennis clubs, and close-knit community associations. They’re walkable, safe, and ideal for active families.
  3. Colonial Acres, Waterloo
    With spacious lots, strong schools, and a mix of mature homes, Colonial Acres appeals to families seeking an upscale, peaceful environment close to shopping and transit.
  4. Doon South, Kitchener
    Offering newer developments, trails, and excellent access to Highway 401, Doon South is popular with commuters and young families. It’s also home to Conestoga College and several well-regarded schools.
  5. Huron Park, Kitchener
    Known for its growth and family-centric planning, Huron Park provides playgrounds, new schools, walking paths, and a mix of detached and townhome options, perfect for first-time homebuyers.
  6. Lackner Woods, Kitchener
    Loved for its quiet feel and proximity to the Grand River, Lackner Woods has highly rated schools, new builds, and plenty of outdoor activities.

These neighbourhoods offer affordability, a historic charm, and access to great schools. They are ideal for families who want more space while staying close to KW amenities.

Looking to find a home in one of these neighbourhoods? Give us a call!

Why Families Choose KW to Call Home

At its heart, Kitchener-Waterloo offers a balance that’s hard to find elsewhere: a safe, vibrant community with exceptional schools, natural beauty, and room to grow. Families appreciate that the region offers:

  • A lower cost of living than major urban centres
  • A thriving job market
  • A rich cultural landscape
  • Family-first neighbourhood design
  • Endless opportunities for kids to learn, play, and explore

For families planning a move, Kitchener-Waterloo represents not just a place to live, but a place to truly belong.

Thinking About Buying a Home in Kitchener-Waterloo?

If you’re considering making the move, we’d love to help you find the perfect neighbourhood for your family. From school districts and commute times to hidden gems and upcoming developments, we can guide you through the K-W market with confidence.

🢂Reach out today to start your home search and take the next step toward building your family’s future in Kitchener-Waterloo.


Cindy Cody Team

Reading Nook Ideas & K-W Authors Worth Adding to Your Shelf

Discover creative reading nook ideas for your home and must-read titles from authors in our community.

Have you dreamed of building a cozy corner in your condo, tucking a quiet retreat under the stairs of your Eastbridge family home, or adding a stylish reading space to your Downtown Kitchener loft? A reading nook brings warmth, comfort, and personality to your space. Even better? Filling your shelves with books from local Kitchener-Waterloo authors helps you connect with the region’s vibrant creative community.

Below, you’ll find inspiring reading nook ideas for every type of home plus local authors whose work deserves a place on your bookshelf.

Inspiring Reading Nook Ideas for Your Home ♦ The Window-Lit Reading Seat

Take advantage of natural light by transforming a bay window or large living-room window into a cushioned reading bench. Add layered textiles, a side table for tea, and a few plants for softness.

♦Photo sources: @housinginfo @sevenstreetmarket @duncan_lighting @carolynleonadesign ♦ A Quiet Corner Retreat

Even the smallest rooms can house a reading nook. Choose an inviting chair, a floor lamp, and a floating shelf or book tower. Corners are ideal for creating that tucked-away, peaceful feeling.

♦Photo sources: @authorkatebreslin @the.bianchi.team @flowbylara @lifeontheshireside ♦ Under-the-Stairs Hideaway

Homes with unused space beneath staircases are perfect for a cozy hideout. Add a built-in bench, sconce lighting, and storage baskets for blankets and books.

♦Photo sources: @hgtv @koludrocreate @thatorganizedhome @jessicawoldenga ♦ The Minimalist Loft Nook

Ideal for condos or contemporary homes, a minimalist nook uses clean lines and neutrals. A sleek armchair, slim lamp, and a single shelf keep the focus on relaxation.

♦Photo sources: @thebennettshome_ @homedecorewithlove_01 @papersandspaces @papersandspaces Kitchener-Waterloo Authors Worth Adding to Your Shelf

Our region is home to an incredible literary community. Here are standout local authors to explore.

Listen to CBC Listen’s The Morning Edition K-W with Craig Norris segment “a look at books from Waterloo region authors over the past year”.

Carrie Snyder (Waterloo)
Notable Works: Girl Runner, The Juliet Stories
Snyder’s writing blends emotional depth with vivid storytelling, perfect for weekend reading sessions.

Andrew Pyper (Grew up in K-W)
Notable Works: The Demonologist, The Residence
Thrilling, atmospheric, and unforgettable. Ideal for readers who love suspense with literary flair.

Jael Richardson (Kitchener-born author)
Notable Works: Gutter Child, The Stone Thrower
Richardson’s work is powerful and immersive, offering rich narratives and social insight.

Tasneem Jamal (Kitchener)
Notable Works: Where the Air Is Sweet
A beautifully crafted novel about identity, belonging, and family history.

Kim Moritsugu (Waterloo-connected writer)
Notable Works: The Showrunner, The Glenwood Treasure
Smart, engaging fiction with wit and strong character development.

David Morrell (Kitchener)
Notable Works: First Blood

Looking for more? Check out this Read Local list.


Capacity Canada

Mount Lakeview Non-Profit Housing

Commitment: Approximately 2 hours per month
Meeting Schedule: Monthly board meetings held during daytime hours About Mount Lakeview Non‑Profit Housing

Mount Lakeview Non‑Profit Housing is dedicated to providing safe, affordable, and sustainable housing options for individuals and families in our community. Our portfolio includes a mix of market‑rent and rent‑geared‑to‑income (RGI) units, operating in alignment with provincial housing requirements and community needs.

We are seeking committed, community‑minded individuals to join our Board of Directors and help ensure the ongoing viability, compliance, and success of our non‑profit housing organization.

Role Overview

As a Volunteer Board Member, you will contribute your professional expertise, lived experience, and passion for community service to guide the strategic direction, governance, and oversight of Mount Lakeview Non‑Profit Housing. This role is essential in supporting our mission and ensuring that operational decisions align with provincial legislation, funding requirements, and best practices in non‑profit housing management.

Key Responsibilities
  • Attend monthly daytime board meetings (approximately 2 hours each).
  • Participate in decision‑making related to governance, strategic planning, policy development, and financial oversight.
  • Ensure compliance with provincial housing requirements, regulatory standards, and non‑profit governance obligations.
  • Review and contribute to annual budgets, audits, and financial reports.
  • Support the Executive Director or property management team through informed guidance and oversight.
  • Act as an ambassador for the organization, promoting community engagement and strengthening stakeholder relationships.
  • Serve on committees (as applicable and based on interest/skill set).
  • Maintain confidentiality and uphold high ethical standards.
Desired Skills and Experience

We welcome individuals with experience in one or more of the following areas:

  • Finance or Accounting
  • Social Services
  • Affordable or Non‑Profit Housing
  • Real Estate or Property Management
  • Legal or Compliance
  • Community Development
  • Human Resources or Governance

Lived experience related to affordable housing, community support, or tenant advocacy is also highly valued.

Ideal Candidate Attributes
  • Strong commitment to community well‑being and housing equity
  • Collaborative and respectful communication style
  • Willingness to share insights, ask questions, and engage constructively
  • Ability to review materials in advance of meetings
  • Interest in supporting long‑term organizational sustainability

Apply with letter of interest and/or resume by email to:  mlv@simcoe.ca 

The post Mount Lakeview Non-Profit Housing appeared first on Capacity Canada.


Capacity Canada

Humane Canada

♦ Board Directors (4 Positions) – Humane Canada

Join the Board of Humane Canada and help build a more humane country for every animal.

About the Organization

Humane Canada is the national Federation of SPCAs and humane societies, representing the largest animal-welfare community in Canada. Our vision: A Humane Canada. Our mission: to end animal cruelty, improve animal protection, and promote the humane treatment of all animals.

For more than 65 years, Humane Canada has united animal welfare advocates, organizations and the public with one voice strengthening advocacy, influencing federal policy, and providing leadership for our sector.

We are proud to be recognised for accountability, transparency and governance excellence, including the “Symbol of Trust” from Imagine Canada.

As a national body, our work spans companion animals, farmed animals, wild animals and animals used in science and we provide member & sector support, advocacy, research, and thought leadership to drive systemic change.

This is a pivotal moment in HC’s evolution. As we expand our national reach, deepen partnerships, strengthen our policy and advocacy impact, enhance our social enterprise and revenue diversification, and ensure strong governance, we seek board members who bring expertise, vision, and a collaborative mindset to help lead the next chapter of our work.

While our board currently operates in a hybrid model with both strategic governance and working (e.g., governance and membership development), we are moving toward a fully governance board model aligned with best practice by 2027. Candidates joining us will play a foundational role in shaping and strengthening our future enterprise-wide governance model.

The Opportunity

Humane Canada is seeking dedicated, visionary and strategic leaders to join our Board of Directors. As a Director of HC, you will join a national-level organisation at a time of growth and transformation helping shape strategy, guide national policy, ensure accountability, and amplify our voice on behalf of animals across Canada.

We are looking for committed leaders who understand that meaningful progress comes from sophisticated thinking, collaboration, sector knowledge, and future-focused governance leadership.

We are seeking leaders who have experience guiding membership-based Federation & Association networks and models, or professional industry bodies and who can support the evolution of a strong, high-value membership services strategy and member engagement framework for Humane Canada.

Ideal Candidate Profile

We seek individuals who bring both heart for animal welfare and high-level professional leadership and experience. You will:

  • Have a genuine passion for animal welfare and systemic change
  • Be an established senior leader (C-suite, executive, or equivalent)
  • Have board experience and a solid understanding of governance
  • Be comfortable operating in national-level strategy and advocacy environments
  • Have strong networks and collaborative leadership values
  • Commit 10 hours/month to board & committee responsibilities
  • Understand and appreciate that this board currently blends governance and strategic committee work as part of its evolution toward full governance
Expertise Focus Areas Include:
  • Finance, audit, accounting, banking oversight (Treasurer)
  • Social enterprise, business modelling, and sustainable revenue strategy
  • Philanthropy, fundraising leadership, donor relations
  • Legal expertise (corporate/charity law, governance, animal law)
  • Governance, risk oversight, or national advocacy leadership
  • Association and membership leadership — developing membership models, value propositions, and service structures for national or industry member networks
What You Will Do

As a Director of Humane Canada, you will:

  • Provide strategic oversight and governance leadership
  • Support long-term sustainability and mission advancement
  • Contribute to finance, audit, governance, membership, and strategic initiatives
  • Serve as an ambassador and connect networks and opportunities
  • Support stakeholder and member relations across Canada
  • Participate in at least one committee — currently a mix of governance and strategic execution areas as we transition toward full governance
  • Prepare for and attend quarterly board meetings and committee meetings
Term & Commitment
  • Three-year term, renewable
  • 10 hours/month
  • Monthly/Quarterly meetings + committee responsibilities
  • Annual personal philanthropic support at a level meaningful to you
Why Join Humane Canada?
  • Influence the national animal welfare landscape across Canada
  • Shape and guide governance at a critical moment in our evolution
  • Contribute to a bold vision and strengthen a growing membership network
  • Work alongside passionate leaders committed to systemic change
  • Play a strategic part in the transition toward a fully governance board structure by 2027
How to Apply

Submit a statement of interest and resume/CV to justine@humanecanada.ca by January 31, 2026.

The post Humane Canada appeared first on Capacity Canada.


Brickhouse Guitars

Tony McManus Luthiers Showcase Concert Trailer

-/-

Elmira Advocate

DO ALL THE ELMIRA GUILTY PARTIES REALLY BELIEVE THAT THEY ARE GOING TO AVOID PUBLIC CONDEMNATION & EVENTUAL FORMAL CONDEMNATION FOR THEIR CLEANUP FAILURES & COVERUPS ?

 

Indeed politics makes strange bedfellows. Just look at how Pat McLean treated new councillor Sandy Shantz way back in 2006 after Sandy beat out Pat McLean for a Council seat. Pat was kept on as CPAC Chair by her buddy Mayor Bill Strauss. She then treated Sandy poorly at CPAC meetings by failing to share dates and event times with her. Typical Pat behaviour as I found out later. I also have to wonder if Susan Bryant will eventually be outed/scapegoated/blamed for DNAPLS being dropped like a hot potatoe at UPAC. These "friends" of hers have no honour and no ethics so especially after she passes on and is more susceptible to desperate mud flinging by local politicians and polluters, it likely will occur.  Think about it for a minute. If you are the current, ongoing owner for eleven years prior to the 2028 cleanup deadline failure, who are you going to blame? Local politicians will likely be long gone trying to avoid blame. Your consultants (CRA/GHD) are exactly that "yours". You kept them on when you bought Uniroyal/Chemtura in 2017. You kept on paying them for over a decade. 

Local "activists" are the best target as they've always been. Oddly of course except for Susan Bryant. How strange is that? She received a life time invitation to attend and participate in all public meetings.  Myself I've been on the "outs" since at least 2015 courtesy of mayor Shantz and former councillor Mark Bauman.(Mr. Flip Flop). I, like the rest of the unwashed masses in Elmira, haven't even been permitted to speak at public TAG or TRAC meetings. The filth have even refused my written Delegations to TRAC hence I simply send them directly by e-mail to TRAC members who however never seem interested in either responding or commenting on them. That reflects on them not me.

There are written records of what has been done for cleanup as well as what has not been done and should have been. An honest focus on DNAPL should have occurred immediately in late 1989. The same thing with Dioxins and DDT. Did not happen. All Uniroyal and successor companies did was claim that DDT and Dioxins are hydrophobic i.e. afraid of water hence they preferentially bind with soil particles, fine sediments etc. Those in charge did not even want to discuss how all the discharged solvents at Uniroyal Chemical increased the mobility of DDT and Dioxins. They certainly did not want to discuss how free phase DNAPL both on and off the Uniroyal site also vastly increased the mobility of so many contaminants including DDT and Dioxins. 

Their own DNAPL silence and disgusting public consultation being limited to only vetted citizens approved by the polluter and his fellow travellors (mayor etc.) has condemned them. TRAC just like TAG are and were a bunch of deferential individuals lacking the confidence to dig in their heels and demand timely and honest answers from the company and their consultants. A current TAG and TRAC member has actually admitted this in writing and submitted it to them. 

    


KW Granite Club

KWGC teams are playing in Provincials in Elmira

The top 12 men’s and women’s curling teams in the province are competing in Elmira, Ont. this week and the field includes three KWGC teams! Come out and support Team Ford, Team Artichuk, and Team MacTavish. Team Mooibroek curls out of the Whitby Curling Club but, of course, Sam Mooibroek hails from KWGC. CTV News reported on the event and talked to Team MacTavish.
www.ctvnews.ca/kitchener/article/top-curlers-in-ontario-compete-in-elmira/


Code Like a Girl

IKEA Senior Software Engineer Java Interview — Amsterdam

IKEA Senior Software Engineer Java Interview — AmsterdamIkea Coding challenge — Invoice Cost Calculator♦Pic credits : IKEAIntroduction

Last week, I interviewed for a Senior Software Engineer position at IKEA, and the coding challenge was one of the most interesting real-world problems I’ve encountered. Unlike typical LeetCode-style algorithm questions, this challenge tested how you can build a system from scratch covering all the microservices and core java concepts. It was 1.5 hours duration with 2 people(Technical manager and a senior software engineer).

In this article, I’ll break down the exact problem, my solution approach, key Java concepts I used, and the lessons learned that can help you ace similar interviews.

The Problem Statement

IKEA processes invoices for furniture deliveries from suppliers. These invoices contain line items that can be:

  • Route items: Multiple orders delivered together on the same truck route
  • Single items: Individual standalone orders

Each order has:

  • used (condition): "second_hand" or "first_hand"
  • sellingUnit (warehouse): "ams_warehouse", "berlin_warehouse", etc.
♦Ikea: Problem statement for senior software engineer-JavaThe Challenge

Given an invoice with mixed route and single items, calculate the total cost grouped by {condition + warehouse}.

Example Input: Invoice request

{
"invoice_id": 1001,
"supplier_id": 1,
"billing_start_date": "2025-01-01",
"billing_end_date": "2025-01-31",
"items": [
{
"type": "route",
"route": "route5",
"orders": ["order1", "order2", "order3"],
"cost": 45
},
{
"type": "single",
"order_id": "order4",
"cost": 12
},
{
"type": "single",
"order_id": "order5",
"cost": 20
}
]
}

Sample Orders Data:

{
"orders": [
{
"order_id": "order1",
"used_selling_unit": "second_hand",
"warehouse": "ams_warehouse"
},
{
"order_id": "order2",
"used_selling_unit": "first_hand",
"warehouse": "ams_warehouse"
},
{
"order_id": "order3",
"used_selling_unit": "second_hand",
"warehouse": "berlin_warehouse"
},
{
"order_id": "order4",
"used_selling_unit": "second_hand",
"warehouse": "ams_warehouse"
},
{
"order_id": "order5",
"used_selling_unit": "first_hand",
"warehouse": "berlin_warehouse"
}
]
}

Expected Output:

{
"second_hand_ams_warehouse": 27.00,
"first_hand_ams_warehouse": 15.00,
"second_hand_berlin_warehouse": 15.00,
"first_hand_berlin_warehouse": 20.00
}
Hint:

For route items, the cost must be split equally among all orders in that route!

Calculation Example:

Route item cost: €45 for 3 orders (order1, order2, order3)
Cost per order: €45 ÷ 3 = €15.00
order1 (second_hand, ams_warehouse): €15.00
order2 (first_hand, ams_warehouse): €15.00
order3 (second_hand, berlin_warehouse): €15.00
order4 (second_hand, ams_warehouse): €12.00 (single item)
order5 (first_hand, berlin_warehouse): €20.00 (single item)
Grouped results:
second_hand_ams_warehouse: €15.00 + €12.00 = €27.00
first_hand_ams_warehouse: €15.00 = €15.00
second_hand_berlin_warehouse: €15.00 = €15.00
first_hand_berlin_warehouse: €20.00 = €20.00
Solution

There was Spring Boot already built and they had shared the code with code with me plugin of IntelliJ.

They already had the structure built. We need to add the logic in service layer and also add few unit tests.

Project Structure
ikea-invoice-challenge/
├── src/
│ ├── main/
│ │ ├── java/com/ikea/invoice/
│ │ │ ├── InvoiceApplication.java
│ │ │ ├── model/
│ │ │ │ ├── Order.java # JPA Entity
│ │ │ │ ├── InvoiceItem.java # Abstract class with @JsonTypeInfo
│ │ │ │ ├── RouteInvoiceItem.java # Multiple orders
│ │ │ │ ├── SingleInvoiceItem.java # Single order
│ │ │ │ └── CostKey.java # Java Record for grouping
│ │ │ ├── dto/
│ │ │ │ └── InvoiceRequest.java
│ │ │ ├── repository/
│ │ │ │ └── OrderRepository.java
│ │ │ ├── service/
│ │ │ │ └── InvoiceService.java # Core business logic
│ │ │ ├── controller/
│ │ │ │ └── InvoiceController.java
│ │ │ ├── config/
│ │ │ │ └── DataLoader.java # Sample data loader
│ │ │ └── exception/
│ │ │ ├── OrderNotFoundException.java
│ │ │ └── GlobalExceptionHandler.java
│ │ └── resources/
│ │ ├── application.yml
│ │ ├── invoice.json # Sample invoice data
│ │ └── order.json # Sample order data
│ └── test/
│ └── java/com/ikea/invoice/
│ └── InvoiceServiceTest.java
└── pom.xml

Dependencies:

<!-- pom.xml -->
<dependencies>
<!-- Spring Boot Starter Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Data JPA -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- H2 Database (In-memory) -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- Spring Boot Test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Running the Application
# Clone and run
git clone <repository>
cd ikea-invoice-challenge
mvn spring-boot:run

They already had given the Models for this.

1. Invoice Item Models

Base Class:

@JsonTypeInfo(use = Id.NAME, property = "type")
@JsonSubTypes({
@Type(value = RouteInvoiceItem.class, name = "route"),
@Type(value = SingleInvoiceItem.class, name = "single")
})
public abstract class InvoiceItem {
protected String type;
protected BigDecimal cost;
}

Route Item — Multiple orders share cost:

public class RouteInvoiceItem extends InvoiceItem {
private String route;
private List<String> orders;
}

Single Item — One order, full cost:

public class SingleInvoiceItem extends InvoiceItem {
private String orderId;
}
2. Java Record for Grouping Key

They had given Java Record to represent the grouping key:

public record CostKey(String used, String sellingUnit) {

public String toKeyString() {
return used + "_" + sellingUnit;
}
}
3. Order Entity
@Entity
@Table(name = "orders")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Order {

@Id
private String orderId;

private String used; // "second_hand" or "first_hand"

private String sellingUnit; // "ams_warehouse", "berlin_warehouse"
}
The Solution logic

Here’s the complete service implementation with detailed comments:

@Service
@AllArgsConstructor
public class InvoiceService {
private final OrderRepository orderRepository;
public Map<String, BigDecimal> calculateGroupCosts(InvoiceRequest invoice) {
// Step 1: Extract all order IDs from both route and single items
List<String> requestOrderIds = extractOrderIds(invoice.getItems());
// Step 2: Fetch orders from database in one query
List<Order> foundOrders = orderRepository.findAllByOrderIdIn(requestOrderIds);
// Step 3: Validate that all requested orders exist
validateOrders(requestOrderIds, foundOrders);
// Step 4: Create a Map for O(1) order lookup
Map<String, Order> orderMap = foundOrders.stream()
.collect(Collectors.toMap(Order::getOrderId, order -> order));
// Step 5: Process each invoice item and calculate grouped costs
Map<String, BigDecimal> groupedCosts = new HashMap<>();

for (InvoiceItem item : invoice.getItems()) {

if (item instanceof RouteInvoiceItem) {
RouteInvoiceItem routeItem = (RouteInvoiceItem) item;

// Split cost equally among all orders in the route
int numberOfOrders = routeItem.getOrders().size();
BigDecimal costPerOrder = item.getCost().divide(
BigDecimal.valueOf(numberOfOrders),
2, // Scale: 2 decimal places
RoundingMode.HALF_UP
);
// Add cost for each order to its respective group
for (String orderId : routeItem.getOrders()) {
Order order = orderMap.get(orderId);
String key = new CostKey(order.getUsed(), order.getSellingUnit())
.toKeyString();

// This is where the magic happens!
groupedCosts.merge(key, costPerOrder, BigDecimal::add);
}
} else if (item instanceof SingleInvoiceItem) {
SingleInvoiceItem singleItem = (SingleInvoiceItem) item;

Order singleOrder = orderMap.get(singleItem.getOrderId());
String key = new CostKey(singleOrder.getUsed(), singleOrder.getSellingUnit())
.toKeyString();

groupedCosts.merge(key, item.getCost(), BigDecimal::add);
}
}

return groupedCosts;
}
private List<String> extractOrderIds(List<InvoiceItem> items) {
return items.stream()
.flatMap(item -> {
if (item instanceof RouteInvoiceItem) {
return ((RouteInvoiceItem) item).getOrders().stream();
} else if (item instanceof SingleInvoiceItem) {
return Stream.of(((SingleInvoiceItem) item).getOrderId());
}
return Stream.empty();
})
.distinct() // Remove duplicates
.toList();
}
private void validateOrders(List<String> requestOrderIds,
List<Order> foundOrders) {
List<String> foundOrderIds = foundOrders.stream()
.map(Order::getOrderId)
.toList();
List<String> missingOrderIds = requestOrderIds.stream()
.filter(id -> !foundOrderIds.contains(id))
.toList();
if (!missingOrderIds.isEmpty()) {
throw new OrderNotFoundException(
"Orders not found: " + missingOrderIds
);
}
}
}
Key Java Concepts Demonstrated1. The merge() Method -

This one line is doing a lot of work . Its concise , less error prone and thread safe.

groupedCosts.merge(key, costPerOrder, BigDecimal::add);

What it does:

  • If key doesn't exist in the map → Insert costPerOrder
  • If key exists → Apply BigDecimal::add to combine old value + new value

Manual equivalent :

if (groupedCosts.containsKey(key)) {
BigDecimal existing = groupedCosts.get(key);
BigDecimal newValue = existing.add(costPerOrder);
groupedCosts.put(key, newValue);
} else {
groupedCosts.put(key, costPerOrder);
}
2. Pattern Matching with instanceof

Modern Java (16+) allows this elegant pattern:

if (item instanceof RouteInvoiceItem routeItem) {
// routeItem is automatically cast!
routeItem.getOrders().forEach(...);
}

Old way (verbose):

if (item instanceof RouteInvoiceItem) {
RouteInvoiceItem routeItem = (RouteInvoiceItem) item;
routeItem.getOrders().forEach(...);
}
3. Stream API’s flatMap()

This is crucial for extracting order IDs from nested structures:

List<String> orderIds = items.stream()
.flatMap(item -> {
if (item instanceof RouteInvoiceItem) {
return ((RouteInvoiceItem) item).getOrders().stream(); // Stream<String>
} else if (item instanceof SingleInvoiceItem) {
return Stream.of(((SingleInvoiceItem) item).getOrderId()); // Stream<String>
}
return Stream.empty();
})
.distinct()
.toList();

output:

Input: [RouteItem([order1, order2]), SingleItem(order3), RouteItem([order4])]
After flatMap:
[order1, order2, order3, order4] ← Flattened!
4. BigDecimal for Financial Calculations

NEVER use double for money!

// WRONG - Floating point errors
double cost = 45.0 / 3; // Might be 14.999999999
// CORRECT - Precise decimal arithmetic
BigDecimal cost = new BigDecimal("45.00")
.divide(new BigDecimal("3"), 2, RoundingMode.HALF_UP);
// Result: exactly 15.00
5. Java Records (Java 14+)
// Before Records (verbose)
public class CostKey {
private final String used;
private final String sellingUnit;

public CostKey(String used, String sellingUnit) {
this.used = used;
this.sellingUnit = sellingUnit;
}

public String getUsed() { return used; }
public String getSellingUnit() { return sellingUnit; }

@Override
public boolean equals(Object o) { /* 10+ lines */ }

@Override
public int hashCode() { /* 3+ lines */ }

@Override
public String toString() { /* 3+ lines */ }
}
// With Records (one line!)
public record CostKey(String used, String sellingUnit) {
public String toKeyString() {
return used + "_" + sellingUnit;
}
}
Unit tests

Create a tests for InvoiceService.

@SpringBootTest
class InvoiceServiceTest {
@Autowired
private InvoiceService invoiceService;
@Autowired
private OrderRepository orderRepository;
@BeforeEach
void setUp() {
orderRepository.deleteAll();
orderRepository.saveAll(List.of(
new Order("order1", "second_hand", "ams_warehouse"),
new Order("order2", "first_hand", "ams_warehouse"),
new Order("order3", "second_hand", "berlin_warehouse"),
new Order("order4", "second_hand", "ams_warehouse"),
new Order("order5", "first_hand", "berlin_warehouse")
));
}
@Test
void shouldCalculateGroupedCosts() {
// Given: Invoice with route and single items
InvoiceRequest invoice = new InvoiceRequest(
1001L,
1L,
LocalDate.of(2025, 1, 1),
LocalDate.of(2025, 1, 31),
List.of(
new RouteInvoiceItem("route5", List.of("order1", "order2", "order3")),
new SingleInvoiceItem("order4"),
new SingleInvoiceItem("order5")
)
);
// When
Map<String, BigDecimal> result = invoiceService.calculateGroupedCosts(invoice);
// Then
assertEquals(4, result.size());

// Verify each group
assertEquals(new BigDecimal("22.00"),
result.get("second_hand_ams_warehouse"));
assertEquals(new BigDecimal("25.00"),
result.get("first_hand_ams_warehouse"));
assertEquals(new BigDecimal("8.00"),
result.get("second_hand_berlin_warehouse"));
assertEquals(new BigDecimal("20.00"),
result.get("first_hand_berlin_warehouse"));
}
@Test
void shouldThrowExceptionForMissingOrders() {
// Given: Invoice referencing non-existent order
InvoiceRequest invoice = new InvoiceRequest(
1001L,
1L,
LocalDate.of(2025, 1, 1),
LocalDate.of(2025, 1, 31),
List.of(new SingleInvoiceItem("nonexistent"))
);
// When/Then
assertThrows(OrderNotFoundException.class,
() -> invoiceService.calculateGroupedCosts(invoice));
}
}
Follow-up Questions I Was Asked

1. How would you handle concurrent invoice calculations?

2. What if we add a new invoice item type like ‘Bulk’?

3. How would you optimize for 10,000 orders in a single invoice?

4. What about error handling and edge cases?

What Impressed the Interviewer
  1. Communication — Communicate how you are going to solve the problem , which approach do you want to take?
  2. Clean Architecture & Validation: Separation of concerns (controller → service → repository) & Checking for missing orders before processing
  3. Error Handling: Custom exceptions with meaningful messages
  4. Testing: Comprehensive unit tests with clear assertions
  5. Scalability Discussion: Thinking about performance for large datasets.
Final Thoughts

The IKEA coding interview was fairly doable task.It was mostly like a real world problem unlike the fancy leetcode problems. They were not looking for extraordinary solutions. All they were seeing was if you were able to communicate and explain your approach. The Ikea members were friendly and helpful.
Overall it was a great experience.

If you’re preparing for similar interviews, focus on:

  • Design patterns (especially Strategy, Factory, and polymorphism)
  • Modern Java features (Records, pattern matching, enhanced Streams)
  • Spring Boot fundamentals (dependency injection, REST controllers, JPA)
  • Clean code principles (SOLID, separation of concerns)
  • Production readiness (error handling, validation, testing)

Most importantly, practice explaining your code and design decisions out loud.

Good luck with your interviews! Feel free to ask questions in the comments.

You can find the complete working code on GitHub: ikea-invoice-challenge

Thank you for reading this article. Please provide your valuable suggestions/ feedback.

  • Clap and Share if you liked the content.
  • 📰 Read more content on my Medium (on Java Developer interview questions)
  • 🔔 Follow me on: LinkedIn
  • Reach out to me for resume preparation and interview ready. Contact me here.

Please find my other helpful articles on Java Developer interview questions.

Following are some of the frequently asked Java 8 Interview Questions

Frequently Asked Java Programs

Dear Readers, these are the commonly asked Java programs to check your ability in writing the logic.

SpringBoot Interview Questions | Medium

Rest and Microservices Interview Questions| Medium

Spring Boot tutorial | Medium

Must-know-coding-programs-for-faang-companies| Medium

IKEA Senior Software Engineer Java Interview — Amsterdam 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

Coding The Body Clock

How Women In AI Can Build Time-Aware Healthcare Systems

Continue reading on Code Like A Girl »


Greater Kitchener Waterloo Chamber of Comerce

Vision One Million Scorecard: A Simple Overview

The Greater Kitchener Waterloo Chamber of Commerce is proud to play a pivotal role in advancing the Vision One Million Scorecard, a key initiative that tracks Waterloo Region’s progress toward one million residents by 2050 and supports sustainable, long-term growth. As BESTWR Chair, Ian McLean, President & CEO of the Greater Kitchener Waterloo Chamber, is committed to ensuring that both residents and the business community are prepared for the region’s future growth.

The Scorecard is a dynamic tool that measures how well Waterloo Region is keeping pace with rapid population growth. Developed by BESTWR with support from the Future Cities Institute, it brings together local partners to monitor progress, identify gaps, and drive solutions that will shape the region’s future.

The Business and Economic Support Team of Waterloo Region (BESTWR) is a coalition of five leading business organizations: the Greater Kitchener Waterloo Chamber of Commerce, Communitech, the Cambridge Chamber of Commerce, Explore Waterloo Region, and the Waterloo Region Economic Development Corporation, working together to promote economic prosperity and address community needs. Through collaborative leadership, BESTWR ensures the region plans effectively for growth while prioritizing community well-being.

Why the Scorecard Matters

Waterloo Region is one of Canada’s fastest-growing communities. Over the next 25 years, the population is projected to reach one million residents, an increase of more than 300,000 people. However, current rates of development in housing, transportation, healthcare, infrastructure, and job opportunities are not keeping pace.

The Scorecard was created to address these challenges by:

  • Tracking the region’s progress in critical areas of growth
  • Highlighting where we are keeping pace and where we are falling behind
  • Guiding coordinated advocacy with government and partners
  • Focusing investment and resources where they are most needed

The Scorecard reflects the priorities that residents and business leaders identify as most critical to the region’s success. It highlights areas which require urgent action to protect the quality of life, support economic growth, and build a resilient future.

Although significant community input has already shaped the Scorecard, the Chamber and BESTWR continue to welcome feedback. Your ideas and perspectives will help ensure Waterloo Region remains strong, sustainable, and ready for the future.

To learn more, visit the Vision One Million Scorecard.

The post Vision One Million Scorecard: A Simple Overview appeared first on Greater KW Chamber of Commerce.


Code Like a Girl

Progress Isn’t Measured by Speed

Speed seemed like progress for a long time.

We’d ship new stuff, and it felt great. Things moved to Done, our boards looked good, and the team felt productive. It was like we had a lot of momentum, which we sometimes confused with actually going in the right direction.

However, over time, a gap often appears between how fast teams are moving and how far they are actually getting. Systems become harder to change, simple updates take longer than expected, and each new feature introduces additional risk. At that point, speed alone stops being a reliable indicator of progress.

Speed Creates Motion, Not Direction

When you start a new venture, speed is of the essence. You have to get the first iteration out the door and then quickly revise it based on people’s feedback. That type of interaction really boosts confidence. In fact, the most important thing is to maintain the momentum, otherwise, things will stagnate.

The interesting thing about this stage is that it is easy to confuse the speed of execution with progress. In fact, the more important the deadline becomes, it shows the less important the understanding of the outcome is. As people get busy working on something, it becomes more apparent due to the activity level, but unfortunately this avoids defining the end. It is just like a treadmill — going fast but not getting anywhere. The real progress you may have felt is just lost.

Progress requires not just movement, but alignment — between where the system is today and where it is expected to go.

Most Slowdowns Are Built Gradually

Getting things done quickly matters a lot, especially when you’re just starting with a new product or system. It helps confirm your ideas, get feedback faster, and build trust. If you don’t have it, your team might get stuck.

The trouble starts when speed becomes the only thing that counts. When getting something out fast is more important than being clear, and just doing stuff replaces really understanding what you’re doing, you keep going but lose your way. Teams stay busy, but the feeling of making real progress slowly fades.

To actually make progress, you need to move in the right direction — knowing where your system is now and where it needs to go. Systems don’t just become hard to handle all at once.

Instead, it happens bit by bit through small, seemingly good choices. Cleaning things up gets put off to hit a deadline. A quick fix is added to avoid stopping work. Complications are accepted because fixing them properly seems too expensive right then.

Each choice seems fine on its own. None of them look like a mistake. But over time, these choices pile up and change how the system works.

Eventually, things slow down, not because of hard technical problems, but because no one is sure what to do. Making changes becomes risky. People lose faith. The system fights back, not because it’s fancy, but because it’s weak.Instead, it happens bit by bit through small, seemingly good choices. Cleaning things up gets put off to hit a deadline. A quick fix is added to avoid stopping work. Complications are accepted because fixing them properly seems too expensive right then.

Each choice seems fine on its own. None of them look like a mistake. But over time, these choices pile up and change how the system works.

Eventually, things slow down, not because of hard technical problems, but because no one is sure what to do. Making changes becomes risky. People lose faith. The system fights back, not because it’s fancy, but because it’s weak.

♦Progress Looks Different in Long-Lived Systems

When software has an expected lifespan, how we define progress needs to change.

Instead of focusing on new features, we can measure growth by how safely we can make changes, how easily new people can understand it, and how predictable its behavior is.

With older systems, changes are often small and not very flashy. There are fewer big problems that get noticed. This steady, small progress doesn’t stop what’s already happening; it just builds on it. You might not always see these results, but they definitely help the system run better.

♦Clarity Enables Sustainable Movement

Clarity becomes more valuable than raw speed as systems grow.

Clear code reduces hesitation. Clear boundaries reduce rework. Clear decisions reduce repeated discussions. When engineers can reason about a system with confidence, progress becomes smoother and more consistent.

This is why, in the long run, readable, straightforward solutions tend to be better than clever solutions. Not because they are simpler in theory, it’s just that they reduce cognitive load and allow teams to function with a lot less friction.

Speed may accelerate delivery in the short term. Clarity sustains it.

Sustainable Progress Is a Team Outcome

Often progress is viewed as an individual skill when, in fact, it is influenced by the environment developed collectively by teams.

Teams can only move ahead when ownership is made clear, knowledge is shared, and context is available. When documentation helps enable true understanding rather than mere compliance. When code reviews improve systems rather than demonstrate dominion.

Progress that needs firefighting or a few people keeping everything together makes it brittle. Sustainable Progress can spread the responsibilities and make dependencies less. This lets the team progress without having to rely on heroics.

Experience Changes How Progress Is Evaluated

Teams often change their focus over time.

They move from just looking at delivery speed to thinking about whether they can keep up that speed. They start to wonder if their system helps them adapt or if it gets in the way. They consider if what they do today opens doors for the future or creates problems.

This change isn’t about aiming lower. It’s about learning from experience. It’s about seeing that going too fast without thinking ahead can slow things down, not speed them up.

If you can’t keep doing something, then that progress won’t last.

What Actually Moves Teams Forward Over Time

In reality, steady progress usually doesn’t look like much.

You get fewer unexpected problems in production.
Releases become more predictable.
Decisions stick, so you don’t keep revisiting them.
Your systems adapt to change rather than fighting it.

These things often don’t seem pressing, which makes them easy to put off. But they’re what keep teams going when that initial excitement wears off and things get more complicated.

♦Progress Is About Direction, Not Just Pace

In software, speed is key for deadlines and energy. Yet true progress isn’t just short-term quickness. It’s about a pace that doesn’t drain the system, code, or team. Sustainable engineering isn’t slow; it’s picking a pace that fits the system’s goals and complexity, ensuring lasting progress beyond initial momentum.

Links for images:

domino image:www.flickr.com/photos/testlab/21496317363/

tree roots: www.moretolifetoday.net/deep-roots/

pace image:runningmagazine.ca/sections/training/try-a-steady-state-workout-to-build-strength-and-feel-powerful/

Progress Isn’t Measured by Speed 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

Beyond the Orhcestrator: Mastering Agent-to-Agent (A2A) Protocols in Java

This article for Day 9 is part of my Agents in Action series, where we go from theory to hands-on implementation of AI agents in Java.

Continue reading on Code Like A Girl »


Code Like a Girl

AI Engineering and Evals as New Layers of Software Work

How to maintain reliability in inherently stochastic systems♦Image by Rebe Pascual from Unsplash

My job doesn’t look quite the same as before. As a software engineer in the AI space, my work has been a hybrid of software engineering, AI engineering, product intuition, and doses of user empathy.

With so much going on, I wanted to take a step back and reflect on the bigger picture and the kind of skills and mental models engineers need to stay ahead. A recent read of O’Reilly’s AI Engineering gave me the nudge to also want to deep dive into how to think about evals — a core component in any AI system.

One thing stood out: AI engineering is often more software than AI.

Outside of research labs like OpenAI or Anthropic, most of us aren’t training models from scratch. The real work is about solving business problems with the tools we already have — giving models enough relevant context, using APIs, building RAG pipelines, tool-calling — all on top of the usual SWE concerns like deployment, monitoring and scaling.

In other words, AI engineering isn’t replacing software engineering — it’s layering new complexity on top of it.

This piece is me teasing out some of those themes. If any of them resonates, I’d love to hear your thoughts — feel free to reach out here!

The three layers of an AI application stack

Think of an AI app as being built on three layers: 1) Application development 2) Model development 3) Infrastructure.

Most teams start from the top. With powerful models readily available off the shelf, it often makes sense to begin by focusing on building the product and only later dip into model development or infrastructure as needed.

As O’Reilly puts it, “AI engineering is just software engineering with AI models thrown into the stack.”

Why evals matter and why they’re tough

In software, one of the biggest headaches for fast-moving teams is regressions. You ship a new feature, and in the process unknowingly break something else. Weeks later, a bug surfaces in a dusty corner of the codebase, and tracing it back becomes a nightmare.

Having a comprehensive test suite helps catch these regressions.

AI development faces a similar problem. Every change — whether it’s prompt tweaks, RAG pipeline updates, fine-tuning, or context engineering — can improve performance in one area while quietly degrading another.

In many ways, evaluations are to AI what tests are to software: they catch regressions early and give engineers the confidence to move fast without breaking things.

But evaluating AI isn’t straightforward. Firstly, the more intelligent models become, the harder evaluation gets. It’s easy to tell if a book summary is bad if it’s gibberish, but much harder if the summary is actually coherent. o know whether it’s actually capturing the key points, not just sounding fluent or factually correct, you might have to read the book yourself.

Secondly, tasks are often open-ended. There’s rarely a single “right” answer and impossible to curate a comprehensive list of correct outputs.

Thirdly, foundation models are treated as black boxes, where details of model architecture, training data and training process are often scrutinised or even made public. These details reveal alot about a model’s strengths and weaknesses and without it, people only evaluate models based by observing it’s outputs.

How to think about evals

I like to group evals into two broad realms: quantitative and qualitative.

Quantitative evals have clear, unambiguous answers. Did the math problem get solved correctly? Did the code execute without errors? These can often be tested automatically, which makes them scalable.

Qualitative evals, on the other hand, live in the grey areas. They’re about interpretation and judgment — like grading an essay, assessing the tone of a chatbot, or deciding whether a summary “sounds right.”

Most evals are a mix of both. For example, evaluating a generated website means not only testing whether it performs its intended functions (quantitative: can a user sign up, log in, etc.), but also judging whether the user experience feels intuitive (qualitative).

Functional correctness

At the heart of quantitative evals is functional correctness: does the model’s output actually do what it’s supposed to do?

If you ask a model to generate a website, the core question is whether the site meets its requirements. Can a user complete key actions? Does it work reliably? This looks a lot like traditional software testing, where you run a product against a suite of test cases to verify behaviour. Often, this can be automated.

Similarity against reference data

Not all tasks have such clear, testable outputs. Translation is a good example: there’s no single “correct” English translation for a French sentence, but you can compare outputs against reference data.

The downside: This relies heavily on the availability of reference datasets, which are expensive and time-consuming to create. Human-generated data is considered the gold standard, but increasingly, reference data is being bootstrapped by other AIs.

There are a few ways to measure similarity:

  • Human judgement
  • Exact match: whether the generated response matches one of the reference responses exactly. These produces boolean results.
  • Lexical similarity: measuring how similar the outputs look (e.g., overlap in words or phrases).
  • Semantic similarity: measuring whether the outputs mean the same thing, even if the wording is different. This usually involves turning data into embeddings (numerical vectors) and comparing them. Embeddings aren’t just for text — platforms like Pinterest use them for images, queries, and even user profiles.
Lexical similarity only checks surface-level resemblance, while semantic similarity digs deeper into meaning.
AI as a judge

Some tasks are nearly impossible to evaluate cleanly with rules or reference data. Assessing the tone of a chatbot, judging the coherence of a summary, or critiquing the persuasiveness of ad copy all fall into this category. Humans can do it, but human evals don’t scale.

Here’s how to structure the process:

  1. Define a structured and measurable evaluation criteria. Be explicit about what you care about — clarity, helpfulness, factual accuracy, tone, etc. Criteria can use a scale (1–5 rating) or binary checks (pass/fail).
  2. The original input, the generated output, and any supporting context are given to the AI judge. A score, label or even an explanation for evaluation is then returned by the judge.
  3. Aggregate over many outputs. By running this process across large datasets, you can uncover patterns — for example, noticing that helpfulness dropped 10% after a model update.

Because this can be automated, it enables continuous evaluation, borrowing from CI/CD practices in software engineering. Evals can be run before and after pipeline changes (from prompt tweaks to model upgrades), or used for ongoing monitoring to catch drift and regressions.

Of course, AI judges aren’t perfect. Just as you wouldn’t fully trust a single person’s opinion, you shouldn’t fully trust a model’s either. But with careful design, multiple judge models, or running them over many outputs, they can provide scalable approximations of human judgment.

Eval driven development

O’Reilly talked about the concept of eval-driven development, inspired by test-driven development in software engineering, something I felt is worth sharing.

The idea is simple: Define your evals before you build.
In AI engineering, this means deciding what “success” looks like and how it’ll be measured.

Impact still matters most — not hype. The right evals ensure that AI apps demonstrate value in ways that are relevant to users and the business.

When defining evals, here are some key considerations:

Domain knowledge

Public benchmarks exist across many domains — code debugging, legal knowledge, tool use — but they’re often generic. The most meaningful evals usually come from sitting down with stakeholders and defining what truly matters for the business, then translating that into measurable outcomes.

Correctness isn’t enough if the solution is impractical. For example, a text-to-SQL model might generate a correct query, but if it takes 10 minutes to run or consumes huge resources, it’s not useful at scale. Runtime and memory usage are important metrics too.

Generation capability

For generative tasks — whether text, image, or audio — evals may include fluency, coherence, and task-specific metrics like relevance.

A summary might be factually accurate but miss the most important points — an eval should capture that. Increasingly, these qualities can themselves be scored by another AI.

Factual consistency

Outputs need to be checked against a source of truth. This can happen in two ways:

  1. Local consistency
    This means verifying outputs against a provided context. This is especially useful for specific domains that are unique to themselves and have limited scope. For instance, extracted insights should be consistent with the data.
  2. Global consistency
    This means verifying outputs against open knowledge sources such as by fact checking via a web search or a market research and so on.
  3. Self verification
    This happens when a model generates multiple outputs, and measures how consistent these responses are with each other.
Safety

Beyond the usual concept of safety such as to not include profanity and explicit content, there are actually many ways in which safety can be defined. For instance, chatbots should not reveal sensitive customer data and should be able to guard against prompt injection attacks.

To sum up

As AI capabilities grow, robust evals will only become more important. They’re the guardrails that let engineers move quickly without sacrificing reliability.

I’ve seen how challenging reliability can be and how costly regressions are. They damage a company’s reputation, frustrate users, and create painful dev experiences, with engineers stuck chasing the same bugs over and over.

As the boundaries between engineering roles blur, especially in smaller teams, we’re facing a fundamental shift in how we think about software quality. The need to maintain and measure reliability now extends beyond rule-based systems to those that are inherently probabilistic and stochastic.

AI Engineering and Evals as New Layers of Software Work 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

One SQL Concept That Can Save You in Interviews

Why NOT EXISTS Is Safer Than NOT IN♦Photo by Marissa Grootes on Unsplash

If you’ve ever written a SQL query using NOT IN and got unexpected results, you’re not alone. This is a very common confusion and this can save you in your interviews.

In this post, we’ll understand why NOT EXISTS is usually preferred over NOT IN, using simple logic and real examples.

Today, while solving a question on LeetCode, I encountered an error even though my logic was correct. After searching through online resources and AI tools, I came to learn an interesting fact about PostgreSQL.

Question Link : leetcode.com/problems/sales-person/description/

Solution from my end

WITH cte AS (
SELECT o.sales_id
FROM orders o
JOIN company c
ON o.com_id = c.com_id
WHERE c.name ILIKE 'red'
)
SELECT s.name
FROM salesperson s
WHERE NOT EXISTS (
SELECT 1
FROM cte
WHERE cte.sales_id = s.sales_id
);

Important Note : The condition cte.sales_id = s.sales_id is necessary to correlate the subquery with the outer query so that NOT EXISTS is evaluated for each row individually. Using NOT EXISTS without a correlation condition is almost always incorrect, as it does not properly compare rows between the outer query and the subquery.

Another mistake I made was assuming that string values are not case-sensitive in SQL. In reality, SQL keywords are case-insensitive, but string values are case-sensitive by default.

In PostgreSQL, text comparison is case-sensitive unless specified otherwise. That is why I used ILIKE, which performs case-insensitive pattern matching.

ILIKE is a PostgreSQL-specific operator used for case-insensitive pattern matching. It also uses wildcard like LIKE .

LIKE (case-sensitive in PostgreSQL)

SELECT 'RED' LIKE 'red';

Result: false

ILIKE (case-insensitive)

SELECT 'RED' ILIKE 'red';

Result: true

The Hidden Problem with NOT IN

At first glance, NOT IN looks straightforward:

SELECT *
FROM student
WHERE id NOT IN (SELECT id FROM school);

The goal is to:
Select rows from student whose id does not appear in school.

However, the problem starts when the subquery returns a NULL value.

SQL Uses Three-Valued Logic

Unlike basic Boolean logic (TRUE / FALSE), SQL works with three-valued logic:

  • TRUE
  • FALSE
  • UNKNOWN (caused by NULL)

Now consider this simple expression:

SELECT 5 NOT IN (1, 2, NULL);
What should this return?

You might expect TRUE, but the actual result is:

UNKNOWN, which SQL treats as FALSE

Why?

  • 5 ≠ 1 → TRUE
  • 5 ≠ 2 → TRUE
  • 5 ≠ NULL → UNKNOWN

Since NOT IN requires all comparisons to be TRUE, the presence of NULL breaks the condition.

Result: no rows are returned

How This Causes Real Bugs

Imagine your subquery returns:

(1, 4, NULL)

Then this condition:

WHERE sales_id NOT IN (1, 4, NULL)

Will return zero rows, even if there are valid sales_id values that should be included.

This is one of the most common logical bugs in SQL queries.

Why NOT EXISTS Works Correctly

Now look at this alternative:

SELECT s.name
FROM salesperson s
WHERE NOT EXISTS (
SELECT 1
FROM orders o
WHERE o.sales_id = s.sales_id
);

What NOT EXISTS actually checks

“Does there exist any row that satisfies this condition?”

  • If no row exists → condition is TRUE
  • If a row exists → condition is FALSE

Importantly:

  • NULL values do not affect this logic
  • SQL simply checks for row existence, not value comparison

This makes NOT EXISTS safe and reliable

In many databases:

  • NOT EXISTS can stop searching as soon as it finds a match
  • NOT IN often builds the full result set first

This makes NOT EXISTS not only safer, but often more efficient for large tables.

Final Takeaway

If a subquery column can contain NULL values, always prefer NOT EXISTS over NOT IN.

This small change can save you from subtle bugs, wrong outputs, and a lot of debugging time.

Note: The concepts presented in this post are based on my study of online references, supplemented by the use of AI tools (including ChatGPT) to improve clarity and understanding.

If you found this helpful, follow dataXml chronicles on Medium and give the post a like!

One SQL Concept That Can Save You in Interviews 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

When Mistakes Teach You Best

Early in my career, I worked on a feature that let clients reorder, copy, and delete steps in a process. At the time, I was eager and a bit headstrong, wanting to prove myself. The interface was clean, the functionality smooth, and it solved a real need for our users. I was proud of what I had built, and the sense of accomplishment that came with it was exhilarating.

Then, not long after, the feature needed a small hot-fix. A couple of lines of code. No big deal. I thought it would be quick, and I was confident in my understanding of the code. I didn’t double-check the parts I assumed I hadn’t touched. I was stubborn in thinking, “I know this; it’s fine.” And of course, that confidence was misplaced. My small change ended up breaking the entire initial creation process for that feature while fixing that teeny-tiny issue.

♦Photo by ThisisEngineering on Unsplash

That was such a rookie mistake, and it stung more than I expected. It was embarrassing.

Thankfully, the error was caught in our testing field before it reached clients. That gave me the chance to go back and fix it properly. It was a humbling experience. I realized how easy it is to let early confidence blind you to potential problems, and how much care and patience real work demands, even when something seems like it’s no big deal.

Since that day, my approach to reviewing and testing my work has changed drastically. My head is still running on what-ifs. I became more thoughtful, and far less willing to assume anything was “safe.” That mistake has stayed with me as a lesson I carry into every project.

This is a reminder that early missteps aren’t just mistakes. They are some of the fastest, most valuable ways to learn, shaping habits and wisdom that last a career.

When Mistakes Teach You Best 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

Why Clicking “Pay” Twice Can Break Your System

The hidden cost of missing idempotency

Continue reading on Code Like A Girl »


KW Peace

Amnesty International Write For Rights, 1pm-4pm on Saturday 10 January 2026 at First United Church

  • What: Amnesty International Group 9 Hosts Write for Rights ♦
  • When: 1:00pm to 4:00pm on Saturday 10 January 2026 iCal
  • Where: Hilliard Hall, First United Church
  • Location: 16 William Street West, Waterloo, Ontario Map
  • Online: www.amnestywaterlooregion.org/2025/12/write-for-rights.html
  • Contact: groupnine9@gmail.com

Hello Amnesty supporters,

You are invited to join human rights advocates in the Kitchener/Waterloo area as we take part in Amnesty International’s annual Write for Rights letter-writing campaign — the biggest human rights event in the world!

What to do: We will have printed copies of letters for you to sign as well as blank cards and art materials so you can prepare messages of support for the people and families whose rights are under threat.

♦ W4R-2025-letterspdffinal15pshare.pdf, 90 kBytes

Download the prepared letters with instructions so that if you have the time, you can sign the letters in advance and bring them with you to our event on January 10. That way, you can focus on preparing the cards of support when you arrive.

More about Write for Rights:

♦Write for Rights involves hundreds of thousands of people across 200 countries and territories who write millions of letters and and send messages of support on behalf of eight individuals or groups whose rights are at risk.

Write for Rights has helped transform the lives of more than 100 people since 2001, freeing them from torture, harassment, or unjust imprisonment.

This year Amnesty International’s eight cases include: displaced people in Madagascar in urgent need of humanitarian assistance, Sámi reindeer herders in Norway whose lifestyle and land rights are under threat, deadly conditions in South African daycares, a lawyer and media commentator in Tunisia jailed for criticizing inhumane prison conditions, a photojournalist sentenced to 20 years hard labour in prison for reporting on the impact of a cyclone in northern Myanmar and the intimidation, imprisonment and murder of environmentalists in the Amazon, Cambodia, and Honduras.

Your words have the power to change lives! Please join us to sign letters and send messages of support to change lives for the better.

Hope to see you on January 10!!!

For more information about this event, email groupnine9@gmail.com

For more information about Canada-based Write for Rights events and on-line petitions go to amnesty.ca/write-for-rights/

Check out our social media at…

Event: Write For Rights – January 10th 2026 @1:00pm @ First United Church in Waterloo

Event: Group 9 Hosts Write for Rights

Instagram: www.instagram.com/p/DR3NMvjiUcJ/


KW Peace

Waterloo Region Climate Collaborative Potluck, 6:30pm on Thursday 8 January 2026 at REEP House

  • What: WRCC ♦ In-Person Potluck
  • When: 6:30pm to 8:30pm on Thursday 8 January 2026
  • Where: REEP House
  • Location: 20 Mill Street, Kitchener, Ontario Map
  • Online: Event on Google Calendar
  • Contact: wrclimatecollab@gmail.com

Happy New Year everyone

We hope this season has been full of fun and family (as well as snow). WRCC is starting off the new year with an IN PERSON only potluck celebration. Our summer potluck was a huge success, and REEP House will keep us warm and dry as we eat, network, share successes, and think about the future.

IN-PERSON ONLY at REEP House, 20 Mill Street in Kitchener. Please come unscented.

If you are able, please bring a vegetarian or vegan potluck dish to share (with serving utensils); and if you are able, your own dishes and beverage (water is available).

WRCC continues to grow and evolve, and we welcome your input on how we help facilitate working together to achieve our mutual goals of building a just and climate resilient community. For example, our Advocacy Committee has been hard at work building a strategy to connect with other environment, sustainability, and social justice communities across the region to strategize around the October 2026 municipal elections. WRCC is making plans to facilitate collaboration both within our network, and beyond – as we are conscious of how climate connects with so many other issues in our region.

In addition to time for networking and sharing your organizations projects and events on Thursday, we hope to have initial informal conversations to gauge interest around election organizing. For those that are interested, we plan to follow up by convening a separate election-focused gathering in February.

Happy New Year,
And hope to see you January 8th.


James Davis Nicoll

Rockaby / Cuckoo’s Egg By C J Cherryh

C. J. Cherryh’s 1985 Cuckoo’s Egg is a stand-alone science fiction novel.

Warrior-judge Dana Duun Shtoni no Lughn (Duun) accepts custody of a hideous newborn. Although the infant Haras (Thorn) lacks fur, claws, or the other characteristics of real people, Duun will raise the monstrous child as though it were a Shonunin like Duun himself.

Specifically, as though Thorn were a fellow warrior-judge.


Code Like a Girl

AI Agents Orchestration Design Patterns

AI Agents A to Z #6 — How to plan, coordinate, and scale autonomous behavior

Continue reading on Code Like A Girl »

Capacity Canada

Today’s Family Early Learning and Child Care

♦ Embracing the Future We’re Recruiting Community Leaders to Join Our Volunteer Board of Directors  Our Mission

Working together to enrich today’s families; we want what is best for children.

Our Vision

Every child experiences the joy of learning through play.
All children have the right to play. Play is how learning happens.

We Value

Today’s Family values caring, collaboration, accountability, inclusion, and innovation.

Caring: We care. It is the essence of who we are. We care for the children who take part in our programs, for their families, for our staff and providers and for our environment.

Collaboration: We collaborate. On our own, we can teach, help and care for the children in our mindst. Together, with other organizations, we can help to make change and chart new directions for all children.

Inclusion: We are inclusive. Today’s Family is committed to promoting diversity, advancing equity and fostering a culture of inclusion.

Accountability: We are accountable. Our primary accountability is to the childre and families we serve. It is our job to make sure they are nurtured and respected.

Innovation: We are innovate. We creative and try new things. We embrace change and do things differently.

__________________________________________________________________________________________________________________________

Today’s Family Learning and Child Care is a non-profit charitable, and community-driven agency serving more than 7,500 children (and their families) across Hamilton, Halton, Haldimand-Norfolk, Peel, and Oxford County. 

At Today’s Family, we believe that every child and family deserves access to high-quality, inclusive, and culturally responsive early learning and care. As we grow and expand across communities, we are looking for passionate leaders to join our volunteer Board of Directors to help shape the future of child care in Ontario.

We believe that all children and families deserve affordable, high-quality, accessible, and inclusive early learning and child care programs that reflects the diversity of our communities.

Today’s Family’s programs and services continue to grow to reflect the strengths and changing needs of families within our communities.

Who We’re Looking For

We have openings for board members with diverse skills, talents, lived experiences, and expertise. If you’re as passionate about the well-being of children and families as we are, if you’re interested in governing an organization that truly makes a difference, and if you’re ready to help steer Today’s Family toward a future that is bright and even more impactful, we want to hear from you!

Candidates are assessed using a merit-based process, the primary focus being the degree to which the skills and expertise of the prospective board member meet the needs of Today’s Family. Board members must possess relevant expertise, leadership skills, and appropriate experience. In addition, board members must have an interest in and an understanding of local and family opportunities and needs, as well as those of the early learning and child care sector.

We are seeking experts in governmental relations, rural experience, early learning, and community service. We also welcome individuals with expertise or lived experience in equity, diversity, inclusion, and reconciliation.

We are committed to building a Board that reflects the diversity of the communities we serve – including people from Indigenous, Black, racialized, newcomer, 2SLGBTQIA+, and disability communities.

Why Join Our Board?
  • Contribute to shaping policies and strategies that support children, families, and educators.
  • Be part of a values-driven organization recognized for leadership and advocacy in early learning and child care.
  • Engage with community leaders and professional from diverse sectors and backgrounds.
  • Strengthen governance and leadership experience in a dynamic, growing non-profit
  • Champon equity, diversity, inclusion, and belonging through your leadership

If you are ready to make a difference for children and families, we would love to hear from you. Please send a letter of interest and resume to:

Email: board@todaysfamily.ca
Mail: Andrew Welland, Board Chair
Today’s Family Early Learning and Child Care
44 Greendale Drive
Hamilton, ON L9C 5Z4

We welcome applications from individuals of all backgrounds, identities, and lived experiences. We encourage you to learn more about our organization at www.todaysfamily.ca 

Flyer

The post Today’s Family Early Learning and Child Care appeared first on Capacity Canada.


Elmira Advocate

ELMIRA = DOGPATCH = ASTOUNDING MENTAL GYMNASTICS TO DENY & DEFLECT DNAPL CONTAMINATION OF OUR DRINKING AQUIFERS

 

My renewed DNAPL education continues.  As mentioned yesterday I am somewhat surprised by the large number of factors determining how much free phase DNAPL ends up somewhat captured by filling pore spaces as Residual DNAPL , which can still slowly dissolve into the groundwater, as well as  then how much free phase DNAPL can continue migrating via gravity either vertically downwards or laterally (horizontally). Again this horizontal DNAPL flow depends upon many factors including the slope of the somewhat horizontal surface, the hydraulic head (i.e. ongoing pressure from the source area as DNAPL is continually refreshed from dumping chemical liquid wastes), the size of the pores between clay, silt and sand lenses and so many more.

I have written previously that both DDT and Dioxins and so much more can be mobilized by DNAPL. This is not an opinion but fact determined by geoscientists and other unbiased experts in the field. Furthermore with multiple sites on the Uniroyal property with proven DNAPL presence (M2 at OW88, RPE-3, TPW-2, RPW-5 ) including small quantities of DNAPL having been removed, there simply is no wiggle room left for the guilty parties. 

Eventually over time groundwater will very slowly dissolve dioxins, DDT and other nasties which will end up in detectable concentrations in our groundwater. Despite the low solubility of these compounds nevertheless Dioxins for example have a Solubility concentration in the low parts per trillion (eg. 15-20 parts per trillion  i.e. 15-20 ng/litre). Unfortunately the Ontario Drinking Water Standard for 2,3,7,8 - TCDD  (Dioxin) is only 15 parts per quadrillion  i.e. 15 ppq) .  Parts per quadrillion are a thousand times smaller than a part per thousand which is very close to the solubility concentration of Dioxins in groundwater.

Continued reliance on GHD, the Ontario MECP and Lanxess Canada may be ideal if permanent contamination of our Creek (the "Gig") and our drinking water aquifers is acceptable. If local politicians are willing to stand up and publicly declare that is what they have decided then so be it. But continued lying is no longer a viable option and such an option will continue to deteriorate as we get to the 2028 deadline.   

    


Github: Brent Litner

brentlintner created a branch

♦ brentlintner created a branch in brentlintner/linus · January 5, 2026 15:52 ♦ refs/heads/feat/mcpr in brentlintner/linus

Updated Jan 5


Kitchener Panthers

2026 SIGNING TRACKER: INF Petey Kiefer

KITCHENER - The Kitchener Panthers are proud to announce the signing of infielder Petey Kiefer, who will look to get a full season under his belt after an impactful second half stint in 2025.

Kiefer first arrived to the Panthers at the transaction deadline last season, and posted a .370 batting average during the regular season and notched hits in nine of the 11 games he appeared in (regular season and playoffs).

This includes a home run in the season finale against Welland.

Kiefer previously played pro baseball in Germany and four years of collegiate baseball with Black Hawk College (NJCAA), Dominican College (NCAA D2) and Johnson University (NAIA).

"I am happy to have Petey returning for a full season with us," said general manager Shanif Hirani.

"He consistently put together great at-bats and led our team in hitting during his time here. I am excited to see the production over a full season."

============

PETEY KIEFER

  • Bats/Pitches: L/R
  • Hometown: New London, CT (IMPORT)
  • Birthdate: May 25, 2001
  • Pronunciation: pee-TEE KEE-fur

Github: Brent Litner

brentlintner starred code-yeongyu/oh-my-opencode

♦ brentlintner starred code-yeongyu/oh-my-opencode · January 5, 2026 06:45 code-yeongyu/oh-my-opencode

The Best Agent Harness. Meet Sisyphus: The Batteries-Included Agent that codes like you.

TypeScript 10.9k Updated Jan 7

The Backing Bookworm

You Killed Me First


John Marrs has been on my TBR author list for quite a while, so I picked up this book to see what all the fuss was about.
The story starts off with a bang with a woman who wakes up - bound, gagged and coming out of a drug haze - in the middle of a bonfire. Then we jump back in time, leading up to the bonfire night with readers not finding out who is about to be burned alive or why this happened until the final pages. 
It's filled with lots of secrets, blackmail, dysfunction and twists that are slowly revealed and questionable behaviour by the three women - Margot, Anna and Liv - whose POVs readers are privy to throughout the story, giving it a strong Desperate Housewives domestic thriller vibe. Where the story lost me is the plot device where the souls of the murdered people speak to the murderer. It was confusing because it's not explained to the reader what the heck is going on and was simply an odd plot choice. 
This book was fun in the fact that you're rubbernecking and watching these people's lives implode, but there was too much going on and the implausibility of the plot and contrived twists made this a frustrating read for me. I expected to love this book, but I will give this fan favourite suspense author another try at some point.

My Rating: 3 starsAuthor: John MarrsGenre: SuspenseType and Source: Trade Paperback, public libraryPages: 385Publisher: Thomas and MercerFirst Published: March 4, 2025Read: Dec 23-28, 2025

Book Description from GoodReads: Three women. Three smouldering secrets. Who will make it out alive?
It’s 5 November, and a woman awakens to a nightmare. Bound and gagged, she lies trapped in the heart of a towering bonfire. As the smoke thickens, panic sets in – she’s moments away from being engulfed in flames. How did it come to this?

Rewind eleven months: Margot, a faded TV star, and her long-suffering friend Anna watch as glamorous Liv and her flawless family move into their street. The three women soon fabricate the perfect pretence of friendship, but each harbours her own deadly secret – and newcomer Liv senses something is terribly wrong beneath the polished exteriors.

As cracks widen in the veneer of perfection and lies escalate out of control, tension ignites. Bonfire Night is approaching and someone is set to burn…But who will it be?


Agilicus

How AI Threatens the Industrial Control Systems in Small and Mid-Size Manufacturing

-/-

Brickhouse Guitars

Welcome to Brickhouse Guitars

-/-

KW Peace

Emergency Protest: Hands Off Venezuela! at Waterloo Public Square, 4:30pm on Monday 5 January 2026

  • What: Emergency Protest in Waterloo: Hands Off Venezuela! Stop the U.S. war against Venezuela! ♦
  • When: 4:30pm-5:30pm on Monday 5 January 2026
  • Where: Waterloo Public Square
  • Location: 75 King Street South Map
  • Online: Peace and Justice Network: peaceandjusticenetwork.ca/
  • Contact: CWPJN canadapeaceandjustice@gmail.com to register actions.

Join us to condemn the illegal U.S. airstrikes and abduction of the democratically elected President of Venezuela, Nicolas Maduro and his wife Cilia Flores. Venezuela has the world’s largest oil resources and at the press conference on Saturday, Trump said “We’re taking back the oil in Venezuela… We’re running the country… We’re going to be taking out a lot of wealth from Venezuela.” The attack against Venezuela is another aggressive U.S. war for oil.

Actions are taking place across Canada this week in solidarity with the people of the Bolivarian Republic of Venezuela against U.S. aggression.

The CWPJN condemns the January 3, 2026 U.S. military attacks against Venezuela, and joins the international call for emergency actions demanding: No War on Venezuela! Repatriate Venezuelan President Maduro and his wife Cilia Flores Now! We also denounce the Canadian government’s shameful support of the U.S.’s illegal ouster of President Maduro.

Read the statement: No War on Venezuela! from the Canada-Wide Peace and Justice Network

Not another U.S. war for oil. (See the CIA stats on Venezuela’s proven oil reserves)

  • Instagram: www.instagram.com/p/DTEcxw5ESVS/
  • Facebook: www.facebook.com/photo?fbid=10173052614895567
  • Facebook: #HandsOffVenezuela
Organized by: ♦
www.vowpeace.org ♦
www.wilpfcanada.ca

Part of the Canada-Wide Peace & Justice Network (CWPJN).


James Davis Nicoll

When Spring Rejoices / Nineteen Eighty-Four By George Orwell

George Orwell’s Nineteen Eighty-Four is a stand-alone near-future political science fiction novel… or as Orwell called it, a satire.

Winston Smith is one of the Ministry of Truth’s legions, working diligently to bring reality into line with the truth.

The Party’s Truth.


Elmira Advocate

MAJOR DNAPL TECHNICAL KNOWLEDGE HAS BEEN AVAILABLE SINCE 1990 & RESEARCH STILL CONTINUES TODAY

 

I am amazed with recent reading I've been doing as to all the factors pertaining to DNAPL migration in the sub-surface. 95% of those factors have never been discussed at public UPAC or CPAC, TAG or TRAC meetings. This is not by accident. Most of these factors including density, viscosity, wettability, stratigraphic slopes, pore sizes, solubility, volatility, groundwater velocity etc. have been known for decades . More recently I have seen technical reports advising that potential and probable lateral (horizontal) migration of free phase DNAPL has been seriously underestimated for decades. Again the factors affecting horizontal migration are many and include of course the volume of DNAPL released at the surface or from shallow lagoons (such as Uniroyal Chemical).  Another obvious factor is how much of this DNAPL is able to penetrate through aquifers and or aquitards vertically. Clearly if the aquitards (clay/silt) are discontinuous or have cracks and "windows" in them then the vertical penetration increases.

A couple of recent reports state that horizontal migration of DNAPL has been found at both 650 metres in one site from the source area and 750 metres at another site. Now two things seem obvious to me and that is the overall ongoing slope of the stratigraphic unit that the DNAPL is moving on as well as the large amount of free phase DNAPL released to the subsurface in order to "push" the DNAPL that far from its' source. I certainly can understand the unlikelihood of these distances from source being anywhere near the norm.

The other interesting tidbit I've begun to understand is how often for example chlorinated solvent sites with groundwater concentrations exceeding 1% still remain without the subsurface DNAPL  being clearly delineated. Here in Elmira subsurface free phase DNAPL has been found both on the Uniroyal site (OW88 near PW4) as well as off-site by the Howard St. Water Tower (OW57-32 (R). This data should have more than rung the alarm bells thirty-six years ago and precipitated appropriate DNAPL action. Instead it was all Uniroyal hands, friends and fellow travellors (including the M.O.E.) on deck to deny, deflect, delay and manage the situation and crisis. By manage I don't mean investigate proper cleanup as much as investigate improper coverup.

Github: Brent Litner

brentlintner created a branch

♦ brentlintner created a branch in brentlintner/linus · January 2, 2026 23:09 ♦ refs/heads/feat/paging in brentlintner/linus

Updated Jan 2


Elmira Advocate

INCOMPETENCE & NEGLIGENCE TO THE POINT OF CORRUPTION AND BEYOND - IGNORING & AVOIDING DNAPL PRESENCE & SIGNIFICANCE

 

WORLD CLASS EXPERTS AVAILABLE AT U. OF WATERLOO - JUST DOWN THE ROAD

By 1991 and earlier the Waterloo Centre for Groundwater Research was world renowned.  Despite that none of the so called "experts", consultants or other "suits" ever mentioned that incredible source of knowledge to Woolwich/Elmira citizens attending public UPAC meetings. Our esteemed and long compromised Ontario Ministry of Environment never mentioned or suggested the tremendous value in asking neutral and unbiased in house groundwater experts for information or advice. Instead all our authorities pretended that bought and paid for client driven consultants (Dames & Moore, CRA) were somehow obligated by engineering or public interest principles to speak truth to those paying their invoices. As Steve Quigley of CRA once stated " We are obligated only to the best interests of our clients.".  

I have been reviewing technical DNAPL reports likely for the fiftieth time over the last 36 years. I was introduced to Drs. J. Cherry and B. Parker at the University of Waterloo in January 2007 as CPAC's "DNAPL expert", probably by Susan Bryant. I quickly clarified to the two real experts (Cherry & Parker)  that I was CPAC's amateur DNAPL expert only. Various further DNAPL literature written by these two doctors was distributed to the four of us attending (McLean, Bryant, Ruland & myself) and it was all barely glanced at and handed to me. I offered to read it quickly over the next few days and pass it along to the other three. That offer was never requested or acted upon by any of them to my surprise. 

This meeting and the strong and very clear advice from Doctors Cherry and Parker was never taken to CPAC or discussed at any public meeting. If it was done privately I was not so advised. This was the beginning of the end for me as far as Bryant, McLean and Ruland were concerned. Nevertheless I was still trusting enough to go to Susan and Wilf with my findings later in 2007 on the inappropriate off-site well that Conestoga Rovers (CRA) wanted to use as one half of a monitoring pair of wells (1 on-site and 1 off-site) in order to ensure that shutting down pumping wells on-site for the later ATS (Ammonia Treatment System) would not cause a loss of hydraulic containment (It did.).

Do current Woolwich councillors truly believe that  the methods and procedures to clean up the Elmira Aquifers will not be exposed particularly after 2028 as second rate if not downright incompetent? Do you believe that the knowingly "cheapest and least effective method" of hydraulic containment, despite constant endorsement by almost all past councils, will not be publicly and savagely excoriated? If indeed, as has been arbitrarily removed from public discussion, it turns out that DDT and Dioxins  have migrated off the Uniroyal site westwards as well as downstream (eastwards) via the Canagagigue Creek that there won't be a scandal resulting in a public inquiry of some sort?  The westward migration may very well have been via the DNAPL mobilizing DDT and Dioxins and carrying them along to the Nutrite property as well as by the Howard St. Water Tower (OW57-32 (R). 

DNAPL DENIERS may have saved the responsible polluting companies and the Ontario M.O.E. hundreds of millions of dollars in cleanup costs but what about the health costs past, present and future? Do you want to drink Elmira water again not knowing the truth about what is still in it? 







Children and Youth Planning Table of Waterloo Region

2025 Youth Impact Project Showcase: JAMHacks

About the Youth Impact Project

The Youth Impact Project (YIP) is a collaboration between the Children and Youth Planning Table of Waterloo Region (CYPT) and Smart Waterloo Region Innovation Lab (SWRIL). The Youth Impact Project looks to fund youth who are addressing local challenges which are identified through the 2023 Youth Impact Survey results. The funded projects include a focus on supporting youth mental and physical health, increasing feelings of belonging, and responding to climate change and food insecurity.

 

In 2024, over 100 youth from 15 local organisations pitched their ideas to a panel of nine youth. The Youth Decision-Making Panel (“The Dragons”) decided which projects would receive funding to make their idea a reality. In 2025, CYPT and SWRIL accepted youth applications online, and a team of three youth decided which projects received funding.

Funded Youth Project #10: JAMHacks

JAMHacks is a student-led hackathon that allows high school students across Canada the opportunity to explore STEM. JAMHacks will offer workshops, mentorships, team building activities, and more that guide participants through ideation, coding, and navigating challenges in a team environment. JAMHacks is committed to levelling the playing field and empowering under-represented groups in STEM.

 

Applications for the 2025 Youth Impact Project are now closed and 17 youth projects across Waterloo Region received funding. Stay tuned in the coming weeks as we announce the other 7 projects!

 

Last but not least, we are grateful to our funders United Way Waterloo Region Communities and Region of Waterloo for making the Youth Impact Project possible.

 

The post 2025 Youth Impact Project Showcase: JAMHacks appeared first on Children and Youth Planning Table.


KW Peace

Neighbours for Palestine: Day of Action outside Centra Industries, 1pm on Saturday 3 January 2026

  • What: Day of Action outside Centra Industries ♦
  • When: 1:00pm on Saturday 3 January 2026
  • Where: outside Centra Industries
  • Location: 24 Cherry Blossom Road, Cambridge, Ontario Map
  • Online: nfpwr.my.canva.site/
  • Contact: waterlooforpalestine@gmail.com

Canada is still complicit in genocide, and Waterloo Region is still arming Israel.

It’s time to act.

Join us as we bring our collective power into 2026. Bring a neighbour. Bring your voice. Liberation is not a moment, it is a practice we return to again and again, year after year.

No more F-35s in our backyards!

Parking: Do not park at Centra Industries. Instead, find parking on Saltsman Drive or nearby businesses that are closed, while avoiding any ‘No Trespassing’ signs.

What to bring: Bring your Palestine flags, posters, signs, megaphones, drums, and anything to make noise. Since we’re meeting in January, be sure to wear warm, comfortable clothing!

Safety guidelines for the day of action
  • Marshals will be wearing vests. You can ask them any questions you may have!
  • Do not interact with agitators, police, or media. We have trained members assigned to deal with each.
  • We will not be interacting with the facility or employees. Our goal is to raise awareness about this manufacturer, not to provoke workers and take away from our message.
Why Centra Industries?

F-35 components made at Centra Industries travel to the assembly line in Fort Worth, Texas, where the F-35s are assembled and then purchased by Israel. Centra Industries is only one of several companies in Waterloo Region contributing weapons to Israel’s genocidal arsenal, but we’re focusing on them because of the exceptionally deadly nature of the F-35 warplane.

Since being elected, Cambridge MP Connie Cody has remained silent on the presence of Centra Industries in her riding and on Bill C-233 (the No More Loopholes Act), which would close the U.S. Loophole. To learn more about the proposed bill, see the ♦Arms Embargo Now website.


James Davis Nicoll

Rebel Rebel / The King Must Die By Kemi Ashing-Giwa

Kemi Ashing-Giwa’s 2025 The King Must Die is a stand-alone science fiction revolutionary thriller.

The alien Makers offered escape from Terrestrial ecological calamity1 and space-based corporate dystopia. The nigh-godlike Makers transported humans to Newearth, provided the means to terraform the planet, as well as other high-tech trinkets, and after providing the settlers with clear (and inflexibly enforced) guidelines, left the humans to their own devices.

Unsurprisingly, in just a few centuries, things have gone to crap.


Jen Kuntz

2025 year in review

A brief review of my 2025 and what is next for 2026.

KW Predatory Volley Ball

Congratulations Anezka Rabano. All Canadian First Look Invite Camp

Read full story for latest details.

Tag(s): Home