HNHacker News
TopNewBestAskShowJobs

clavoie

86 karma · joined April 2, 2012

submissionscomments
clavoie··on Ask HN: Who wants to be hired? (September 2026)

  Location: Montréal, Canada
  Remote: Yes; on-site or hybrid in Montréal also fine
  Willing to relocate: No
  Technologies: TLA+/PlusCal, Alloy, Z3/CVC5, property-based testing, Python, Java, Go, Haskell, Perl, Postgres, Kubernetes, Terraform pipelines
  Email: clavoie+hackernews [at] sandreckoning [dot] com
Twenty-plus years building and operating software, including six at Google (Ads, Search, Street View), and nearly two decades running a Montréal consultancy doing technical due diligence and large-scale infrastructure work. Specialised in:

* Applied formal methods. Specification and model checking aimed at the parts that cannot break. TLA+ or Alloy models, SMT-backed invariants, and property-based tests wired into CI. The goal is catching design defects before implementation, not verifying an entire codebase.

* Interviewing and hiring. Calibrated interviews, structured debriefs, work-sample and pairing exercises. Interviewer training.

* Managing AI-assisted engineering. Practical work here: specification-first workflows where the spec is machine-checkable, eval suites and regression harnesses.

Fully bilingual: French and English.

clavoie··on Ask HN: Who wants to be hired? (July 2026)
Location: Montreal

Remote: Yes

Willing to relocate: No

Technologies: AWS, GCP, TLA+, Linux, Python, Go, Haskell

CV: Available upon request

Email: clavoie _at_ sandreckoning _dot_ com

Focus: high-stakes engineering where failure is not an option. Core work: rescuing stalled or non-functional AI/ML projects; sourcing and vetting qualified engineers, drawing on years of hiring the best talent and over a thousand interviews; and applying formal methods to build systems whose correctness is provable rather than hoped for.

clavoie··on Ask HN: Who wants to be hired? (November 2024)
Location: Montreal, Canada Remote: Yes Willing to relocate: No Technologies: TLA+, Alloy, CVC5/Z3 modeling, Haskell, Erlang, Perl. AWS, GCP, Azure, OCI, Terraform.

25 years of experience developing and managing large scale systems and systems that cannot fail.

clavoie··on It's Time for Americans to Get over It and Embrace the Bidet (2015)
Oh, one note against the sontiy brass handheld whatever.

It was a gigantic pain in the ass to attach to the toilet, mostly because said toilet is in a recessed alcove in my bathroom.

Though it's been a delight to use ever since.

