diff --git a/astro.config.ts b/astro.config.ts index 103feea84..9801dc602 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -86,7 +86,9 @@ export default defineConfig({ site: getSiteUrl(), redirects: { '/careers/senior-kotlin-engineer': '/careers/kotlin-engineer/', - '/careers/senior-kotlin-engineer/': '/careers/kotlin-engineer/' + '/careers/senior-kotlin-engineer/': '/careers/kotlin-engineer/', + '/team/mal': '/team/hga', + '/team/mal/': '/team/hga' }, markdown: { shikiConfig: { diff --git a/src/assets/team/headshots/hga.png b/src/assets/team/headshots/hga.png new file mode 100644 index 000000000..4d25bf9c2 Binary files /dev/null and b/src/assets/team/headshots/hga.png differ diff --git a/src/components/team/MeetOtherExecs.astro b/src/components/team/MeetOtherExecs.astro index 1bdb81efe..a519648d0 100644 --- a/src/components/team/MeetOtherExecs.astro +++ b/src/components/team/MeetOtherExecs.astro @@ -15,7 +15,7 @@ var people = (Object.values(import.meta.glob>( const { code } = Astro.props; -const allExecs = ["mal", "jon", "jdt", "joe"]; +const allExecs = ["hga", "jon", "jdt", "joe"]; const otherExecs = allExecs.filter(c => c !== code); ---
diff --git a/src/data/people/hga.md b/src/data/people/hga.md index 9de9124d3..ed2c66c8d 100644 --- a/src/data/people/hga.md +++ b/src/data/people/hga.md @@ -2,10 +2,15 @@ code: 'hga' name: 'Henry' lastName: 'Garner' +fullName: 'Henry Garner' email: 'hga@juxt.pro' -jobTitle: 'CTO' +jobTitle: 'CTO & AI Chapter Lead' image: 'hga.jpg' linkedin: 'henrygarner' twitter: 'henrygarner' github: 'henrygarner' + +feature: + jobTitle: true + link: /team/hga --- diff --git a/src/data/people/mal.md b/src/data/people/mal.md index cb1ba0df9..61b2df8ab 100644 --- a/src/data/people/mal.md +++ b/src/data/people/mal.md @@ -9,8 +9,4 @@ image: 'mal.jpg' linkedin: 'malcolmsparks' twitter: 'malcolmsparks' github: 'malcolmsparks' - -feature: - jobTitle: true - link: /team/mal --- diff --git a/src/pages/blog/xt24-fintech-conf-review.mdx b/src/pages/blog/xt24-fintech-conf-review.mdx index da980e2d0..03fb0d7d4 100644 --- a/src/pages/blog/xt24-fintech-conf-review.mdx +++ b/src/pages/blog/xt24-fintech-conf-review.mdx @@ -72,7 +72,7 @@ import database from '../../assets/blog/xt24/Database.jpg' Jeremy Taylor talking about immutable databases -Following the lunch break, JUXT's very own CTO [Malcolm Sparks](https://www.juxt.pro/team/mal/) discussed the context and motivations for building [XTDB](https://xtdb.com). Cross-cutting issues around time and auditable record keeping seem to show up on nearly every project, and Malcolm explained how financial organizations like Goldman Sachs have been able to differentiate and compete effectively on the basis of their approach to centralising Risk in a bitemporal database. Joining Malcolm on stage was [Jeremy Taylor](https://www.juxt.pro/team/jdt/), JUXT's Head of Product, to run through real-world scenarios using SQL to address a [variety of hard data management problems](https://docs.xtdb.com/tutorials/financial-usecase/time-in-finance.html) that are common throughout financial systems. +Following the lunch break, JUXT's very own CTO [Malcolm Sparks](https://www.linkedin.com/in/malcolmsparks/) discussed the context and motivations for building [XTDB](https://xtdb.com). Cross-cutting issues around time and auditable record keeping seem to show up on nearly every project, and Malcolm explained how financial organizations like Goldman Sachs have been able to differentiate and compete effectively on the basis of their approach to centralising Risk in a bitemporal database. Joining Malcolm on stage was [Jeremy Taylor](https://www.juxt.pro/team/jdt/), JUXT's Head of Product, to run through real-world scenarios using SQL to address a [variety of hard data management problems](https://docs.xtdb.com/tutorials/financial-usecase/time-in-finance.html) that are common throughout financial systems. ### We Need to Talk About JSON - Oliver Hine, JUXT @@ -96,7 +96,7 @@ import panel from '../../assets/blog/xt24/Panel.jpg' Future of Fintech - Expert Panel -Vlad was then joined on stage for a broader discussion alongside a whole panel of speakers: [Mark Burgess](https://www.linkedin.com/in/markburgessoslo/) (physicist, author and original architect of [CFEngine](http://cfengine.com/)), [Francine Bennett](https://www.adalovelaceinstitute.org/person/francine-bennett/) ([Ada Lovelace Institute](https://www.adalovelaceinstitute.org/)), and [Malcolm Sparks](https://www.juxt.pro/team/mal/) (CTO, JUXT). The session was hosted by [Jason Bloomberg](https://www.linkedin.com/in/jasonbloomberg/) (Managing Director, [Intellyx](https://intellyx.com/)), who guided the panel through a series of wide-ranging topics including AI impact, blockchain adoption, and soon-to-be-legacy tech. +Vlad was then joined on stage for a broader discussion alongside a whole panel of speakers: [Mark Burgess](https://www.linkedin.com/in/markburgessoslo/) (physicist, author and original architect of [CFEngine](http://cfengine.com/)), [Francine Bennett](https://www.adalovelaceinstitute.org/person/francine-bennett/) ([Ada Lovelace Institute](https://www.adalovelaceinstitute.org/)), and [Malcolm Sparks](https://www.linkedin.com/in/malcolmsparks/) (CTO, JUXT). The session was hosted by [Jason Bloomberg](https://www.linkedin.com/in/jasonbloomberg/) (Managing Director, [Intellyx](https://intellyx.com/)), who guided the panel through a series of wide-ranging topics including AI impact, blockchain adoption, and soon-to-be-legacy tech. ### Not So Clever: How we Built a Global-Scale Successful Risk System Guided by Simplicity - Zohar Melamed, QRT diff --git a/src/pages/team/hga.astro b/src/pages/team/hga.astro new file mode 100644 index 000000000..5208ee18f --- /dev/null +++ b/src/pages/team/hga.astro @@ -0,0 +1,120 @@ +--- +import * as myData from '../../data/people/hga.md' + +const { code, jobTitle, fullName } = myData.frontmatter + +import { getImage, Image } from 'astro:assets' +import ProfilePage from '@components/team/ProfilePage.astro' + +import Section from '@components/team/Section.astro' +import TwoColumnSection from '@components/team/TwoColumnSection.astro' +import GreetingSection from '@components/team/GreetingSection.astro' +import QuoteSection from '@components/team/QuoteSection.astro' +import LatestBlogsSection from '@components/team/LatestBlogsSection.astro' +import ResourceCollectionSection from '@components/team/ResourceCollectionSection.astro' +import GitHubRepositoriesSection from '@components/team/GitHubRepositoriesSection.astro' +import GitHubRepositoryItem from '@components/team/GitHubRepositoryItem.astro' +import ContactSection from '@components/team/ContactSection.astro' +import ResourceItem from '@components/team/ResourceItem.astro' +import SmallTitle from '@components/team/SmallTitle.astro' +import SimpleColumn from '@components/team/SimpleColumn.astro' +import FeatureSection from '@components/team/FeatureSection.astro' +import FeatureText from '@components/team/FeatureText.astro' +import FeatureYouTube from '@components/team/FeatureYouTube.astro' +import GallerySection from '@components/team/GallerySection.astro' +import GalleryImage from '@components/team/GalleryImage.astro' +import MeetOtherExecs from '@components/team/MeetOtherExecs.astro' + +description: "Meet Henry Garner, CTO at JUXT. Learn about his expertise in AI-assisted engineering, data science and functional programming." +--- + + + + +
  • AI-assisted Engineering
  • +
  • Data Science
  • +
  • Functional Programming
  • +
  • Technical Leadership
  • +
    + + As JUXT's CTO, I lead our technical strategy and help clients build + better software systems. I'm particularly interested in how AI is + reshaping the practice of software engineering, and how teams can + adopt these tools effectively. + +
    + + + + +

    + AI research has always had two goals: building systems that replace + human judgment (AI), and building systems that extend it. William + Ross Ashby called the second one Intelligence Amplification (IA) back + in 1956. We're fixated on the first, but the commercial successes + keep coming from the second. +

    +

    + Aristotle had a word for the judgment we need to preserve: + phronesis, practical wisdom. This talk draws on medicine and ethics + to ask how we hold onto it. When AI suggests solutions, do we + evaluate them thoughtfully, or do we gradually lose the situational + awareness needed for proper oversight? +

    +
    +
    + + +
    + + + + +

    + Filing cabinets and lightbulbs aren't the obvious route into software + engineering. Inspired by the Quantum Untangled exhibition at the + Science Gallery London, this talk traces an unconventional path into + the industry through the Big Ideas of David Deutsch and the + philosophy of good explanations. +

    +

    + Why do we see such polarisation between those who wield AI despite + its flaws and those who are fervently anti-AI despite its + extraordinary successes? Human progress is full of incredibly useful + models that turned out to be absolutely wrong. We didn't know that + reading glasses would lead to Galileo's telescopes, or that telephone + valve amplifiers would enable the first electronic computers. We + simply can't know where the next stepping stones will come from. +

    +
    +
    + + +
    + + + + + + +
    diff --git a/src/pages/team/mal.astro b/src/pages/team/mal.astro deleted file mode 100644 index d6d30bc5d..000000000 --- a/src/pages/team/mal.astro +++ /dev/null @@ -1,216 +0,0 @@ ---- -// 1. Source profile data from your profile file -import * as myData from '../../data/people/mal.md' - -// 2. Extract the fields you are planning to use in your profile page. -// NOTE: This won't error if properties are missing -const { code, jobTitle, fullName } = myData.frontmatter - -// 3. Import any components you need -import { getImage, Image } from 'astro:assets' -import ProfilePage from '@components/team/ProfilePage.astro' - -import Section from '@components/team/Section.astro' -import TwoColumnSection from '@components/team/TwoColumnSection.astro' -import GreetingSection from '@components/team/GreetingSection.astro' -import QuoteSection from '@components/team/QuoteSection.astro' -import LatestBlogsSection from '@components/team/LatestBlogsSection.astro' -import ResourceCollectionSection from '@components/team/ResourceCollectionSection.astro' -import GitHubRepositoriesSection from '@components/team/GitHubRepositoriesSection.astro' -import GitHubRepositoryItem from '@components/team/GitHubRepositoryItem.astro' -import ContactSection from '@components/team/ContactSection.astro' -import ResourceItem from '@components/team/ResourceItem.astro' -import SmallTitle from '@components/team/SmallTitle.astro' -import SimpleColumn from '@components/team/SimpleColumn.astro' -import FeatureSection from '@components/team/FeatureSection.astro' -import FeatureText from '@components/team/FeatureText.astro' -import FeatureYouTube from '@components/team/FeatureYouTube.astro' -import GallerySection from '@components/team/GallerySection.astro' -import GalleryImage from '@components/team/GalleryImage.astro' -import MeetOtherExecs from '@components/team/MeetOtherExecs.astro' - -description: "Meet Malcolm Sparks, JUXT's CTO and technical visionary with over 30 years of experience in software development and systems architecture. Learn about his expertise in API security, web standards, and database design." ---- - - - - -
  • Systems Architecture
  • -
  • Web Standards
  • -
  • API Security
  • -
  • Databases
  • -
    - - As JUXT's CTO, I lead technological innovation and strategy, drawing upon - over three decades of experience in tech leadership and software - development, which spanned pivotal roles, including 5 years as Vice - President at Deutsche Bank where I managed critical financial systems. - -
    - - - - -

    - API development is hard, especially if we need to add security. There - are so many things to worry about! -

    - -

    - We know we can specify an API as an OpenAPI document. But how far can - we extend this data-driven approach? Can we implement security, - durability, behaviour? This talk will attempt to answer some of these - questions, in part, by delving into the design of Site, an open-source - API-platform I have been helping to build. I will explain the - advantages of a 'data-first' mindset in the development and evolution - of APIs, and how we can begin to make the development and deployments - of secure APIs a little easier. -

    -
    -
    - - -
    - - - - -

    - As part of our drive to design better data systems for our customers, - we've identified seven architectural principles that yield exceptional - results. -

    -

    - In this webinar, I explained the principles behind Atomic - Architecture, an architectural blueprint for building reliable - information systems. -

    -

    - My viewpoint is that current trends in software architecture create - unnecessary complexity, delivering poor outcomes for users. Atom - Architecture incorporates key ideas and principles from Functional - Programming, Domain Driven Design, Event Driven Architecture, Data - Mesh and more. -

    -
    -
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -