News for hackers. Stuff that matters.

G4Vi

Re:Ask HN: Who wants to be hired? (November 2026) on Monday November 02, 2026 @03:21PM (#50343123)

  Location: New Hampshire
  Remote: Strongly Preferred, 3+ years experience fully remote
  Willing to relocate: Yes
  Technologies: C, C++, Rust, Perl, TS/JS, Go, Python, Wasm, Linux, Windows, Embedded, HTTP, and more
  Résumé/CV: https://computoid.com/about/GavinAHayes-Resume.html / https://computoid.com/about/GavinAHayes-Resume.pdf
  Email: gavin [at] computoid dawt com
Hi, I'm Gavin. I have 9+ years experience between systems programming (cross-platform and embedded in C and C++), WebAssembly (porting, plugin systems, and binary parsing/recompilation), and Backend (identity and security in Rust, Typescript, Postgres). I'm proud of my open source work such as porting Perl to the Cosmopolitan Libc (featured on HN: https://news.ycombinator.com/item?id=33966755). More recently, I have enabled running binaries embedded in the Cosmo's ZIP based filesystem https://github.com/jart/cosmopolitan/commit/fdea2482ddc32c5b... . For my next role, I'm mostly interested in systems/Wasm development, but can be flexible to work in an interesting domain.
Re:Ask HN: Who wants to be hired? (October 2026) on Thursday October 01, 2026 @12:15PM (#49923650)

  Location: New Hampshire
  Remote: Strongly Preferred, 3+ years experience fully remote
  Willing to relocate: Yes
  Technologies: C, C++, Rust, Perl, TS/JS, Go, Python, Wasm, Linux, Windows, Embedded, HTTP, and more
  Résumé/CV: https://computoid.com/about/GavinAHayes-Resume.html / https://computoid.com/about/GavinAHayes-Resume.pdf
  Email: gavin [at] computoid dawt com
Hi, I'm Gavin. I have 9+ years experience between systems programming (cross-platform and embedded in C and C++), WebAssembly (porting, plugin systems, and binary parsing/recompilation), and Backend (identity and security in Rust, Typescript, Postgres). I'm proud of my open source work such as porting Perl to the Cosmopolitan Libc (featured on HN: https://news.ycombinator.com/item?id=33966755) and making my own HTTP media server/web interface. For my next role, I'm mostly interested in systems/Wasm development, but can be flexible to work in an interesting domain.
Re:Ask HN: Who wants to be hired? (September 2026) on Tuesday September 01, 2026 @11:04AM (#49522953)

  Location: New Hampshire
  Remote: Strongly Preferred, 3+ years experience fully remote
  Willing to relocate: Yes
  Technologies: C, C++, Rust, Perl, TS/JS, Go, Python, Wasm, Linux, Windows, Embedded, HTTP, and more
  Résumé/CV: https://computoid.com/about/GavinAHayes-Resume.html / https://computoid.com/about/GavinAHayes-Resume.pdf
  Email: gavin [at] computoid dawt com
Hi, I'm Gavin. I have 9+ years experience between systems programming (cross-platform and embedded in C and C++), WebAssembly (porting, plugin systems, and binary parsing/recompilation), and Backend (identity and security in Rust, Typescript, Postgres). I'm proud of my open source work such as porting Perl to the Cosmopolitan Libc (featured on HN: https://news.ycombinator.com/item?id=33966755) and making my own HTTP media server/web interface. For my next role, I'm mostly interested in systems/Wasm development, but can be flexible to work in an interesting domain.
Re:Ask HN: Who wants to be hired? (July 2026) on Wednesday July 01, 2026 @11:50AM (#48748820)

  Location: New Hampshire
  Remote: Preferred, 3+ years experience fully remote
  Willing to relocate: Yes
  Technologies: C, C++, Rust, Perl, TS/JS, Go, Python, WASM, Linux, Windows, Embedded, HTTP, and more
  Résumé/CV: https://computoid.com/about/GavinAHayes-Resume.html / https://computoid.com/about/GavinAHayes-Resume.pdf
  Email: gavin [at] computoid dawt com
Hi, I'm Gavin. I have 9+ years experience between application and embedded system development for avionics, building WebAssembly tooling, and full-stack SaaS development including backend identity and security work. At home, I've worked on side projects such as making my own HTTP media server/web interface and porting Perl to the Cosmopolitan Libc (featured on HN: https://news.ycombinator.com/item?id=33966755). For my next role, I'm mostly interested in systems/native development, but can be flexible to work in an interesting domain.
Re:Ask HN: Who wants to be hired? (October 2025) on Sunday October 12, 2025 @03:27PM (#45561047)

  Location: New Hampshire
  Remote: Only (occasional travel okay), 2+ years experience fully remote
  Willing to relocate: Yes
  Technologies: C, C++, Rust, Perl, TS or JS ES6+, Go, Python, WASM, Linux, Windows, Embedded, HTTP, and more
  Résumé/CV: https://computoid.com/about/GavinAHayes-Resume.html / https://computoid.com/about/GavinAHayes-Resume.pdf
  Email: gavin [at] computoid dawt com
Hi, I'm Gavin. Professionally, I have 8+ years experience between application and embedded system development for avionics, building WebAssembly tooling, full-stack SaaS development, and Rust network programming. At home, I've worked on side projects such as making my own HTTP media server/web interface and porting Perl to the Cosmopolitan Libc (featured on HN: https://news.ycombinator.com/item?id=33966755). For my next role, I'm mostly interested in systems/native development, but can be more flexible to work in an interesting domain.
Re:Ask HN: Who wants to be hired? (September 2025) on Tuesday September 02, 2025 @11:17AM (#45104203)

  Location: New Hampshire
  Remote: Only (occasional travel okay), 2+ years experience fully remote
  Willing to relocate: Yes
  Technologies: C, C++, Perl, TS or JS ES6+, Rust, Go, Python, WASM, Linux, Windows, Embedded, HTTP, and more
  Résumé/CV: https://computoid.com/about/GavinAHayes-Resume.html / https://computoid.com/about/GavinAHayes-Resume.pdf
  Email: gavin [at] computoid dawt com
Hi, I'm Gavin. I have 8+ years experience between application and embedded system development for avionics, building WebAssembly tooling, and full-stack SaaS development. At home, I've worked on side projects such as making my own HTTP media server/web interface and porting Perl to the Cosmopolitan Libc (featured on HN: https://news.ycombinator.com/item?id=33966755). For my next role, I'm mostly interested in systems/native development, but can be flexible to work in an interesting domain.
Re:Ask HN: Who wants to be hired? (August 2025) on Friday August 01, 2025 @12:40PM (#44759214)
Location: New Hampshire

Remote: Only (happy to come-in or travel occasionally). Worked remote for the last 2+ years.

Willing to relocate: Maybe

Technologies: C, C++, Perl, TS or JS ES6+, Rust, Go, Python, WASM, Linux, Windows, Embedded, HTTP, and more

Résumé/CV: https://computoid.com/about/GavinAHayes-Resume.html

Email: gavin [at] computoid dawt com

Hello, I'm Gavin. I have 8+ years experience between application and embedded system development for avionics, building WebAssembly tooling, and full-stack SaaS development. At home, I've worked on side projects such as making my own HTTP media server/web interface and porting Perl to the Cosmopolitan Libc (featured on HN: https://news.ycombinator.com/item?id=33966755). I am interested in various systems and backend software engineering from native to web to embedded.

Re:WASI 0.2.0 and Why It Matters on Friday January 26, 2024 @12:49PM (#39145437)
On the devx, there's definitely some rough edges around building and using Wasm. My company has been working on a framework to ease integrating Wasm into existing applications. One area it focuses on is providing easy data passing between the host program and the Wasm and vice versa. https://github.com/extism/extism We do not have WASI preview 2 support yet, but are interested in integrating it.
Re:Hermit: Actually Portable WASM on Thursday October 26, 2023 @08:30PM (#38033353)
It would be cool to package Wasm for every platform easily. You could make a hermit runner for android that loads the module and wasi configuration from the hermit, but uses its own runtime instead of the one embedded in the hermit.

Excluding the Wasm runtime, the hermit's runner or hermit base is under 400 LOC: https://github.com/dylibso/hermit/blob/1f6f51d0d6b3941c9616f... . Instead of reading the configuration and module from /zip you would use zip decoder on the hermit you want to run.

Re:Ask HN: Who wants to be hired? (April 2023) on Monday April 03, 2023 @11:18AM (#35425134)
Location: Not quite Boston (Southern NH, US)

Remote: Only (happy to come-in or travel occasionally)

Willing to relocate: No

Technologies: C, C++, Perl, WASM, Linux, Windows, Embedded, HTTP, and more

Résumé/CV: https://computoid.com/about/GavinAHayes-Resume.html (link to PDF in /about)

Email: gavin [at] computoid dawt com

Website: https://computoid.com

GitHub: https://github.com/G4Vi

Hi, I'm Gavin. For the last 5+ years, I've designed, built, and maintained the software (application and embedded system) for various test and measurement avionics products. At home, I've worked on side projects such as making my own HTTP media server/web interface and porting Perl to the Cosmopolitan Libc (featured on HN: https://news.ycombinator.com/item?id=33966755). I am interested in various systems and backend software engineering from web to embedded.

Re:Ask HN: Who wants to be hired? (March 2023) on Wednesday March 01, 2023 @11:29AM (#34984202)
Location: Not quite Boston (Southern NH, US)

Remote: Only (happy to come-in or travel occasionally)

Willing to relocate: No

Technologies: C, C++, Perl, WASM, Linux, Windows, Embedded, HTTP, and more

Résumé/CV: https://computoid.com/about/GavinAHayes-Resume.html (link to PDF in /about)

Email: gavin [at] computoid dawt com

Website: https://computoid.com

GitHub: https://github.com/G4Vi

Hi, I'm Gavin. For the last 5+ years, I've designed, built, and maintained the software (application and embedded system) for various test and measurement avionics products. At home, I've worked on side projects such as making my own HTTP media server/web interface and porting Perl to the Cosmopolitan Libc (featured on HN: https://news.ycombinator.com/item?id=33966755). I am interested in various systems and backend software engineering from web to embedded.

Re:Ask HN: Who wants to be hired? (February 2023) on Tuesday February 07, 2023 @03:29PM (#34699019)
Location: Not quite Boston (Southern NH, US)

Remote: Only (happy to come-in or travel occasionally)

Willing to relocate: No

Technologies: C, C++, Perl, WASM, Linux, Windows, Embedded, HTTP, and more

Résumé/CV: https://computoid.com/about/GavinAHayes-Resume.html (link to PDF in /about)

Email: gavin [at] computoid dawt com

Website: https://computoid.com

GitHub: https://github.com/G4Vi

Hi, I'm Gavin. For the last 5+ years, I've designed, built, and maintained the software (application and embedded system) for various avionics products. At home, I've worked on side projects such as making my own HTTP media server/web interface and porting Perl to the Cosmopolitan Libc (featured on HN: https://news.ycombinator.com/item?id=33966755). I am interested in various systems and backend software engineering from web to embedded.

Re:Actually Portable Perl on Thursday December 15, 2022 @10:01PM (#34009309)
It's mostly likely a false positive, but you're welcome to build from source with apperlm. The polygot binary format including the compressed ZIP archive probably sets off the scanners. The official APPerl binaries are compiled and uploaded by Github Actions: https://github.com/G4Vi/Perl-Dist-APPerl/blob/master/.github...

apperlm does not download perl module dependencies right now, but download_package.pl can be used to download dependencies. apperlm mostly just acts as a glorified front-end to Info-ZIP when doing a build of a "nobuild" config (building off of existing apperl)

download_package.pl example https://github.com/G4Vi/MHFS/blob/6db6ad24886ca0ea335a050228...

Edit: You can see what files were packed into it by renaming with .zip extension and opening with Windows Explorer.

Edit 2: "perl_repo_files" just specifies where to copy files to inside of the perl source tree. It is only used if you are building APPerl from source (it is unused if you are building a "nobuild" config). IPC-Open2 should already be bundled in the full perl.com as it's included in the perl5 repo: https://github.com/G4Vi/perl5/tree/cosmo-apperl/ext/IPC-Open...

Re:Actually Portable Perl on Thursday December 15, 2022 @04:53PM (#34006344)
> HTTP::Daemon, HTTP::Tiny and HTTP::Server::Simple

I haven't tested any. Pure Perl servers should be the easiest to get working. The Cosmopolitan Libc doesn't support fcntl F_SETFL O_NONBLOCK on Windows yet, and so non-blocking / event loop servers may be a no-go for now.

> I will try to release something similar to redbean but based on perl and DBD::SQLite

I'd like to see this.

> Then I might go with MHFS at first

I wouldn't consider MHFS's HTTP server "production ready" and suffers from the above mentioned O_NONBLOCK issue, but I'm curious how it would go.

If you haven't already, feel free to join the Redbean/Cosmopolitan Libc discord to discuss. (There's a link on the APPerl webpage).

Re:Actually Portable Perl on Thursday December 15, 2022 @04:32PM (#34006063)
Update on the APE Linux kernel support (for fork/ --assimilate)less APE execution. jart informed me: "It's in the process of being emailed out to the kernel developers. I anticipate it'll be merged within the next three months."
Re:Actually Portable Perl on Thursday December 15, 2022 @01:58PM (#34003996)
I would first create a script that runs a web server that performs as expected (serving files, and handling dynamic functionality in the script or in a perl module, or by paths to cgi scripts as needed). I rolled by own for packing my personal http media server (MHFS), but there's plenty of HTTP servers on CPAN. I'm not sure which one's are best.

Then, I would create a custom build of APPerl using Perl::Dist::APPerl 's apperlm and modifying the apperl-project.json to pack in the script, CPAN modules, cgi files, and the static resources into a APPerl binary. When bundled into APPerl, the script can read the files embedded in APPerl from the /zip path.

Perl::Dist::APPerl (with tutorial on building apps): https://metacpan.org/pod/Perl::Dist::APPerl

MHFS's APPerl packaging config: https://github.com/G4Vi/MHFS/blob/master/apperl/apperl-proje...

Re:Actually Portable Perl on Thursday December 15, 2022 @01:12PM (#34003390)
APPerl creator here. I appreciate all the feedback and hope it comes in handy.

It's linked from the page, but thought I'd point out if you're curious what went into making APPerl, check out the blogpost (self-plug): https://computoid.com/posts/Perl-is-Actually-Portable.html

Re:Actually Portable Perl on Thursday December 15, 2022 @01:04PM (#34003279)
I forgot to mention APPerl and StaticPerl have many overlapping use cases, but APPerl is more tailored to application packaging. APPerl is built with a patch to Perl adding argv[0] script execution, allowing the APPerl binary to turn into a binary for any of the embedded scripts, with a rename or symlink rather then needing to pass flags the Perl executable to load modules.
Re:Actually Portable Perl on Thursday December 15, 2022 @12:32PM (#34002858)
Author here. Nice comparison. By default (and the released) APPerl binaries do not self-modify (they use the non-self modifying ape loader) however on unix-like they install the APE loader to`$HOME/.ape`and use that ELF executable to run the APE. To skip the fork+exec to the ape loader, they can be assimilated with `--assimilate`, that does turn the APE executable into ELF.

There is a kernel patch to add APE (Actually Portable Executable) support to Linux removing the need for the the apeloader or assimilating. I'm not sure what the status is on that.

Re:How fat does a fat binary need to be? (2021) on Tuesday August 30, 2022 @10:42AM (#32651070)
It would be nice if you didn't need to start out with tons of ccflags and ldflags, but I'll point out you don't actually need to use the amalgamation header, alternatively using -isystem you can pass the libc/isystem directory to add the libc headers to the include path.

Especially for porting existing projects, I recommend against using the amalgamation as sometimes including everything all the time causes problems.

Re:LD_PRELOAD: The Hero We Need and Deserve on Monday February 18, 2019 @10:03AM (#19191069)
I needed to calculate the potential output file size tar would produce, so what better way than using tar itself to calculate it. It just required hooking read, write, and close.

https://github.com/G4Vi/tarsize