clavoie··on It's Time for Americans to Get over It and Embrace the Bidet (2015)
I own the hand-held variant (IIRC the https://snapklik.com/en-ca/product/sontiy-brass-handheld-bid...). Think of it as a (very) specialized hand-held shower that's connected to (and easily within reach of someone sitting on) my toilet. Close friends of mine have a washlet integrated system that I've used before.

I backed a Boaty kickstarter (https://www.kickstarter.com/projects/boaty/the-boaty-kit-a-n...) a few years ago; though those close friends of mine use regular (though _clearly_ marked) washcloths.

I also happen to be a guy, so what I'm about to say applies only to my #2 process -- so no direct experience with ladies' #1 or any concern about cross-contamination by water running to the frontal anatomy (though my research back then mentioned that shouldn't be a bigger concern than without these items).

1. Within a few attempts you get very good at aiming (blind) and keeping only the inside of your bum cheeks wet. With the handheld want it's "all in the wrist", with the integrated system you get to do a silly little hip dance for 5 seconds and move on your with life.

2. It immediately joins and is flushed with the rest of your deposit. I do dry my cheeks with the boaty towels, and find it particularly pleasant and clean, at least comparatively to the previous decades of my life. So "with the spraying water?" yes, overwhelmingly, and "into the laundry machine?" trace amounts for sure, but emphasis on trace amounts.

Hope this helps, I'm also a _fanatical convert_ of this new process.

clavoie··on Ask HN: Who is hiring? (July 2024)
3box labs | Sr. Platform Engineer | Rust, Terraform, GCP & AWS | Remote ("worldwide" but willing to overlap with NYC work hours) | Full-time

At 3Box Labs we are on a mission to usher in a new era for the web, where data is secure, interactions are trustworthy, and relationships are the basis of connection. We're enabling online experiences that are delightful and integrated while also bolstering privacy and freeing innovation. Our first product, Ceramic, is the building block for composable data on the web and is powering thousands of the world's most ambitious applications.

We're backed by an incredible community and the best investors in the space (USV, Placeholder, Variant, Multicoin) who have deep conviction in our mission. We are a lean, voraciously curious team from across the globe, with 5 years of expert remote work experience and frequent (and awesome) team retreats to spend time together. We have founded tech startups, written books, won product awards, authored patents, created Ethereum standards, and advised F100 CEOs.

Come help us tackle novel challenges and reinvent how data is managed online. Every one of our roles is remote first (retreat often!). We are committed to building a diverse and inclusive team because we cannot succeed in our mission without it. People that identify with groups traditionally underrepresented in tech are particularly encouraged to apply.

Apply at https://jobs.lever.co/3box/d2709760-cceb-4a16-badc-8e95569b6...

clavoie··on Ask HN: Who wants to be hired? (December 2023)

    Location: Montreal, Canada
    Remote: Yes
    Willing to relocate: No
    Services provided:
      * Cloud Infrastructure setup and administration for startups and medium-sized companies (10+ years of experience)
      * Technical Due Diligence for angels and VCs (5+ years of experience)
      * Fractional CTO for startups (5+ years of experience)
      * Business processes and software systems modeling (eg: TLA+ and CVC5/Z3; 2+ years experience)
    Website: https://www.sandreckoning.com
    LinkedIn: https://www.linkedin.com/in/christianlavoie/
clavoie··on Ask HN: Was any Starfighter postmortem ever published?
Thx!
clavoie··on Ask HN: Was any Starfighter postmortem ever published?
For those of us that missed out, were the CTFs ever documented? Or otherwise recorded somewhere to see what the hoopla was all about? Curious minds inquire ;)
clavoie··on Ask HN: Freelancer? Seeking freelancer? (October 2023)

    Location: Montreal, Canada
    Remote: Yes
    Willing to relocate: No
    Services provided:
      * Cloud Infrastructure setup and administration for startups and medium-sized companies (10+ years of experience)
      * Technical Due Diligence for angels and VCs (5+ years of experience)
      * Fractional CTO for startups (5+ years of experience)
      * Business processes and software systems modeling (eg: TLA+ and CVC5/Z3; 2+ years experience)
    Website: https://sandreckoning.eb-sites.com/5815312728981504
    LinkedIn: https://www.linkedin.com/in/christianlavoie/
clavoie··on Ask HN: Who wants to be hired? (October 2023)

    Location: Montreal, Canada
    Remote: Yes
    Willing to relocate: No
    Services provided:
      * Cloud Infrastructure setup and administration for startups and medium-sized companies (10+ years of experience)
      * Technical Due Diligence for angels and VCs (5+ years of experience)
      * Fractional CTO for startups (5+ years of experience)
      * Business processes and software systems modeling (eg: TLA+ and CVC5/Z3; 2+ years experience)
    Website: https://sandreckoning.eb-sites.com/5815312728981504
    LinkedIn: https://www.linkedin.com/in/christianlavoie/
clavoie··on An update on the green thread experiment for .NET
On the one hand it's a mismatch between the OS' (aka C) model where it's expected to have ~1 per cpu core and they come relatively heavy with a full C stack's worth of memory pages and kernel-level data structures; and the managed languages' desire to have zillions of them offered in their API as very lightweight concepts (not quite but close to as lightweight as allocating memory).

This is probably best thought of from the Erlang perspective; where an OS level thread is called a "scheduler" and what as an Erlang programmer you think of as a thread (called an "erlang process") of which you can have quite literally hundreds of thousands or millions in a large enough app.

Interestingly you can think of it as the counterpoint to the (IIRC) early 2000s Java migration from M:N threading model (where M java threads would map on N OS threads) to 1:1 threading model (where the JVM finally gave up the belief it knew better than the OS and just mapped them 1:1).

On the other hand, there's also lots to be said about async style APIs (eg: goroutines in Go, or the recent async work in Rust; admittedly neither are managed languages) creating lots and lots of very short lived threads where in a managed language context, the JIT would be able to prove interesting properties (eg: it's extremely short-lived, blocks the "parent" thread until it finishes and uses no memory shared with concurrent threads) and treat it in a way that bypasses the whole "save CPU state in the OS" context switch.

