It's more of a fun project right now, but hoping to unearth some marketable use cases and ideas as I go along. I'll do a proper launch in a month or two.
510 karma · joined September 23, 2010
available for hire.
email: amir@amirmalik.net
web: https://amirmalik.net / https://www.pilvy.com
It's more of a fun project right now, but hoping to unearth some marketable use cases and ideas as I go along. I'll do a proper launch in a month or two.
But it sounds like LiteFS (with a single writer?) might be a pretty nice setup if it handles replication for you, as you probably don't want to build a Raft or Paxos system yourself.
Yeah, I remember having to call out to XPCOM to do stuff like HTTP requests or TCP socket communication IIRC.
It was the Electron of its time. RIP.
Also, during debugging, it's a lot nicer to look at short primary keys than to have UUIDs flooding the screen.
For example:
```bash
curl https://api.example.com/stuff \
-u {% apiKey /%}: \
-d "foo=bar"
```
If the user is logged in, I want the {% apiKey /%} to be replaced with something. Do I use a transform, node, or tag to accomplish it? It seems easier to write: ```bash
curl https://api.example.com/stuff \
-u MY_API_KEY: \
-d "foo=bar"
```
And then have custom JavaScript that runs on the page that does a search-and-replace for the string MY_API_KEY with the user's API key (obtained async with API, etc.). The documentation on Markdoc needs work. local $ echo world > ~/src/hello
local $ sharewith-ssh --dir ~/src:/src code.example.com
Last login: Wed Aug 16 09:33:55 2022 from 1.2.3.4
code ~ $ cd /src
code /src $ cat hello
world
code /src $
I think it could be built with a local agent, a binary that you download on the remote host to intercept file system calls for a path (run it and it execs your shell with LD_PRELOAD to the library), and then forwards file system and I/O requests back to the the agent over SSH to get at those files. You could even have a permission prompt UI on the local agent to permit/deny individual reads/writes.Does anything like this exist?
Would JuiceFS be suitable for a handful of servers (and mobile laptops) with connection latencies anywhere from 5-150ms accessing the same file system? Workload is basic home directory stuff (lots of tiny files, few large ones, read-heavy, write-rarely). I wonder about the operational complexity in running the metadata server (yet another thing to manage unless outsourced); if it goes down, do all fs operations block/fail until it's back up?
I'm looking for something like the now-abandoned s3ql file system but one that allows multiple hosts to mount the same volume and have reads/writes "just work" without conflicts.
Remote: Yes
Willing to relocate: Maybe
Technologies: Go, TypeScript, node.js, Deno, Next.js, React, Svelte, Elixir, C, eBPF, Swift, Win32, VPN, GraphQL, SQLite, WebAssembly, SSO, WebAuthn, web3, crypto, browser extension, ...
Résumé/CV: https://amirmalik.net/resume
Email: amir@amirmalik.net
I have 10+ years experience implementing software systems. I'm a full-stack engineer and have experience in everything from low-level network protocol design to frontend UX/UI implementation. I highly value teams that are remote-first and operate in an asynchronous working style. I'm currently based in East Asia (but happy to travel anywhere on Earth to meet you) and prefer to work non-nocturnal working hours. If the team is based in the West, that means you get me as an on-call person during U.S. night time for free :)
Latest few projects:
* I worked with the folks at Uno https://uno.app on a few different cool things on automating browser and WebView logins using custom automations, React, and browser extensions.
* "Web3" side project: https://loginwith.xyz built in PHP (nostalgia ftw!), SQLite and Dockerized into a beautiful small container setup. Given time, I'll add WebAuthn support and deemphasize web3 wallet logins. It has a pretty neat Amazon-style email magic link login that's easy to integrate into your website. Just open-sourced it on GitHub.
* Main side business: https://kvdb.io built in Go. In-progress work includes replacing the Lua scripting engine with a JavaScript engine or possibly WebAssembly or a pool of sandboxed Deno worker processes. I think the app server paradigm of the 2000s will be back with a vengeance. Running for 4+ years and I intend to keep it running forever.
The phishing scenario is a real one, though. People have been conditioned to click Yes on everything. Coinbase's magic links implementation, for example, requires you to click the magic link in the same browser session that initiated the login. This is a bit more secure, although annoying from a UX perspective if you're in an embedded WebView like you mentioned.
The middle ground is something like instead of sending a link, send a code via email that you enter on the website, but that just removes the magic of magic links and is no different than what it was before!
Remote: Yes
Willing to relocate: No
Technologies: Go, golang, node.js, Next.js, TypeScript, React, Elixir, Erlang, C, eBPF, Swift, Win32, VPN, API, GraphQL, SQLite, Tailwind, REST, SSO, WebAuthn, web3, crypto, browser extension, ...
Email: amir@amirmalik.net
Résumé/CV: https://amirmalik.net/resume
I have 10+ years experience implementing software systems. I'm reaching out beyond my usual network to try to find interesting and unique opportunities. I'm a full-stack engineer and have experience in everything from low-level network protocol design to frontend UX/UI implementation. I'm open to both part-time and full-time work. I highly value teams that are remote-first and operate in an asynchronous working style. I'm currently based in East Asia (but happy to travel anywhere on Earth to meet you) and prefer to work non-nocturnal working hours. If the team is based in the West, that means you get me as an on-call person during U.S. night time for free :)
Latest few projects:
* I worked with the folks at Uno https://uno.app on a few different cool things on automating browser and WebView logins using custom automations, React, and browser extensions.
* "Web3" side project: https://loginwith.xyz built in PHP (nostalgia ftw!), SQLite and Dockerized into a beautiful small container setup. Given time, I'll add WebAuthn support and deemphasize web3 wallet logins. It has a pretty neat Amazon-style email magic link login that's easy to integrate into your website. Just open-sourced it on GitHub!
* Main side business: https://kvdb.io built in Go. In-progress work includes replacing the Lua scripting engine with a JavaScript engine. I think the app server paradigm of the 2000s will be back with a vengeance. Running for 4+ years and I intend to keep it running forever.
I have 10+ years experience implementing software systems. I'm in the process of exploring full-time opportunities, but in the meantime, I'm open to some contract work for the next month or two. I'm specifically looking to get my hands dirty on a Go project or something other than the usual React/node.js/TypeScript :)
Keyword soup: Go, golang, Elixir, Erlang, C, Swift, Win32, VPN, API, GraphQL, SQLite, Tailwind, REST, SSO, WebAuthn, web3, crypto, browser extension, ...
Fun facts: Last public side project I built was https://loginwith.xyz but https://kvdb.io is still going strong albeit growth has stagnated.
Email: amir@amirmalik.net
Resume: https://amirmalik.net/resume
GitHub: https://github.com/ammmir
LinkedIn: https://www.linkedin.com/in/amirmalik/
Is a notebook and pen the only conveyance of information or will you have your memories retained on the return to the present day? Do you devise an encoding scheme prior to departure to maximize the bits of information that can be written in the notebook?
How will you act on the information when you return? Will people believe you? Do you want to come back with some verifiable information so people will believe you? Before leaving, announce that you will visit the future, and ask everyone with a private key to sign a message to their respective future selves, so that their messages from the future can be verified by the present self?
What is the goal of this endeavor, to personally profit or for all of humanity to profit for mistakes that will be made between now and 2050?
You could spend the entire 24 hours teleporting to various places on Earth (and possibly Mars and the Moon), talking to random people in all socioeconomic strata of society, all the while taking copious notes and have them write signed messages in your notebook. Kind of like a yearbook from the future.
Or do you ask specific questions about science, medicine, advances in technology, materials, so you accelerate humanity's progress forward?
When you return, do you decide to mint your notebook as an NFT collection? Auction it off? Go on Joe Rogan to talk about it? Keep stock, crypto, market prices to yourself so only you can benefit? Become a philanthropist with the profits?
So many questions.
It's the new Java, but fewer batteries included, and very easy to learn. I spent a day going over https://gobyexample.com/ and became productive the next day. I tried to do the same with Rust, but I failed. Nobody was able to succinctly explain all the things you have to learn to become productive with Rust, let alone understand anyone else's code, since there are too many different ways of doing the same shit.
I fear generics will make Go go in a worse direction, but I'm not losing sleep over it.
I would even go as far as to say Go is the fastest way to land a $100K/yr job with zero knowledge about programming and still be able to live with yourself (unlike with the JavaScript/npm oligopoly).
Solid Go'ers eschew huge dependencies and prefer classic Unix KISS philosophies. It's a breath of fresh air. And like the performance figures show, your apps magically get slightly faster over the years!
Life is short, use Go.
I tried the same technique. I went from wearing -3.5 contacts to -1.5 in about 3 months. The basic concept is forcing your eyes to read any text closeup (computer screen, books) at the edge of blur instead of it being in focus. That's basically all there is to it. People prefer laser surgery because it's less work than putting in the effort 8 hours a day for 3+ months at a time. I admit, I've given up after reaching -1.5, since it's good enough, but I'd like to rid myself of contacts entirely. The last 20% is 80% of the work, same principle applies :)
A public/private partnership seems more the way to go: municipality funds development of the line but lets private sector entities operate it according to agreed-upon standards and performance objectives. That's the way it works in Stockholm, Hong Kong, and many other cities. On the other hand, if it's all publicly operated, then what's the incentive to keep improving things since your only stakeholder is the public and you're a monopoly anyway.
PHP shines when you're trying to get a server-rendered web app off the ground. It's the VB6 of the web. Nothing else matches its development velocity, from keyboard to working code.
Maybe cameras of the time were too big and serious looking, and everyone ended up posing.
There was a short period in the mid-2000's where there was a lot of desktop eye candy (sup KDE) and accelerated window managers like Beryl, but it regressed from there.
Look, nobody wants to be diffing config files when they upgrade random software packages. The lack of UI polish, multiple UI toolkits, questionable UX choices, and user ergonomics are poor. Give me a Linux desktop with a beautiful and consistent UI like we had with Windows 2000 and I'll be the first to use it.
Let's face it. MacOS is the real successor to the UNIX throne, most of the middle class uses it, and everyone else is on Windows.
Personally, I wouldn't bother with jeonsae unless somebody else is paying for it (parents, employer, bank), keep your money in your favorite speculative investment instead.
If you're wondering about work-life balance, in which Korea has a poor track record in general, it's going to vary wildly based on the team. The best is to try to get recruited from outside of Korea if you're looking to join a larger company. The startup scene is vibrant, too.
It's hard to give general advice without knowing your motivations, but feel free to drop me an email and I'll be happy to offer any advice :)