diff --git a/assets/images/technical-leadership/joshuamiller.png b/assets/images/technical-leadership/joshuamiller.png new file mode 100644 index 00000000..3e0aa86d Binary files /dev/null and b/assets/images/technical-leadership/joshuamiller.png differ diff --git a/assets/images/technical-leadership/julianospald.png b/assets/images/technical-leadership/julianospald.png new file mode 100644 index 00000000..5393f899 Binary files /dev/null and b/assets/images/technical-leadership/julianospald.png differ diff --git a/assets/images/technical-leadership/rodrigomesquita.png b/assets/images/technical-leadership/rodrigomesquita.png new file mode 100644 index 00000000..5c46272c Binary files /dev/null and b/assets/images/technical-leadership/rodrigomesquita.png differ diff --git a/news/2026-10-13/technical-leadership-committee-launch.markdown b/news/2026-10-13/technical-leadership-committee-launch.markdown new file mode 100644 index 00000000..aa752d38 --- /dev/null +++ b/news/2026-10-13/technical-leadership-committee-launch.markdown @@ -0,0 +1,12 @@ +--- +title: Launching the Technical Leadership Committee +--- + +Following the [call for applications to the Technical Leadership Committee](/news/2026-08-05/technical-leadership-committee.html), the Haskell Foundation is proud to present the formed committee. Our inaugural Technical Leadership Committee is composed of: + +* Julian Ospald (Chair) +* Simon Marlow (Board Liaison) +* Joshua Miller +* Rodrigo Mesquita + +Committee members were chosen for their demonstrated technical expertise, historical community involvement, and _bold vision_ for the future of Haskell. Head on over to the [Technical Leadership](/technical-leadership) page to learn a little bit more about them, and stay tuned for updates from the Technical Leadership Committee in the near future! \ No newline at end of file diff --git a/site.hs b/site.hs index c9166827..c333f5f1 100644 --- a/site.hs +++ b/site.hs @@ -156,6 +156,25 @@ main = hakyllWith config $ do >>= loadAndApplyTemplate "templates/boilerplate.html" sponsors >>= relativizeUrls + -- Technical leadership committee -------------------------------------------------------------------------------------------- + -- + -- This committee is special in that it needs a space to report what projects it's currently running + -- TODO: once there are funded projects, we should have a mechanism that lists + -- them on this page + match "technical-leadership/members/*.markdown" $ compile pandocCompiler + create ["technical-leadership/index.html"] $ do + route idRoute + compile $ do + sponsors <- buildBoilerplateCtx (Just "Technical Leadership Committee") + + (members :: [Item String]) <- sortTLCByRole =<< loadAll ("technical-leadership/members/*.markdown" .&&. hasNoVersion) + let tlcContext = listField "members" (metadataField <> defaultContext) (pure members) <> defaultContext + + makeItem "" + >>= loadAndApplyTemplate "templates/technical-leadership/page.html" tlcContext + >>= loadAndApplyTemplate "templates/boilerplate.html" sponsors + >>= relativizeUrls + -- news ------------------------------------------------------------------------------------------------ -- An entry is either a full article (own page) or a headline linking out -- (front matter `link`, no own page). `hasLink` splits the two. @@ -792,6 +811,30 @@ sortBoardByRole items = do role <- either fail pure (parseRole title) pure (role, item) +{- | A TLC member's role -} +data TLCRole + = TLCChair + | TLCBoardLiaison + | TLCMember + deriving (Eq, Ord, Show) + +parseTLCRole :: String -> Either String TLCRole +parseTLCRole title = case title of + "Chair" -> Right TLCChair + "Board Liaison" -> Right TLCBoardLiaison + "Member" -> Right TLCMember + _ -> Left ("parseRole: unexpected TLC role " ++ show title) + +sortTLCByRole :: [Item String] -> Compiler [Item String] +sortTLCByRole items = do + ranked <- mapM tagWithRole items + pure $ map snd $ sortOn fst ranked + where + tagWithRole item = do + title <- fromMaybe "Member" <$> getMetadataField (itemIdentifier item) "role" + role <- either fail pure (parseTLCRole title) + pure (role, item) + -------------------------------------------------------------------------------------------------------- -- Pandoc extensions ----------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------- diff --git a/technical-leadership/members/joshua.markdown b/technical-leadership/members/joshua.markdown new file mode 100644 index 00000000..36ebe9ee --- /dev/null +++ b/technical-leadership/members/joshua.markdown @@ -0,0 +1,6 @@ +--- +name: Joshua Miller +image: /assets/images/technical-leadership/joshuamiller.png +--- + +Josh has been using Haskell at H-E-B since 2018 to build resilient, long-lived systems for the supply chain. He is a firm believer in keeping software open and collaborative, and his desire to push Haskell in industry is evidenced by his ongoing open-source work (e.g. Arbiter). In addition to programming, Josh likes to play piano and produce his own music. \ No newline at end of file diff --git a/technical-leadership/members/julian.markdown b/technical-leadership/members/julian.markdown new file mode 100644 index 00000000..d3ab4518 --- /dev/null +++ b/technical-leadership/members/julian.markdown @@ -0,0 +1,9 @@ +--- +name: Julian Ospald +image: /assets/images/technical-leadership/julianospald.png +role: Chair +--- + +Julian started his open source journey as a Gentoo Linux developer, working with large teams of distributed volunteers. He picked up Haskell when a friend told him about this strange new language that would revolutionize all of software engineering. This spark turned into a mission to fix tooling around Haskell (e.g. GHCup) and contribute to the larger ecosystem. His professional journey has taken him across fintech startups (Capital Match), banks (Standard Chartered Bank) and software labs (IOG). + +Julian believes in open source, human collaboration and unix principles. He draws his passion from the beauty of the craft and the need to support and exercise good engineering. \ No newline at end of file diff --git a/technical-leadership/members/rodrigo.markdown b/technical-leadership/members/rodrigo.markdown new file mode 100644 index 00000000..1a095a9d --- /dev/null +++ b/technical-leadership/members/rodrigo.markdown @@ -0,0 +1,6 @@ +--- +name: Rodrigo Mesquita +image: /assets/images/technical-leadership/rodrigomesquita.png +--- + +Rodrigo is a compiler engineer working at Well-Typed on GHC, the Haskell Debugger, and other open-source core ecosystem tools full-time (besides more Haskell projects on his free time). Rodrigo is also passionate about teaching and academia and is currently an invited professor at FCUL in Lisbon; his work on the interaction of laziness and linearity was recently published at POPL, and he’s interested in doing research when time permits. In his additional free time, he is preparing to train for a triathlon. \ No newline at end of file diff --git a/technical-leadership/members/simon.markdown b/technical-leadership/members/simon.markdown new file mode 100644 index 00000000..63f019c9 --- /dev/null +++ b/technical-leadership/members/simon.markdown @@ -0,0 +1,7 @@ +--- +name: Simon Marlow +image: /assets/images/board-members/sm.png +role: Board Liaison +--- + +Simon worked on GHC full time from about 1998 to 2013, and sporadically since then. He is the main author of the runtime system, the code generator, and various other parts of the compiler. He is the author of the O'Reilly book "Parallel and Concurrent Programming in Haskell". In 2013 he moved to Facebook (now Meta) where he led the team that built the largest ever production Haskell deployment, Sigma, which was a platform for combating abuse on Facebook, Instagram and WhatsApp. While at Meta he also led the team that built Glean, a system for collecting and querying information about source code at scale; Glean is open-source and is still in use as a core part of Meta's developer tooling infrastructure. He left Meta in February 2025 and nowadays he spends his time mostly riding his bike and hacking on things that he finds interesting. \ No newline at end of file diff --git a/templates/mobile-nav-flyout.html b/templates/mobile-nav-flyout.html index c6d90f5a..cc631d31 100644 --- a/templates/mobile-nav-flyout.html +++ b/templates/mobile-nav-flyout.html @@ -23,11 +23,12 @@ Home
About
- Current Board - Past Boards + Board of Directors + Technical Leadership Contact Vision Careers + Past People Podcast diff --git a/templates/nav.html b/templates/nav.html index 8ec9c524..5efa4bfa 100644 --- a/templates/nav.html +++ b/templates/nav.html @@ -17,11 +17,11 @@ diff --git a/templates/technical-leadership/member.html b/templates/technical-leadership/member.html new file mode 100644 index 00000000..97f0dcc7 --- /dev/null +++ b/templates/technical-leadership/member.html @@ -0,0 +1,14 @@ +
+
+ $name$ +
+

$name$

+ $if(role)$ +
$role$
+ $endif$ +
+
+
+ $body$ +
+
\ No newline at end of file diff --git a/templates/technical-leadership/page.html b/templates/technical-leadership/page.html new file mode 100644 index 00000000..4325b13f --- /dev/null +++ b/templates/technical-leadership/page.html @@ -0,0 +1,42 @@ +
+ $partial("templates/corners.html")$ + +
+

Technical Leadership Committee

+
+ +
+
+
+
+

+ The Technical Leadership Committee is the body behind the Haskell Foundation’s technical vision. The committee is responsible for expressing a technical vision for the Haskell community and allocating the Haskell Foundation’s resources towards achieving this vision. + +

+
+
+

+ If you wish to contact the Technical Leadership Committee, you may do so via technical-leadership@haskell.foundation. +

+
+
+
+
+ + +
+

Committee Members

+
+ $for(members)$ + $partial("templates/technical-leadership/member.html")$ + $endfor$ +
+
+ +
+

Projects

+

+ Come back soon! +

+
+
\ No newline at end of file