maninak

Kostis Maninakis

Senior full-stack engineer in TypeScript and Vue: web apps, peer-to-peer and developer tools

Contract, 20 to 30+ hours a week Vienna, remote or hybrid EU citizen, no sponsorship needed maninak@pm.me

Hand me an idea and I can run with it end to end: architecture, code, UX, brand and launch. On my own, leading a small team, or joining yours.

Full-stack web since 2015, TypeScript since 2016, Vue since 2019, Nuxt since 2021; along the way I led a team of up to 15. Since 2022, developer tools for Radicle, a peer-to-peer code collaboration network, first at Radworks and now independently.

Roles

  1. – presentFounder and engineer at radicle.toolsOwn product
  2. – Family sabbatical
  3. – Senior engineer, developer tooling at RadworksFreelance
  4. – Senior front-end developer at Umdasch Group VenturesFreelance
  5. – Senior full-stack engineer at GenTwoFreelance
  6. – Tech lead at SclableEmployed
  7. – Full-stack web developer at BestPrice.grEmployed
  8. – Full-stack product engineer at ClearhausFreelance
  9. – Founder and CTO at PlironoOwn startup
  10. – Mobile app developer, intern at Omnixell
  11. – Web developer and product owner at Cretan Sport CyclingFreelance
  12. – Guest researcher, part time at FORTH-ICS
  13. – Private tutor at university programming courses
  14. 2014 – 2018Earlier rolesEarlier roles

In short

  • As tech lead, took a struggling EUR 4.5M platform to recurring revenue.Got elected tech lead of a struggling EUR 4.5M construction platform, and took it to recurring revenue.
  • Found and disclosed that Radicle nodes send private repositories in cleartext, a critical vulnerability whose fix brought Radicle 2.0 forward.Found and disclosed that Radicle nodes send private repositories in cleartext, a critical vulnerability whose fix brought Radicle 2.0 forward. The maintainers reproduced it and credit me in their announcement, which was covered by Hacker News and lobste.rs; my own write-up narrates how and what I found.
  • Took over a Swiss fintech’s Nuxt site, overhauled its performance and SEO, and trained its in-house team to carry it on.Took over a Swiss fintech’s Nuxt site, fixed hundreds of UI and UX issues, and trained its in-house team to carry it on.
  • ts-xor, my TypeScript library, has 25M+ npm downloads and 6,800+ dependents.ts-xor, a TypeScript library I published in 2019, surpassing 200,000 npm downloads per week, with 25M+ in total and 6,800+ dependents.
  • Author and maintainer of Radicle’s VS Code extension since 2023.Author and maintainer of Radicle’s VS Code extension, with 21 releases since 2023.
  • stats.radicle.at, a thorough public accounting of the Radicle network’s daily state, covering about 16,000 repositories on 1,900 nodes.stats.radicle.at, a thorough public accounting of the Radicle network’s daily state. It covers about 16,000 repositories on 1,900 nodes, and every repository page carries an innovative activity timeline that would make GitHub jealous.
  • Running radicle.at, a public seed node, since March 2024. It mirrors about 82% of the public repositories it can see on the Radicle network, pruned weekly by a tool I wrote.
  • Building Grove, a peer-to-peer code forge like GitHub that runs entirely in a browser tab, the first of its kind.Building Grove, a code forge like GitHub, but peer-to-peer, with no server doing the work, running entirely in a browser tab. The first of its kind, and already a live peer on the network.

Recommended

“Mr. Maninakis was a very motivated employee who realized the agreed goals extremely ambitiously and independently. His precise way of working and his assertiveness were remarkable.”

Markus Nenning, Managing Director, Sclable. Read the letter from Markus Nenning

“We would be happy to work with Mr. Maninakis again in the future.”

Patrick Ottenschläger, Head of Software DevOps, Umdasch Group Ventures. Read the letter from Patrick Ottenschläger

Timeline

