Code Like a Girl
The Sponsor Effect to Accelerate Your Tech Career
♦
Balancing the art of sponsors and networking for women
Continue reading on Code Like A Girl »
♦
Balancing the art of sponsors and networking for women
Continue reading on Code Like A Girl »
Register: Online at our KWality Talk Page, the attendance link will be included in an email the day of the event.
Location: Online. Please ensure that your onscreen name matches your registration name.
Time: The meeting starts between 11:55 am and 12:00 pm, a waiting room might be enabled if you arrive prior to this time. Meeting ends at approximately 1:00 pm.
Speaker: Vitaly Sharovatov
Topic:
Have you ever felt the urge to increase the amount of testing, thinking it would directly improve product quality? Have you ever been held “accountable” for quality or pressed for time, leaving you feeling helpless? Or perhaps you’ve been asked to justify quality assurance initiatives with numbers?
Our industry is filled with myths: from “quality can be measured” to “more testing means higher quality” and from “QA slows down work” to”testers are responsible for quality”. I believed them all too once, then I started questioning my beliefs when I saw how product quality improved when we reduced code coverage from 70% to 40% – I then realised that quality metrics are only proxy metrics and their correlation should be revisited regularly.
Join me and let’s see what dangers all these myths pose to both teams and products, and how they should be debunked and overcome.
Bio:
As a quality enthusiast, I believe that people should take pride in their work and companies should aim to produce high-quality products. I have spent the last 23 years in IT, focusing on engineering, quality assurance and mentorship. I am also a huge animal lover and have saved and raised more than 50 cats and dogs.
Updated Jan 8
Merely for personal enjoyment I am going to rewrite yesterday's response (harsh, rude ?) that I sent to Nathan Cadeau. I will remove all critical editorial comments that could be viewed as insulting. Here goes:
Folks: So as I read Nathan's comments I understand that "TRAC does not exclude substantive concerns because they are uncomfortable or inconvenient." TRAC however obviously does exclude my concerns and others for their own, unilateral reasons. Allegedly they are because those concerns "...cross established standards of conduct...". Well first my alleged conduct is none of his business. What is his business is remediating Elmira's groundwater and he has been unsuccessful at doing that. With his intense five minutes of experience on the issue clearly our mayor made a mistake in giving him a job that he is unqualified for .Secondly he and the Township are taking advice from Lanxess, GHD and the Ontario MECP. Woolwich Township apparently don't believe that there is a conflict of interest which there certainly is. Nathan believes that vulgarity or personal attack are not necessary. I agree it isn't but so what? Just because I might insult the Township does not absolve them of either their moral or legal responsibility to work on behalf of the citizens of Woolwich Township. Maybe Nathan down the road you might want to fly your reasons for ignoring good advice in the public interest to someone who cares about your feelings. Perhaps on a good day I do, just a tiny bit. The Township, GHD, MECP, Uniroyal and corporate successors have spent the last 36 years gilding the lily about the Elmira Water Crisis to me and the public. I do not reward lily gilders with my respect.
Nathan your job is not to criticize citizens or volunteers. I believe that Woolwich Township irrevocably ruptured the relationship with long term informed citizen volunteers when they dissembled and blamed CPAC for Chemtura and the Ontario M.O.E. informally abandoning public CPAC meetings.
Nathan stick to your job as a councillor and focus on that.
Alan Marshall
O.K. I did it and while it wasn't impossible nevertheless it may lack some zest. Or not. Nathan as is usual pissed me off a couple of days back with his attitude hence my upset response. If I'd taken more time I would have added that I agree that "vulgarity or personal attack is not necessary to ensure that critical information is heard or acted upon.". Then I would have added that yes it is critical information I have been presenting by e-mail that was also heard decades ago in open, public meetings but was not acted upon then or since. Courtesy of Mayor Shantz we no longer have open, two way discussion at meetings (eg. TAG & TRAC) in which citizens can express their opinions publicly. That is the problem not my alleged conduct albeit it appears that Nathan and his ilk believe that polite, courteous lying and bulls*t peddled to the public are perfectly O.K. but rude responses by citizens to those lies are not.
Woolwich, Lanxess , GHD and the Ontario Ministry of Environment, Conservation & Parks (MECP) currently are in full pass the buck mode. They and they alone (eh go ahead and add the Region (RMOW)) are responsible for ignoring good advice from CPAC between late 2010 and September 2015 and occasional good advice from earlier CPACs and UPAC decades earlier. The 2028 groundwater cleanup failure is theirs and they don't want to wear it. Watch the buggars run for cover possibly as early as this next municipal election.
Updated Jan 8
6e7b7b1
Sometimes we don't want to ignore sql files
d2d246b
PM Work
14fdc10
Support auto adding binrary files to the prompt
84be759
PM Work
♦Hello everyone,
Armen here – CEO and Co-Founder of Intellijoint Surgical.
As we begin 2026, I want to start a new tradition: sharing with you, the Intellijoint community, what we accomplished last year and what you can expect from us in the year ahead.
Intellijoint has become a global community with a common goal: improving patients’ lives by providing every orthopaedic surgeon and their care team access to effective, easy-to-use technologies. As I travelled the world last year, I reflected on just how much our community has grown and how important it is for me to communicate with you.
So, whether you, reader, are a surgeon, healthcare worker, clinical researcher, past or current employee, business or government partner, institutional or individual investor, or simply someone who believes in what we do – I’m so grateful for your support and am excited by the opportunity ahead!
2025 – Intellijoint’s Best Year YetSimply put, 2025 was the best year in Intellijoint’s history.
This year, Intellijoint was used in more operating rooms, by more surgeons, in more geographies than ever before. Highlights from the year include:
As a small but growing Canadian medical technology company competing against global industry giants, I could not be prouder of our team and what they accomplished. 2025 was the culmination of steady progress, hard choices, and collective focus.
We proved that a small, aligned team can earn the trust of surgeons and healthcare leaders again and again – whether that means growing our presence in cities like New York or expanding into new countries like Saudi Arabia.
To everyone who played a role in 2025, thank you! This was truly a collective achievement.
2026 – Significant Global Expansion on the HorizonIn 2025, we steadily built our strongest global pipeline to date. In 2026, you should expect to see significant expansion as a result.
This includes continued growth in the Middle East and Asia as well as new opportunities in South America for the first time in our history. Since these opportunities are in active discussions, I’m not able to share where exactly we will be starting surgeries yet. But what I can share is that I will be joining the Government of Ontario’s Life Sciences Trade Mission to Brazil next month and am excited to meet potential partners and surgeons there this year.
At the same time, the United States remains a critical area of growth for Intellijoint. In 2026 we will continue investing in the country and are actively hiring three new Market Development Managers to accelerate adoption in new US cities. I also plan to travel to the US to meet with surgeons as we work on some exciting updates to our products this year.
We also continue to make good progress in our home country of Canada, with the Government of Ontario beginning to significantly support orthopaedic care and innovation. I believe 2026 will be a landmark year for Intellijoint in Canada, with new partnerships beginning that will benefit patients across the country.
Regardless of geography, I’m honoured to have opportunities as I travel to see first-hand the positive reaction to our simple, reliable, and efficient technology. That moment where it just clicks is so rewarding and I’m thrilled to experience it again this year with new customers.
Looking AheadAcross the world, healthcare systems, hospitals, and surgical centres are under pressure to do more with less. The need for effective and easy-to-use innovation has never been clearer. As we start 2026, I’ve never been more optimistic for the year ahead.
Thank you again for being part of the Intellijoint community. I’m excited by what we’re building together and appreciate your continued support!
– Armen
The post Intellijoint: What to Expect in 2026 appeared first on Intellijoint Surgical.
♦
KITCHENER - The Kitchener Panthers are proud to announce the signing of pitcher and former Texas Rangers farmhand Bawin Colon.
Colon spent the 2022 and 2023 seasons with the Rangers' affiliate in the Dominican Summer League, primarily in the closer's role.
After being released by the Rangers in 2023, he's been pitching in the Dominican Winter League.
"Bawin immediately jumped out at us when we saw him pitch at our tryout," said general manager Shanif Hirani.
"His experience in affiliated ball, as well as in the closer's role, make him a great fit for our team. His high powered arsenal is fun to watch."
============
BAWIN COLON
♦
If you visit restaurants frequently, and especially those serving Italian food whether or not it is a “traditional” Italian restaurant, you have probably seen spaghetti Bolognese on dozens of menus.
The classic pasta dish is doused with a heavy and rich meat sauce which, with a glass of robust red wine, satisfies mightily.
The question is: have you actually had a true Bolognese?
Likely not.
First some background.
In the style of Bologna, a major city in the Emilia-Romagna region in northern Italy, the sauce is a ragù, a meaty stew-like preparation of onions, carrots, pork, beef and veal, butter and tomato.
In their cooking, the Bolognese will use three or four fats: olive oil, butter and lard, some of the country’s best pork produced in the region. It’s no wonder you don’t leave a meal of tagliatelle alla Bolognese hungry.
Like the “Feast of the Seven Fishes,” spaghetti alla Bolognese seems to be primarily an Italian-American creation, though an Italian culinary organization claimed to codify a recipe based on an historical record from the 1800s.
While we traditionally visualize spaghetti sauce as primarily a tomato-based creation to which meat is added, a Bolognese puts the meat first: there is relatively little tomato compared to beef and pork – and sometimes even chopped chicken livers and giblets.
Another aspect of a true Bolognese is the several cooking techniques used and the time required to build the flavours.
Finely diced vegetables are gently sweated down to a soft texture but without colouring them, diced pancetta and butter are sautéed and rendered, and the integrated ingredients are slipped into a low-heat oven for what is essentially a long winter’s braise.
And while we can splash together a bright, acidic and fresh tomato sauce and twirl the pasta round our forks for dinner in a relatively short time, a Bolognese can cook for anywhere from four to six hours.
The result, when it is dished out and you taste it, is eye-opening.
There is another quality of cookery in Emilia-Romagna that warrants attention, both because of its uniqueness and because of how it influences the flavour and texture of ragù Bolognese: milk. The region traditionally prepares “maiale al latte alla Bolognese” – pork simmered in milk.
The ragù for pasta includes a cup of whole milk or a cup of heavy cream – or both.
Otherwise, it is a dish with relatively little seasoning: sage, popular in the region along with bay leaves, are really the only herbs added to the dish and perhaps some nutmeg. There is usually no call for garlic.
However, few dishes likely take the time to braise its meaty sauce for six hours; that remains for you to do.
You’ll find the deeply braised flavours of some simple ingredients, along with a bit of interesting food history, deeply satisfying.
Ingredients
1 tablespoon olive oil
2 tablespoons butter
1 onion, finely diced
2 celery stalks, finely diced
1 carrots, finely dice
1 lb. ground beef
1 lb. ground pork
1 lb. pancetta, diced
1 28oz. can tomatoes, pureed
1 cup red wine
1 cup whole milk
2-6 cups beef stock as needed
2 bay leaves
1 cup whipping cream
salt and pepper
Parmesan cheese for garnish
Method
Preheat oven to 300-degrees F.
Heat the olive oil and 1 tablespoon of the butter in a sauté pan and gently sweat down the onion, celery and carrot until soft. Meanwhile, in a second pan heat the remaining butter and sauté the pancetta. In a large oven-safe casserole dish, gently brown the ground beef and ground pork. Drain some of the rendered fat.
Add the vegetable mixture and pancetta to the casserole of ground beef and pork and incorporate. Add the tomatoes, red wine, milk, 2 cups of stock and bay leaves. Season with salt and pepper. Bring the mixture to a gentle boil. Place the casserole in the oven, uncovered. After 1 hour, stir in the heavy cream. Let the sauce simmer for at least 4 hours stirring and scraping down the sides of the pot occasionally. Add some stock if the sauce seems too dry.
Serve with tagliatelle, freshly grated Parmesan cheese and full-bodied red wine. Enjoy!
Check out my latest post Bolognese: the real ragù from AndrewCoppolino.com.
Correction: The date is Saturday 17 January 2026
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)
Part of the Canada-Wide Peace & Justice Network (CWPJN).
1988’s Unknown Worlds: Tales from Beyond is the other 1988 Unknown retrospective anthology edited by Stanley Schmidt1.
To quote Wikipedia:
Unknown (also known as Unknown Worlds) was an American pulp fantasy fiction magazine, published from 1939 to 1943 by Street & Smith, and edited by John W. Campbell. Unknown was a companion to Street & Smith’s science fiction pulp, Astounding Science Fiction, which was also edited by Campbell at the time; many authors and illustrators contributed to both magazines.
But first! A clarification!
…
♦
Read full story for latest details.♦
The web wasn’t designed for real-time interaction.
Continue reading on Code Like A Girl »
♦
Earlier we could only throttle the entire network. With the new update, Chrome gives developers precise control over specific requests.
Continue reading on Code Like A Girl »
♦
It is not a behavior problem, but neuroscience
Continue reading on Code Like A Girl »
♦
While good leaders focus on being visible, great leaders focus on being impactful.
Continue reading on Code Like A Girl »
Following below is Woolwich councillor Nathan Cadeau's e-mail sent to seven persons including myself:
"Happy New Year!
Thank you for sharing the article and for taking the time to set out your broader concerns. Questions about environmental risk, regulatory independence, and how information moves from citizens to decision makers are very much within TRAC's mandate, and they are taken seriously.
From a process perspective, TRAC does not exclude substantive concerns because they are uncomfortable or inconvenient. When submissions cross established standards of conduct, individuals are given the opportunity to revise and resubmit so that the substance can still be considered. That option is always available. I don't believe vulgarity or personal attack is necessary to ensure that critical information is heard or acted upon. In governance and regulatory contexts, clarity, evidence, and persistence tend to be more effective and durable. If someone chooses not to revise a submission when given that opportunity, that is a decision they own. Again thanks for taking the time to write.
Take care and talk soon,
Nathan"
Following is my response telling him that he, Woolwich Council or TRAC have no right to censor substantive Elmira remediation facts and advice because they don't like my choice of words or alleged expletives. They have both a moral and a legal duty to seriously consider researched advice that is in the public interest i.e. restoring Elmira's drinking water aquifers. Anything else is a dereliction of their duty to citizens and residents and a betrayal of their oath of office.
"Folks: So as I read Nathan's hot air I understand that "TRAC does not exclude substantive concerns because they are uncomfortable or inconvenient." TRAC however obviously does exclude my concerns and others for their own, unilateral reasons. Allegedly they are because those concerns "...cross established standards of conduct..." Well firstly my alleged conduct is none of his f...ing business. What is his f...ing business is remediating Elmira's groundwater and he stinks at doing that. With his intense five minutes of experience on the issue that is hardly surprising. Secondly he and the Township in their infinite stupidity are taking advice from Lanxess, GHD and the Ontario MECP. Woolwich Township apparently don't believe that there is a conflict of interest which there certainly is. Nathan believes that vulgarity or personal attack are not necessary. I agree it isn't but so what? Just because I referred to the Township as stupid does not absolve them of either their moral or legal responsibility to work on behalf of the citizens of Woolwich Township. Maybe Nathan down the road you might want to fly your bullsh*t reasons for ignoring good advice in the public interest to someone who gives a crap about your feelings. I certainly do not. The Township, GHD, MECP and corporate successors have spent the last 36 years lying about the Elmira Water Crisis to me and the public. I do not reward liars with my respect.
Nathan do your f...ing job
Alan Marshall
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 RegionThe 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 EvaluationThe 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.
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 ForAutomated 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 RegionNeighbourhood 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 QuicklyOne 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 EstimatesOnline 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 ValueStill, 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 EvaluationIf 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.
♦
♦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.
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 ProgramKids 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.
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.
…
1ed669b
PM Work
Updated Jan 6
♦
Extending AI Playbook to for PMs who think beyond prototypes.
Continue reading on Code Like A Girl »
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 membersAs 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: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.
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 OptionsFamilies 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:
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 NeighbourhoodsKitchener-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:
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 CommunityKitchener-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:
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-WaterlooWhile great family-friendly areas can be found across the region, some neighbourhoods stand out for their schools, amenities, and overall lifestyle.
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 HomeAt 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:
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.
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 SeatTake 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 RetreatEven 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 HideawayHomes 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 NookIdeal 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 ShelfOur 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.
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 OverviewAs 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 ResponsibilitiesWe welcome individuals with experience in one or more of the following areas:
Lived experience related to affordable housing, community support, or tenant advocacy is also highly valued.
Ideal Candidate AttributesApply 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.
Join the Board of Humane Canada and help build a more humane country for every animal.
About the OrganizationHumane 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 OpportunityHumane 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 ProfileWe seek individuals who bring both heart for animal welfare and high-level professional leadership and experience. You will:
As a Director of Humane Canada, you will:
To learn more and access the application form, please follow the link below. humanecanada.ca/en/about-us/our-team/join-the-board-of-directors
The post Humane Canada appeared first on Capacity Canada.
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.
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/
♦
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 StatementIKEA processes invoices for furniture deliveries from suppliers. These invoices contain line items that can be:
Each order has:
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.00Solution
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
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 Structureikea-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 -->Running the Application
<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>
# 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 ModelsBase 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 KeyThey 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@EntityThe Solution logic
@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"
}
Here’s the complete service implementation with detailed comments:
@ServiceKey Java Concepts Demonstrated1. The merge() Method -
@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
);
}
}
}
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:
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 instanceofModern 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])]4. BigDecimal for Financial Calculations
After flatMap:
[order1, order2, order3, order4] ← Flattened!
NEVER use double for money!
// WRONG - Floating point errors
double cost = 45.0 / 3; // Might be 14.999999999
// CORRECT - Precise decimal arithmetic5. Java Records (Java 14+)
BigDecimal cost = new BigDecimal("45.00")
.divide(new BigDecimal("3"), 2, RoundingMode.HALF_UP);
// Result: exactly 15.00
// 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!)Unit tests
public record CostKey(String used, String sellingUnit) {
public String toKeyString() {
return used + "_" + sellingUnit;
}
}
Create a tests for InvoiceService.
@SpringBootTestFollow-up Questions I Was Asked
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));
}
}
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 InterviewerThe 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:
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.
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.
♦
How Women In AI Can Build Time-Aware Healthcare Systems
Continue reading on Code Like A Girl »
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:
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.
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 DirectionWhen 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 GraduallyGetting 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 SystemsWhen 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 MovementClarity 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 OutcomeOften 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 EvaluatedTeams 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 TimeIn 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 PaceIn 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.
♦
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 »
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 stackThink 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 toughIn 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 evalsI 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 correctnessAt 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 dataNot 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:
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:
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 developmentO’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 knowledgePublic 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 capabilityFor 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 consistencyOutputs need to be checked against a source of truth. This can happen in two ways:
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 upAs 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.
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 INAt 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 LogicUnlike basic Boolean logic (TRUE / FALSE), SQL works with three-valued logic:
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?
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?”
Importantly:
This makes NOT EXISTS safe and reliable
In many databases:
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.
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 UnsplashThat 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.
♦
The hidden cost of missing idempotency
Continue reading on Code Like A Girl »
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 kBytesDownload 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/
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.
♦
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.
…