clavoie··on Ask HN: Who wants to be hired? (September 2023)
.

  Location: Montreal, Canada
  Remote: yes (for the last 13 years)
  Willing to relocate: No
  Technologies: TLA+, Terraform, SQL, Haskell, Python, Java (and many, many others)
  CV: https://www.linkedin.com/in/christianlavoie/
  Email: please contact through linkedin.
clavoie··on Braille Is Alive, Well, and Ever-Evolving
Anyone has any recommendations for a cheap braille display and can explain quick quick how it integrates in a programmer's workflow? I'm an EMACS user, I've seen a bunch of packages that integrate with BRLTTY, but I'm curious what's the day-to-day.

I'm not blind, so this shouldn't be something that'll take away from someone with a real need; this is just one nerd's attempt at learning another (practically speaking, useless to me) skill for the sake of learning. I've already glued braille stickers on my normal keyboard, but they don't last, on that side I'm already considering DIY keys, maybe from a 3d printing shop online.

I've looked at a few online and the prices are in the range where I can't justify it just a fun learning experience, so I'm considering a DIY approach, but that seems equally if not more fraught with difficulties. Thoughts?

clavoie··on Try the last internet Kermit server
One of my useless skills back then was being able to recognize modem speeds, brand and sometimes (especially Motorolas and USRs) model just from the handshake noises they made.

For a little while, I could recognize my old man's BBS' individual subscribers calling in just by turning up the volume of the modem on top the 386 box...

clavoie··on Ask HN: You're planning a vacation to somewhere, what's your process?
1) Pick a country I haven't been to and is interesting to me

2) Go to wikivoyage, pick a few highlights that I HAVE to see

3) Book a few youth hostels

4) Go there and walk about the cities while hitting most of what I noted in step 2.

it's a very chill process.

clavoie··on Ask HN: Freelancer? Seeking freelancer? (May 2023)
SEEKING WORK | Remote Only | Anywhere

Willing to relocate: No

Technologies: TLA+, Haskell, Clojure

Resume/CV: On request

Email: clavoie at sandreckoning.com

Experienced developer with years of management experience and a focus on systems that cannot fail. Also available for technical due diligence.

clavoie··on Arm to drop up to 15 percent of staff, about 1k people
While I hear what you're saying, I doubt that's often the case. Either you have a company who either tolerated bad employees for a long time or just figured out they were bad at their job.

Neither points to a very healthy culture to start with.

clavoie··on Employers bow to tech workers in hottest job market since the dot-com era
Quite literally: when interviewing, just ask for significantly more than you make. Like, 10-20% more.

My background: I'm somewhere around the 20 years of experience mark, a bit more than a quarter of that as a dev at a FAANG, a bit less than a quarter of that as a hiring manager / senior executive for startups (in one case, nearly quadrupling the number of devs in my org in a year; in another, managing a 4-5 dozen devs org).

The ideal situation is looking for a job while you have one that you are at least mostly-happy with. Or at least one where you can stay for at least another few months still -- in case you don't get the offers you want. And have a honest idea of how much you should or want to make. Ideal scenario is having close and honest friends that are peers (or even better: hiring managers) in your domain that you are comfortable talking money with.