Newest first. Squares mark roles, dots everything else.

  1. Security

    Radicle nodes send private repositories in cleartext

    Coordinated vulnerability disclosure.

    • Caught it when Grove’s encrypted connections kept dying, because real nodes were not encrypting at all. Anyone on the path between two nodes can read every private repository they exchange. Radicle’s announcement credits me with the report; my own write-up narrates how and what I found.
    • Reported it privately on 24 June 2026, held it under coordinated disclosure for three months, and went public together with the maintainers on 23 September 2026. The fix breaks wire compatibility across the whole network, which brought Radicle 2.0 forward.
    • The flaw sits in Rust crates other projects depend on too, and has been filed with the RustSec advisory database.
  2. Milestone

    ts-xor surpassed 200,000 downloads per week

  3. – presentOpen source

    radicle-backup

    Rust command-line tool, on crates.io.

    • The de-facto standard tool for any Radicle user who wants to back up, verify, restore or move their identity, keys and private repositories. Runs as rad backup.
    • Seeded by more nodes than 99.8% of the network’s repositories (stats.radicle.at, 30 September 2026). Suggested to users in Radicle’s support channel.
    • Backs up, verifies, restores and moves a Radicle identity: keys, node state and private repositories, into encrypted archives on a schedule. A restore checks every repository against the network first, so a stale copy cannot fork the owner’s history.

    Rust, clap, SQLite, age encryption, zstd, systemd timers, rusqlite, age, BIP39, Git bundles

  4. Security

    Strict signature verification in heartwood

    • Noticed that the reference node had stopped rejecting weak Ed25519 keys after a crypto-library change; Grove already verified strictly. Co-authored the upstream fix, which switched to strict verification and shipped in Radicle 1.10.1 in August 2026.
  5. – presentInfrastructure

    api.radicle.tools

    Public resolution API.

    • Resolves a node or identity to its alias for any client on the network, a lookup the gossip layer cannot answer by itself, from an index of over 18,000 nodes.
  6. – present

    Founder and engineer at radicle.tools

    Vienna. Own product.

    • Ships and runs live Radicle tools used across the network, including stats.radicle.at, radicle-backup, radicle-seed-prune and the radicle.at public seed.
    • Building Grove, a first-of-its-kind peer-to-peer code forge in a browser tab, in Nuxt and Vue over Rust wasm. Early access.
    • Wrote the network stack in TypeScript for the browser: the Noise handshake, the wire codecs, gossip, verified replication, and a Git fetch over protocol v2 that reads packfiles, sigrefs and Radicle’s collaborative objects.
    • Product, brand, site and launch copy.

    TypeScript, Vue 3, Nuxt, Vite, Node.js, wasm, Web Workers, Playwright, Vitest, Git protocol v2, Rust, OPFS, WebAuthn

  7. – presentInfrastructure

    radicle-seed-prune

    rad-prune, a seed operator’s tool in bash.

    • Keeps a public seed’s disk in check by pruning stale, abandoned and spam repositories, utilizing advanced heuristics and deep file analysis. One pass on radicle.at freed 18 GiB across 1,341 repositories; it runs there weekly.
    • Radicle’s own maintainers run it on the project’s official public seeds.

    bash, Git, cron, systemd, POSIX tools, Git internals, rad CLI

  8. – presentInfrastructure

    stats.radicle.at

    Network analytics.

    • The de-facto standard site for any sort of Radicle-related analytics and insights, covering storage, replication, collaboration and traffic, rebuilt nightly in only 3 minutes by a scan, derive and build pipeline in Python.
    • Every mirrored repository and every identity gets a page with an innovative interactive activity timeline that established forges like GitHub would be jealous of.
    The activity timeline stats.radicle.at draws for heartwood, Radicle’s reference implementation: commits, patches and issues per contributor over four yearsThe activity timeline stats.radicle.at draws for heartwood, Radicle’s reference implementation: commits, patches and issues per contributor over four years
    The activity timeline stats.radicle.at draws for heartwood, Radicle’s reference implementation.
  9. – Sabbatical

    Family sabbatical

    • Became a father.
    • Trained Shaolin kung fu, tai chi and qigong 14 hours a week as a 36th-generation Shaolin disciple, including at the Shaolin Temple in China.
    • Dharma name 妙祇 (Miào Qí).
    Kostis and Shaolin warrior monk Shifu Shi Heng Yi making the palm salute under the Shaolin Temple’s name board, Dengfeng, China, August 2025
    At the Shaolin Temple with Shaolin warrior monk Shifu Shi Heng Yi (释恒意), 2025.
  10. Talk

    Speaker, ViennaJS

    “Radicle: a sovereign, peer-to-peer, open-source network for code collaboration”.

    Kostis mid-talk at ViennaJS beside his title slide, “Radicle: a sovereign, peer-to-peer, open-source network for code collaboration”, 5 June 2024
    Opening the talk. Photo: ViennaJS
    An attendee’s hand-drawn sketchnote summarising Kostis’ ViennaJS talk on Radicle
    An attendee’s sketchnote of the talk.
  11. – presentInfrastructure

    radicle.at

    Public Radicle seed node.

    • Mirrors about 82% of the network’s public repositories (29 September 2026), and keeps users well-connected when Radicle’s official seeds come short in the face of demand.
    • Caddy in front, balancing three HTTP daemons behind an on-disk cache, per-IP rate limits and precompressed responses; systemd units and a weekly prune.

    Caddy, systemd, Linux VPS, cron, radicle-node, radicle-httpd

  12. – presentOpen source

    @maninak/eslint-config

    Code linting and formatting suite.

    • A plug-and-play lint-and-format suite. By default it lints and formats TypeScript, Vue, React, Svelte, Tailwind, JSON, YAML, Markdown and tests, and fixes most findings on save and on commit. @maninak/eslint-config on npmx.dev.
  13. – presentOpen source

    Radicle for VS Code

    VS Code extension.

    • Patches, issues and code review inside the editor. Contributors include a Radicle core maintainer.
    • Version 0.7.0 (July 2026) dropped the dependency on the node’s HTTP daemon. Patches work offline through the rad CLI and Git, and aliases resolve through a wasm SQLite reader.
    • Rebuilt the end-to-end test setup a teammate started in 2024 so it runs locally and concurrently against isolated real nodes, and in macOS and Linux CI.
    • Nearly 3,000 installs and downloads across the VS Code Marketplace and Open VSX.

    TypeScript, Vue 3, VS Code extension API, webviews, WebdriverIO, Git, rad CLI, wasm SQLite

  14. – 2 yr 7 mo

    Senior engineer, developer tooling at Radworks

    The organisation behind Radicle, a peer-to-peer GitHub alternative. Remote. Full time from January 2023. Freelance.

    • Built the Radicle VS Code extension and still maintain it, with 21 releases since April 2023.
    • In 2024, in the Radicle Integrations and Tooling Org, owning the VS Code extension and Planning Boards.
    • Led Radicle Planning Boards, a funded Kanban tool for Radicle issues, and interviewed and hired its developers; the org paused it before launch.
    • Named team member on four Radworks-funded grants from late 2022, and on the contributor roster of the 2025 Radworks Product Org.

    TypeScript, Vue 3, Nuxt, Node.js, VS Code extension API, webviews, Git, rad CLI

  15. – 3 mo

    Senior front-end developer at Umdasch Group Ventures

    The Umdasch Group’s innovation hub, on its construction-site app Sitelife. Freelance.

    • On a React and TypeScript codebase, moved the build to Vite 4 and the tests to Vitest, cut lint time about 16x, upgraded Storybook and Tailwind CSS, and code-split the planning module.
    • Code review and pair programming with the in-house team. Their reference credits me with greatly improving build time and bundle size.

    “Konstantinos furthermore showed great communication with the team from the start and quickly fit into the team.” Patrick Ottenschläger, Head of Software DevOps. Read the letter from Patrick Ottenschläger

  16. – 11 mo

    Senior full-stack engineer at GenTwo

    Swiss fintech. Remote. Freelance.

    • Took over gentwo.com with a free hand. Migrated it to latest Vue/Nuxt, resolved heaps of technical debt, put much more content in the CMS so pages ship without an engineer; fixed hundreds of UI and UX issues and overhauled performance, SEO, accessibility and security; trained the in-house team to carry it on.
    • Then folded gentwodigital.com into gentwo.com and built a member zone with authentication.

    Vue 3, Nuxt 3, TypeScript, Tailwind CSS, Strapi, Node.js

  17. Education

    Vue 3 deep-dive workshop

    With Evan You.

    • A full day building Vue 3’s reactivity and virtual DOM by hand, with the creator of Vue and Vite.
    Kostis, holding his Vue.js 3 Deep Dive certificate, with Evan You, the creator of Vue and Vite, February 2020
    Kostis (right) with Evan You, Vue and Vite’s creator, certificate in hand.
  18. – presentOpen source

    ts-xor

    TypeScript library.

  19. Writing

    “How I went from n00b intern to engineering team lead”

    Published by freeCodeCamp on Medium.

  20. – 2 yr 5 mo

    Tech lead at Sclable

    Vienna. Employed.

    • Contakt is a EUR 4.5M platform for the logistics and analytics of large construction sites. The team elected me its tech lead soon after I joined. I pulled the product from imminent failure into recurring revenue, leading up to 15 people across disciplines.
    • Made the app over ten times faster, and built its 3D CAD and construction-planning module in Babylon.js.
    • Designed the GraphQL and internationalisation architecture and took the app to full PWA status.
    • Built a zero-config lint setup for every JavaScript engineer in the company, and created its best-received internal course, on PWAs.
    • Ran onboarding, code review and mentoring, and rewrote the CI pipelines; stood in for upper management with the client, made product design decisions, and occasionally sold to them.

    “Due to his always obliging and helpful manner, Mr. Maninakis was equally appreciated by his superiors and colleagues.” Markus Nenning, Managing Director. Read the letter from Markus Nenning

    Vue, Vuex, TypeScript, GraphQL, Apollo, Babylon.js, Cypress, Jest, GitLab CI, Keycloak, webpack, ESLint

  21. – 6 mo

    Full-stack web developer at BestPrice.gr

    Greece’s fastest-growing product search engine in 2018. Heraklion, Crete. Employed.

    • Built public front ends and internal tools; improved the performance, security and architecture of major Node.js microservices, wrote UI copy and made product calls.
    • Soon owned analytics and tracking for the marketing team end to end, documented for non-technical staff; onboarded and mentored junior developers.

    React, Redux, Next.js, Node.js, Express, Koa, PHP, Sentry, Puppeteer, content security policy

  22. Talk

    Progressive Web Apps

    Devstaff meetup at FORTH-ICS.

    • “Supercharge your web apps, boost conversions and ditch the app stores.” Slides.
  23. – 4 mo

    Full-stack product engineer at Clearhaus

    Freelance.

    • Turned the in-house 3-D Secure back end into a standalone SaaS product, 3dsecure.io: pricing, brand, copy, UX and UI, a front end with custom Three.js graphics, the architecture, and a back end tied into checkout, recurring payments and support.

    Node.js, TypeScript, Three.js, Sass, AWS, Figma, 3-D Secure

  24. Talk

    A brief, non-technical intro to Bitcoin

    Devstaff meetup at FORTH-ICS.

    • Drew on mining, trading and analysing Bitcoin from 2010 on. Slides, video (Greek).
    The audience filling the FORTH-ICS amphitheatre at Kostis’ Bitcoin talk, September 2017
    A full house at FORTH-ICS.
  25. Writing

    Posts on Git and build tooling

    On Medium.

  26. – 6 mo

    Founder and CTO at Plirono

    Fintech startup. Crete. Own startup.

    • Built the MVP: a merchant progressive web app, a payment widget, an account-less consumer app, and an API to a payment processor; in user testing, the payment flow halved cart abandonment.
    • Sold custom e-commerce software and a month of consulting to a major European bank (January 2017), pitched to top Greek bankers at Startup Europe Week Crete, then wound the company down for lack of a co-founder.

    Angular, Ionic, Node.js, Express, MongoDB, AWS, TypeScript

  27. – 2 mo

    Mobile app developer, intern at Omnixell

    British startup.

    • Shopping cart, offers, appointments and map modules on Ionic 2 and Angular 2 while both were in beta; co-wrote the npm client for the company’s API.
  28. – 1 yr 2 mo

    Web developer and product owner at Cretan Sport Cycling

    The Tour of Crete. Crete. Freelance.

    • Designed and built tourofcrete.com and wrote all of its content in English and Greek; product design of an international cycling event; the Facebook page and ads. Ran it for the 2016 event and set up the 2017 edition before leaving.

    WordPress, PHP, MySQL, Leaflet, QGIS, SEO

  29. – 11 mo

    Guest researcher, part time at FORTH-ICS

    Computational Biomedicine Lab. Crete.

    • Visualisation of RDF/S evolution using provenance queries, built as a Protégé plugin in Java.
  30. – 1 yr 6 mo

    Private tutor at university programming courses

    Crete.

    • From first-year programming up to computer organisation. Some students travelled over 150 km a week to attend.
  31. 2014 – 2018

    Earlier roles

    BestPrice.gr, Clearhaus, Plirono, Omnixell, Cretan Sport Cycling, FORTH-ICS and private tutoring.

  32. 2014 – 2018

    Earlier roles

    • BestPrice.gr, full-stack web developer (2018)
    • Clearhaus, full-stack product engineer (2017)
    • Plirono, founder and CTO (2016 to 2017)
    • Omnixell, mobile app developer, intern (2016)
    • Cretan Sport Cycling, web developer and product owner (2015 to 2016)
    • FORTH-ICS, guest researcher, part time (2014 to 2015)
    • university programming courses, private tutor (2014 to 2015)
  33. – Education

    Computer Science, undergraduate studies

    University of Crete.

    • A compiler and virtual machine, from scratch, for a new dynamically typed language with iterators and anonymous callbacks; a 2D game engine in C++, and Bubble Bobble on top of it.

