# Results for the second Nix Steering Committee election 2025

**URL:** https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628
**Category:** Announcements
**Created:** [November 2, 2025, 9:51pm UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628 "2025-11-02T21:51:03Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![ners](https://discourse.nixos.org/user_avatar/discourse.nixos.org/ners/32/7507_2.png) [@ners](https://discourse.nixos.org/u/ners)
#### Post date: [November 2, 2025, 9:51pm UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/1 "2025-11-02T21:51:03Z")

</div>

The moment that many of us have been eagerly waiting for is here!

The second Nix Steering Committee election has successfully come to a close. The [Election Committee](https://github.com/nixos/SC-election-2025?tab=readme-ov-file#election-committee-ec) sincerely thanks everyone who participated and congratulates the newly elected members.

## Turnout

| Metric | Value |
| --- | --- |
| Eligible voters | 1010 |
| Registered voters | 560 (55 % of eligible) |
| Ballots cast | 443 (79 % of registered) |

## Elected members

Sorted alphabetically:

| Username | Term duration |
| --- | --- |
| [@cafkafk](https://github.com/NixOS/SC-election-2025/blob/ee7fc0c33d7f183bc143c8bae575e2e4caf656c4/candidates/cafkafk.md) | 2 years |
| [@JulienMalka](https://github.com/NixOS/SC-election-2025/blob/ee7fc0c33d7f183bc143c8bae575e2e4caf656c4/candidates/JulienMalka.md) | 1 year |
| [@K900](https://github.com/NixOS/SC-election-2025/blob/ee7fc0c33d7f183bc143c8bae575e2e4caf656c4/candidates/K900.md) | 2 years |
| [@philiptaron](https://github.com/NixOS/SC-election-2025/blob/ee7fc0c33d7f183bc143c8bae575e2e4caf656c4/candidates/philiptaron.md) | 1 year |
| [@tomberek](https://github.com/NixOS/SC-election-2025/blob/ee7fc0c33d7f183bc143c8bae575e2e4caf656c4/candidates/tomberek.md) | 2 years |

Additionally, [@Ericson2314](https://github.com/NixOS/SC-election-2024/blob/48d609400da38435f8a09bc83cb7c63c88f7b245/candidates/Ericson2314.md) and [@roberth](https://github.com/NixOS/SC-election-2024/blob/48d609400da38435f8a09bc83cb7c63c88f7b245/candidates/roberth.md) continue to serve the 1-year remainders of their 2-year terms.

## Election data

The Election Committee has validated the result using three open-source implementations of Meek STV, and all three of its members have independently certified the validity of the ballots.

The anonymised ballots and the Nix code for calculating the results are published on [the SC-election-2025 repository](https://github.com/NixOS/SC-election-2025).  
The ballots can also be downloaded [from OpaVote directly](https://opavote.com/results/5527818171842560), though bear in mind that the seat number (and therefore the calculation) is incorrect there.

## Next steps

We are now establishing communications with the members of the first and the second SC and will soon make a final handover announcement on behalf of the EC.

We hope that the kick-off meeting of the second SC will be scheduled soon, and wish the second SC many successes in their invaluable service to the community! ❤

---

<div class="post-metadata">

### Author: ![7c6f434c](https://discourse.nixos.org/letter_avatar_proxy/v4/letter/7/8e7dd6/32.png) [@7c6f434c](https://discourse.nixos.org/u/7c6f434c)
#### Post date: [November 2, 2025, 9:54pm UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/2 "2025-11-02T21:54:45Z")

</div>

I am sorry, turns out that collective proofreading of the voting page preview does not help catching the typo in the seat count after too many «will it be 5 or 7» discussions…

(Re: confidence in the local count — the results do not even depend on the version of STV chosen, as can be seen using the recount Nix code)

Well, hopefully the next EC coordinator does a better job than me…

---

<div class="post-metadata">

### Author: ![lassulus](https://discourse.nixos.org/user_avatar/discourse.nixos.org/lassulus/32/31292_2.png) [@lassulus](https://discourse.nixos.org/u/lassulus)
#### Post date: [November 2, 2025, 9:54pm UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/3 "2025-11-02T21:54:49Z")

</div>



---

<div class="post-metadata">

### Author: ![crertel](https://discourse.nixos.org/letter_avatar_proxy/v4/letter/c/90ced4/32.png) [@crertel](https://discourse.nixos.org/u/crertel)
#### Post date: [November 2, 2025, 9:55pm UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/4 "2025-11-02T21:55:34Z")

</div>

Congratulations on the conclusion of the election!

The people have voted and spoken, and I look forward to everybody being able to abide by the results of the process.

Thank you again to our EC and candidates!

---

<div class="post-metadata">

### Author: ![marshmallow](https://discourse.nixos.org/user_avatar/discourse.nixos.org/marshmallow/32/35237_2.png) [@marshmallow](https://discourse.nixos.org/u/marshmallow)
#### Post date: [November 2, 2025, 10:01pm UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/5 "2025-11-02T22:01:43Z")

</div>

This post was flagged by the community and is temporarily hidden.

---

<div class="post-metadata">

### Author: ![pluiedev](https://discourse.nixos.org/user_avatar/discourse.nixos.org/pluiedev/32/26581_2.png) [@pluiedev](https://discourse.nixos.org/u/pluiedev)
#### Post date: [November 2, 2025, 10:09pm UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/6 "2025-11-02T22:09:13Z")

</div>

Even though I just barely didn’t make it into the top 5, I’m still immensely happy that there were so many people who supported me and trusted me enough to land me in the top 7 at the very least. Heartfelt congratulations to all the successful candidates, and may the SC, the NixOS Foundation, and the Nix community thrive under your guidance!

---

<div class="post-metadata">

### Author: ![tomodachi94](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tomodachi94/32/8231_2.png) [@tomodachi94](https://discourse.nixos.org/u/tomodachi94)
#### Post date: [November 2, 2025, 10:20pm UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/7 "2025-11-02T22:20:04Z")

</div>

Thank you to the Election Committee for ensuring the integrity of this election. While I am disappointed at some of the choices that the electorate made, I sincerely wish everyone who won a seat congratulations. I am extremely grateful that 0.7% of the electorate made me their first choice in the first place.

(P.S. the above OpaVote link also provides a breakdown of the runners-up, in case that interests anyone).

---

<div class="post-metadata">

### Author: ![perchun](https://discourse.nixos.org/user_avatar/discourse.nixos.org/perchun/32/28793_2.png) [@perchun](https://discourse.nixos.org/u/perchun)
#### Post date: [November 2, 2025, 10:23pm UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/8 "2025-11-02T22:23:36Z")

</div>

Can’t you rerun the scripts? It is just a simple administrative error

---

<div class="post-metadata">

### Author: ![pyrox](https://discourse.nixos.org/user_avatar/discourse.nixos.org/pyrox/32/29763_2.png) [@pyrox](https://discourse.nixos.org/u/pyrox)
#### Post date: [November 2, 2025, 10:29pm UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/9 "2025-11-02T22:29:55Z")

</div>

Congratulations to all of the elected candiates, and to all of those on the EC making this a smooth process(at least as smooth as it can be), and to everyone who voted or was a candidate that did not get elected. I’m glad to be part of this positive change and I hope that the Nix community can continue to do things like this to improve our community.

---

<div class="post-metadata">

### Author: ![7c6f434c](https://discourse.nixos.org/letter_avatar_proxy/v4/letter/7/8e7dd6/32.png) [@7c6f434c](https://discourse.nixos.org/u/7c6f434c)
#### Post date: [November 2, 2025, 10:47pm UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/10 "2025-11-02T22:47:33Z")

</div>

We can rerun the scripts locally (and everyone can too) but not on OpaVote side.

---

<div class="post-metadata">

### Author: ![numinit](https://discourse.nixos.org/user_avatar/discourse.nixos.org/numinit/32/2313_2.png) [@numinit](https://discourse.nixos.org/u/numinit)
#### Post date: [November 2, 2025, 11:33pm UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/11 "2025-11-02T23:33:24Z")

</div>

Here are some specific verification instructions since I was curious:

1. `git clone https://github.com/NixOS/SC-election-2025.git`
2. `cd SC-election-2025`
3. `./STV-local-count/all-stv-runner.sh ./opavote-ballots-5.blt`

(Note that the script runs a nix expression that depends on NIX\_PATH containing a `<nixpkgs>` of your choosing, and builds a bunch of STV count utilities too).

I tried to turn it into a FOD for hash comparison but a lot of the output directory includes logs with very precise floating point numbers that seem to make it not hash-reproducible, though the results themselves are.

---

<div class="post-metadata">

### Author: ![7c6f434c](https://discourse.nixos.org/letter_avatar_proxy/v4/letter/7/8e7dd6/32.png) [@7c6f434c](https://discourse.nixos.org/u/7c6f434c)
#### Post date: [November 2, 2025, 11:52pm UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/12 "2025-11-02T23:52:52Z")

</div>

Yes, this thing is supposed to be a bit of overkill (it demonstrates that you don’t need to worry about the precise implementation details because a lot of STV shaped things with meaningful difference in rules still give the same 5 names anyway). A lot of «very precise fractional numbers» are internally calculated as 20-digit fixed-point ones BTW.

---

<div class="post-metadata">

### Author: ![numinit](https://discourse.nixos.org/user_avatar/discourse.nixos.org/numinit/32/2313_2.png) [@numinit](https://discourse.nixos.org/u/numinit)
#### Post date: [November 3, 2025, 12:47am UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/13 "2025-11-03T00:47:11Z")

</div>

> A lot of «very precise fractional numbers» are internally calculated as 20-digit fixed-point ones BTW.

Ah, I see what the `--decimals` command line does 🙂

In case anyone is interested in getting nerd-sniped for the night like I just did, a basic attempt at a FOD is [here](https://github.com/numinit/SC-election-2025/commit/cebf32288c4b07ec7c2b8c81e3c422e38a8fdee9). It just creates a FOD that contains everything after `Count complete. The winning candidates are, in order of election:` in every `report.text` file. Diffoscope mostly showed differences in the random runoffs.

1. `git clone -b results-fod https://github.com/numinit/SC-election-2025.git` (or just use [this patch](https://github.com/numinit/SC-election-2025/commit/cebf32288c4b07ec7c2b8c81e3c422e38a8fdee9.patch) with -p1 against the upstream `SC-election-2025` repo)
2. `cd SC-election-2025`
3. `./STV-local-count/all-stv-filtered-runner.sh ./opavote-ballots-5.blt`

It should output:

```auto
*** Run this to try again:
*** rm -f result
*** nix-store --delete /nix/store/lw2myp4x4wsa58dz19dym4g8mxiwj5bv-stv-counts
*** nix-store --delete /nix/store/813mngg0dlykpg0kxp00dzyhcvdr763i-stv-counts-filtered
/nix/store/813mngg0dlykpg0kxp00dzyhcvdr763i-stv-counts-filtered

```

And then you can `cat result/**/report.text` to see all the results filtered down to the top 5.

---

<div class="post-metadata">

### Author: ![llakala](https://discourse.nixos.org/user_avatar/discourse.nixos.org/llakala/32/38325_2.png) [@llakala](https://discourse.nixos.org/u/llakala)
#### Post date: [November 3, 2025, 3:50am UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/14 "2025-11-03T03:50:28Z")

</div>

Wanted to check out the ballots myself, but they were encoded with a number for each candidate, which made them pretty hard to read. I did some horrible vim substitutions, and turned it into something I could actually read (accessible for your convenience [here](https://raw.githubusercontent.com/llakala/SC-election-2025/6f8eab9274a98538d0b56b547b93fa7dff878fcb/BALLOTS-WITH-NAMES.txt)).

I found the stats on people’s first/last choices to be interesting. This is the first-choice rankings:

```auto
❯ cat BALLOTS-WITH-NAMES.txt | cut -f1 -d' ' | sort | uniq -c | sort -n -r
     99 k900
     40 cafkafk
     39 tomberek
     26 samueldr
     25 julien
     25 gaeten
     20 nyabinary
     19 pluiedev
     19 philip
     16 niklaskorz
     16 drupol
     15 crertel
     15 aanderse
     12 pinpox
     12 leona
     11 rhendric
      8 mschwaig
      8 djacu
      4 nim
      4 getchoo
      4 adamcstephens
      3 tomodachi
      2 jope
      1 scrumplex

```

And this is the last-choice ranking:

```auto
❯ cat BALLOTS-WITH-NAMES.txt | cut -f24 -d' ' | sort | uniq -c | sort -n -r
    159 tomberek
     53 crertel
     41 nyabinary
     30 cafkafk
     17 samueldr
     17 djacu
     16 k900
     14 drupol
     13 tomodachi
      8 nim
      8 julien
      8 jope
      7 gaeten
      6 pinpox
      6 philip
      6 leona
      6 adamcstephens
      5 scrumplex
      5 aanderse
      4 rhendric
      4 niklaskorz
      4 mschwaig
      3 pluiedev
      3 getchoo

```

You can also see in the data where voting guides had an influence:

 ![image](https://discourse.nixos.org/uploads/default/original/3X/4/3/436ba9ca421f61e805368e4b3117abd94bcae594.png)  
Although this is a relatively small portion of the full vote, it’s still interesting.

---

<div class="post-metadata">

### Author: ![crertel](https://discourse.nixos.org/letter_avatar_proxy/v4/letter/c/90ced4/32.png) [@crertel](https://discourse.nixos.org/u/crertel)
#### Post date: [November 3, 2025, 7:29am UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/15 "2025-11-03T07:29:25Z")

</div>

> [@llakala](#):
>
> Although this is a relatively small portion of the full vote, it’s still interesting.

Oh, that’s interesting. Was there one for both voting guides?

---

<div class="post-metadata">

### Author: ![cafkafk](https://discourse.nixos.org/user_avatar/discourse.nixos.org/cafkafk/32/32427_2.png) [@cafkafk](https://discourse.nixos.org/u/cafkafk)
#### Post date: [November 3, 2025, 8:07am UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/16 "2025-11-03T08:07:40Z")

</div>

You were one of the names I put before my own, the goal being that I’d end up on a committee of people I trust to be aligned with the good of the project.

This is after all just the second election, and I think the unfortunate reality is that with the resignation of many of the names I put on my ballot last year, the SCs composition has skewed in a direction that isn’t exactly representative — A skew I think this year’s election results clearly confirm.

All to say: I hope I can vote for you next year!

---

<div class="post-metadata">

### Author: ![autra](https://discourse.nixos.org/user_avatar/discourse.nixos.org/autra/32/16382_2.png) [@autra](https://discourse.nixos.org/u/autra)
#### Post date: [November 3, 2025, 10:55am UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/17 "2025-11-03T10:55:18Z")

</div>

Hi! In the results, samueldr reached the threshold on round 27, so before philiptaron and JulienMalka, but he is not elected. What does explain this? (Sorry it’s most probably something obvious I missed)

---

<div class="post-metadata">

### Author: ![niklaskorz](https://discourse.nixos.org/user_avatar/discourse.nixos.org/niklaskorz/32/35494_2.png) [@niklaskorz](https://discourse.nixos.org/u/niklaskorz)
#### Post date: [November 3, 2025, 10:56am UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/18 "2025-11-03T10:56:33Z")

</div>

This has been explained on Matrix: elimination behaves differently for 5 vs 7 seats, so samueldr got eliminated before Julien, who reached the threshold earlier due to redistribution of other ranked votes.

In other words: more people who had less successful candidates at the top had Julien and Philip higher up in their ranking than Samuel.

---

<div class="post-metadata">

### Author: ![nh2](https://discourse.nixos.org/user_avatar/discourse.nixos.org/nh2/32/631_2.png) [@nh2](https://discourse.nixos.org/u/nh2)
#### Post date: [November 3, 2025, 2:14pm UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/19 "2025-11-03T14:14:44Z")

</div>

For the next election, can we make it easier to compare candidates and their answers?

I browsed them on Github but found that not a very pleasant or efficient experience.

I just found this tool which somebody apparently made (but wasn’t linked on this Discourse yet as far as I can tell):

> **[NixOS SC Election 2025](https://sc-election-browser.sandydoo.me/)**
>
> Browse candidates, questions, and responses for the NixOS Steering Committee election.

That seems quite useful, because it allows people to click the questions they care about, and see who answered them and how.

---

<div class="post-metadata">

### Author: ![quantenzitrone](https://discourse.nixos.org/user_avatar/discourse.nixos.org/quantenzitrone/32/8395_2.png) [@quantenzitrone](https://discourse.nixos.org/u/quantenzitrone)
#### Post date: [November 3, 2025, 2:22pm UTC](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628/20 "2025-11-03T14:22:39Z")

</div>

I did some data visualization on the election results:  
These are the number of votes for each position on the ballot for each candidate:  
The candidates are sorted by average position.

 ![image](https://discourse.nixos.org/uploads/default/original/3X/0/9/09953bcf28f99a65219cde53c97b719ddaf61bbf.png)

Since tomberek has 159 votes for position 24, this value overshadows most of the other values, so this image uses `vmax=70` to make all other values more visible.

 ![image](https://discourse.nixos.org/uploads/default/original/3X/1/9/1933e404548eb825da75c0917a58c368191a3108.png)

We can also sort the data by the opavote threshold reaching/elimination order (manually entered):

 ![image](https://discourse.nixos.org/uploads/default/original/3X/3/e/3e30da91f1369e27e20f6c67e270271f750845fc.png)  
with `vmax=70`:  
 ![image](https://discourse.nixos.org/uploads/default/original/3X/a/5/a58dcd648069de91ad2c508ed9f3b93df33d6c2d.png)

Here is the code:

```py
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

ballots = np.loadtxt("./ballots1.txt", dtype=int, delimiter=" ", skiprows=1, max_rows=443, usecols=range(1,25))

data = np.zeros((24, 24), dtype=int)

for ballot in ballots:
    for i in range(len(ballot)):
        data[i][ballot[i]-1] += 1

positions = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]
candidates = np.array(["GaetanLepage","JulienMalka","K900","Scrumplex","aanderse",
              "adamcstephens","cafkafk","crertel","djacu","drupol","getchoo",
              "jopejoe1","leona-ya","mschwaig","niklaskorz","nim65s",
              "nyabinary","philiptaron","pinpox","pluiedev","rhendric",
              "samueldr","tomberek","tomodachi94"])

avg = np.zeros(24)
for i in range(24):
    avg += (i+1) * data[i]
avg /= 443

#sortkey = [2, 22, 6, 21, 17, 1, 19, 0, 14, 9, 16, 12, 4 ,18, 7, 20, 8, 13, 5, 14, 10, 23, 11, 3]
sortkey = np.argsort(avg)

for i in range(24):
    data[i] = data[i][sortkey]
candidates = candidates[sortkey]

df = pd.DataFrame(data, columns=candidates, index=positions)

sns.heatmap(df)
#sns.heatmap(df, vmax=70)

```

You can comment/uncomment some lines to get the variations i show here.

I hereby release that code into the public domain.

If these visualizations make you think the ballots were counted wrong, please read [OpaVotes explaination of Meek STV](https://blog.opavote.com/2017/04/meek-stv-explained.html).

[Next page](https://discourse.nixos.org/t/results-for-the-second-nix-steering-committee-election-2025/71628.md?page=2)