Go through those companies in some order (most excited to least excited if you're in a hurry, least excited to most excited if you want to get the best offer possible) and interview at 1-2 at the same time, in order. Pass the interview at least up to the point where you're talking salary. In my experience, it's rarely upfront, which is an annoying waste of time if the candidate and company are on totally different planets regarding salary expectations, but having been a hiring manager, I get it [1].

Then get offers, or not. As hard as you can without pissing the company off (pissing off a hiring manager is harder than most people think, just be at least somewhat nice and reasonable about the whole thing) -- make sure to skip over HR and talk straight to the hiring manager, before and after the interview [2]. Preferably, ask to book the post-interview meeting during your pre-interview chat, so the hiring manager has extra peer pressure to actually show up "in person" (well, on the phone). Bonus points for reaching out to a senior director or (for a small enough company) a C-level executive on LinkedIn.

If you get all offers, you probably are asking less than you should. No offers, much more. 50/50? You're asking just the right amount. Not all refusals are salary-related, but for now, companies can't afford to be too choosy, so overall, market bias should be on your side. It's a time consuming process, but for a lot of people, frankly there's a 10-20% salary hike on the line every few years -- how much time is that worth to you? And don't feel bad for the "poor hiring managers" whose offers you do not accept in the end [3]. Keep in mind most of the advice on the internet is from recruiters and hiring managers that have a vested interested in candidates not shopping around (for a tangentially related topic, read https://en.wikipedia.org/wiki/High-Tech_Employee_Antitrust_L... and think about this topic, hard).

Finally, do this every year or two, even if you have no intention of leaving your current place. First, it'll leave a trail of companies (and hiring managers, that may go to a company you're a better fit for) knowing your name and wistfully thinking about the great candidate that got away. And second, it's a great thing to know exactly your worth on the market. I know folks who've doubled their income in less than five years this way.

To be fair, there's the (I believe very small) chance that your current employer will hear about your shenanigans -- and that could bite you in the ass in the (very) short term. Personally, I've never seen that, either as a candidate or hiring manager and for me personally, the risk is 100% worth it. Caveat lector.

[1] When I hired, I usually had 5-6 roles opened in my budget, and if your interview process proves to me you're a talented but more junior candidate than I hoped for, I might compromise but offer you below the bracket I was thinking about and raise the experience bar for the next hire. I usually have some kind of wiggle room of that nature, wiggle room which mostly disappears if I told you the expected salary bracket upfront.

[2] Admittedly, this is significantly easier at smaller company, where a formal HR is oftentimes just not there yet. You'll get significantly better feedback straight from the horse's mouth, including fun statements like "your salary expectation just doesn't fit in my budget"; though that either means you really asked for more than I can afford, or you did not convince me you're worth that much.

[3] First, they did a poor job convincing you to work for them and that's explicitly their job during the interview process, whether they know it or not. And second, if the company they hire for is any good, they usually only hire an absolute maximum of 30% of the candidates they interview (usually, much, much less: that FAANG I mentioned way earlier? more like 5%). If they can be choosy, why can't you be? Plus, I remember most of the candidates that I made offers to and said no to me. Not because I'm annoyed at them, but rather (until I left my hiring manager position) because I followed them on social media just in case they said something about their current job being a PITA or otherwise hint they might be looking. Telling a company no is a great way to leave a reputation of being better than they thought, and the good ones will not forget and keep the finger on the offer trigger. Keep in mind the good hiring managers also have a reputation they want to preserve, if they're even half thinking about their own career prospects...

clavoie··on AMD Is Working on Its Own Hybrid x86 CPU: Patent Filing
I'm surprised we're not seeing the same thing for graphics cores. You'd think a modern desktop could be handled by a lot less horsepower than the latest Unreal based game. Maybe that's because the much higher parallelism make it easier to use a low percentage of graphics cores?
clavoie··on Preliminary Incident Statement
Exactly. At some point, someone somewhere will have a bad day / sneeze on a keyboard at just the perfectly wrong time -- at Google's scale, that's statistically a daily (hourly?) occurrence.

Quota systems for the win -- if only as a shared agreement on who can do how much damage / take how much resources before they're automatically stopped and more resources must be justified through some review process (likely involving budgetary concerns).

clavoie··on Preliminary Incident Statement
I can't comment on the current incident, as I've been gone for more than a decade.

But my recollection is that most SRE teams would have had exactly such things -- either as really crazy borgcfg (sorry, I mean kubectl) code, or as a borgmon (sorry, prometheus) alert.

The former were a real PITA to work with (borgcfg hadn't been designed with that in mind), and the latter were only reactive (and thus unable to warn about things until they were fast becoming a real problem).

So most likely those safeguards were somehow disabled or made ineffective by the exact circumstances of the problem, possibly the speed at which things developed.

clavoie··on Preliminary Incident Statement
(Disclaimer, I worked at Google over a decade ago, for about half a decade; as an SRE for about 2 of those years)

Yes, it absolutely makes sense. You never know when a typo in a config file or bug in your job-management code will go bonkers and try to take over all resources. Same think as disk quotas on computers with tons of users: you want to limit the damage that a user can accidentally (or not...) do.

Good quota systems saved my team's bacon way back when a few times, when fewer people were at the company; I can only imagine how useful they are at what, 10-20x the size?

clavoie··on Ask HN: Who is hiring? (February 2020)
RenoRun | Software Engineer | Montreal, ONSITE ONLY | Full time

RenoRun is one of North America's fastest growing venture backed startups, modernizing the way remodelling and construction professionals run their businesses. We are growing rapidly in Toronto; Montreal; and Austin, TX. Our US expansion is underway.

We are looking for talented individuals to join our growing development team in Montreal -- you'll join a diverse team of individual contributors and teammates and help build profoundly transformative products for the construction industry; from just in time delivery of construction materials to online commerce tools, all the way to planning and realtime scheduling applications.

We're currently hiring for three teams: a web development team building our online presence and shopping experience in TypeScript, NodeJS and React; a mobile team building cross-platform applications in Dart and Flutter; and a backend team building the intelligence platform and support APIs in Java (and possibly, soon, Clojure!). Other technologies and providers you'll interact with include AWS, MySQL, Ansible, Prometheus and tons of online APIs.

You can find out more about us at https://renorun.com/about#careers -- we are committed to a diverse and inclusive team and want to hear from YOU.

clavoie··on Ask HN: Who is hiring? (January 2020)
RenoRun | Software Engineer | Montreal, ONSITE ONLY | Full time

RenoRun is one of North America's fastest growing venture backed startups, modernizing the way remodelling and construction professionals run their businesses. We are growing rapidly in Toronto and Montreal, Austin, TX, and our US expansion is underway.

We are looking for talented individuals to join our growing development team in Montreal -- you'll join a diverse team of individual contributors and teammates and help build profoundly transformative products for the construction industry; from just in time delivery of construction materials to online commerce tools, all the way to planning and realtime scheduling applications.

We're currently hiring for three teams: a web development team building our online presence and shopping experience in TypeScript, NodeJS and React; a mobile team building cross-platform applications in Dart and Flutter; and a backend team building the intelligence platform and support APIs in Java (and possibly, soon, Clojure!). Other technologies and providers you'll interact with include AWS, MySQL, Ansible, Prometheus and tons of online APIs.

You can find out more about us at https://www.renorun.ca/ -- we are committed to a diverse and inclusive team and want to hear from YOU.

clavoie··on Ask HN: Who is hiring? (December 2019)
RenoRun | Software Engineer | Montreal, ONSITE ONLY | Full time

Award-winning and venture-backed, RenoRun is one of North America's fastest-growing startups - And we want you to be part of our story!

Who Are We? We know building and renovation. We are industry leaders. We cut to the point because we value people’s time. We are diverse, inclusive and values-driven.

What Do We Do? We centralize locational, scheduling, ordering, and transactional data on building materials and products to eliminate store and distributor visit hours from construction cycles.

What Do We Want You To Do? We need your help to scale our company into Series B and well beyond. You have the option to join one of the following rapidly-growing teams:

* Web Development: building our online presence and shopping experience in TypeScript, NodeJS and React

* Mobile Development: building cross-platform applications in Dart and Flutter

* Backend Development: building the intelligence platform and support APIs in Java (and possibly, soon, Clojure!).

Other technologies and providers you'll interact with include AWS, MySQL, Ansible, Prometheus and tons of online APIs.

Learn more about us on our website https://www.renorun.ca/ and then get in touch and tell us more about you!

clavoie··on Ask HN: Who is hiring? (November 2019)
RenoRun | Software Engineer | Montreal, ONSITE ONLY | Full time

RenoRun is one of North America's fastest growing venture backed startups, modernizing the way remodelling and construction professionals run their businesses. We are growing rapidly in Toronto and Montreal, Austin, TX, and our US expansion is underway.

We are looking for talented individuals to join our growing development team in Montreal -- you'll join a diverse team of individual contributors and teammates and help build profoundly transformative products for the construction industry; from just in time delivery of construction materials to online commerce tools, all the way to planning and realtime scheduling applications.

We're currently hiring for three teams: a web development team building our online presence and shopping experience in TypeScript, NodeJS and React; a mobile team building cross-platform applications in Dart and Flutter; and a backend team building the intelligence platform and support APIs in Java (and possibly, soon, Clojure!). Other technologies and providers you'll interact with include AWS, MySQL, Ansible, Prometheus and tons of online APIs.

You can find out more about us at https://www.renorun.ca/ -- we are committed to a diverse and inclusive team and want to hear from YOU.

clavoie··on Ask HN: Who is hiring? (October 2019)
RenoRun | Software Engineer | Montreal, LOCAL ONLY | Full time

RenoRun is modernizing the way remodelling and construction professionals run their businesses. We are growing rapidly in Montreal, Toronto and Austin, TX.

We are looking for talented individuals to join our growing development team in Montreal -- you'll join a diverse and inclusive team of individual contributors and help build profoundly transformative products for the construction industry; from just in time delivery of construction materials to online commerce tools, all the way to real-time planning and scheduling applications.

We're currently hiring for three teams: a web development team building our online presence and shopping experience in TypeScript, NodeJS and React; a mobile team building driver and customer focused, cross-platform applications in Dart and Flutter; and a backend team building the intelligence platform and support APIs in Java (and possibly, soon, Clojure!). Other technologies and providers you'll interact with include AWS, MySQL, Ansible, Prometheus and tons of online APIs.

You can find out more about us at https://renorun-inc.breezy.hr/ -- we are committed to a diverse and inclusive team and want to hear from YOU.

clavoie··on Ask HN: Who is hiring? (September 2019)
RenoRun | Software Engineer | Montreal, LOCAL ONLY | Full time

RenoRun is one of North America's fastest growing venture backed startups, modernizing the way remodelling and construction professionals run their businesses. We are growing rapidly in Toronto and Montreal, Austin, TX, and our US expansion is underway.

We are looking for talented individuals to join our growing development team in Montreal -- you'll join a diverse team of individual contributors and teammates and help build profoundly transformative products for the construction industry; from just in time delivery of construction materials to online commerce tools, all the way to realtime planning and scheduling applications.

We're currently hiring for three teams: a web development team building our online presence and shopping experience in TypeScript, NodeJS and React; a mobile team building driver and customer focused, cross-platform applications in Dart and Flutter; and a backend team building the intelligence platform and support APIs in Java (and possibly, soon, Clojure!). Other technologies and providers you'll interact with include AWS, MySQL, Ansible, Prometheus and tons of online APIs.

You can find out more about us at https://renorun-inc.breezy.hr/ -- we are committed to a diverse and inclusive team and want to hear from YOU.

clavoie··on 737 Max Explanation by a Software Engineer
So, a modern aircraft probably have a few thousands sensors (if not way, way more), not strictly redundant but overlapping in some fashion -- I have to believe there's been some modelling trying to check that sensor input is consistent; if only to have some kind of way for the computer to figure out that a sensor has gone crazy (say your compass suddenly detects a significant change in heading, but no sensor has detected even a degree of roll, a change in speed, heading computed by GPS over time is stable... compass might be borked, whaddya say?)

Why isn't such modelling used to let sensors be disabled when they're clearly sending bogus input?

Page 1 of 2Next →