Skills

Web
Vue 3, Nuxt, TypeScript, JavaScript, Vite, Tailwind CSS, progressive web apps, accessibility, performance, security, SEO
Back end and data
Node.js, REST, GraphQL and Apollo, Strapi, SQLite, MongoDB, Python for data pipelines
Testing and tooling
Vitest, Playwright, Cypress, Jest, ESLint rule authoring, pnpm monorepos, CI, npm publishing
Git and protocols
Git internals (packfiles, protocol v2, sigrefs), Radicle collaborative objects, the Noise handshake, gossip, binary wire codecs, WebAuthn and passkeys
Editor, browser and Rust
VS Code extension API and webviews, Monaco, Web Workers, OPFS; Rust for a CLI on crates.io and a wasm crypto core
Operations
bash, Caddy, systemd, Cloudflare Pages and KV, operating a public seed node and other 24/7 services on a Linux VPS
Beyond code
product design, UX and UI copy, brand, hiring and mentoring, client work and pitching
Earlier
React (most recently 2022), Next.js, Angular, Ionic, PHP, Java, C and C++

Languages and elsewhere

Elsewhere
The blog on this site; co-author of the Wikipedia article on the neurobiological effects of physical exercise.
Languages
Greek native, English C2, German B2. Certificate of Proficiency in English (University of Michigan) and Cambridge Certificate in Advanced English, grade A (one of four in Greece at that sitting); German B2 certificates from ÖSD and the Goethe-Institut.

Write to me at maninak@pm.me.

Off the screen: Shaolin kung fu, and cycling and sailing, the latter two at an international semi-pro competitive level.

Kostis and fellow Shaolin students in a line along the wall of Burg Finstergrün, Austria, each kicking one leg high behind them, the castle gate tower above
The backward kick, 后撩腿 (hòu liāo tuǐ), at Shaolin training in Burg Finstergrün, Austria.
Kostis on the second-place step of the Men’s Elite podium at a UCI World Cycling Tour race in Chania, Crete, medal on, UCI banners behind
Second place in Men’s Elite category, UCI World Cycling Tour, Chania.
Three J/24 keelboats running under white spinnakers in a strong breeze, his boat in the centre, number 1 on the bow, crossing the finish beside a blue FINISH flag ahead of the other two
Winning a race at the Greek J/24 Nationals.