Samuel Hulla / Software engineer

Good software.
From the
inside out.

I build products, lead engineering teams, and turn the useful parts into open source. Based in Prague. Working everywhere.

While the dust settles

Let's stay in touch.

View my CVExperience, projects & what I do.

Also in the workshop / Open source

@hulla/api

One HTTP contract. Every application boundary.

An open-source package I'm building to define your API once, implement it on the server, and call it with types all the way through.

Explore the quick start →
users.ts
const contract = defineContract({
  basePath: '/api',
  routes: {
    user: route.get('/users/:id', {
      params: z.object({ id: z.string() }),
      responses: { 200: response.json(user) },
    }),
  },
})

const result = await api.user({ params: { id: 'ada' } })