HNHacker News
TopNewBestAskShowJobs

mickael-kerjean

1,563 karma · joined December 23, 2015

email: mickael@kerjean.me

github: https://github.com/mickael-kerjean/filestash

submissionscomments
mickael-kerjean··on One year after switching from Java to Go
The big change is cultural. The places I've seen using .NET felt like cults to me, a monoculture were everyone must run windows, swearing by how powershell is the shell of the gods, ms sql being the only true data store that's the best solution for 100% of every use cases, azure being the best cloud provider, and everyone forced to use vs code because of all its fancy integration with even the pm tools.
mickael-kerjean··on You Can't "Win" in Tech Unless You Cheat
This is what I'm trying to do since 2017 [1], except the earning are merely 5k a month.

From what I can see around me, the rate of oss dev who make a living out of their project is similar to amateur / pro football player, with the big star everyone talk about, namely redhat & gitlab. I only know personally 1 other oss dev who is doing better but still way under what you get working for someone else

If you're doing oss and managed to get things to work, please reach out to me, I'd love to talk to you.

[1] https://github.com/mickael-kerjean/filestash

mickael-kerjean··on A layoff fundamentally changed how I perceive work
Was also laid of from Qantas when my dad died from cancer 2 months ago, I'm still flabbergasted by it
mickael-kerjean··on The Microsoft 365 Copilot launch was a disaster
They've fixed their CMD app. 5 years ago, to enlarge the window, you had to tweak how many rows/columns you want to show, tweak with those until you have the desired window size. Now you can just resize like you would on any other app
mickael-kerjean··on File Systems: The Original Hypermedia
> WebDAV. Slower than dog shit, but it's available with every major web server.

You lost me there. WebDAV is nothing more than HTTP calls with some XML data with a slightly different syntax than the S3 API. There is no fundamental stuff in the spec that command the protocol to be "slower than dog shit" as a file transfer protocol. Please prove me wrong with another argument than: "the particular server implementation I tried was dog shit"

mickael-kerjean··on Context should go away for Go 2 (2017)
> If you use ctx.Value in my (non-existent) company, you’re fired

I was unsuccessful to convey the same message in my previous company (apart from being fired part). All around the codebase you'd see function with official argument and unofficial ones via ctx that would panic everything if you forgot it was used 3 layers down (not kidding). The only use case I've seen so far that is not terrible of context value is if you have a layer of opentelemetry as it makes things transparent and as a caller you don't have to give a damn how the telemetry is operated under the hood.

mickael-kerjean··on WASM GC isn't ready for realtime graphics
I'm a happy wasm user, last week I was looking at adding support for psd file on my app [1], the choices was in between using a full js lib that is almost 1MB large, doesn't work very well and is slow OR leverage some C stuff. Without any kind of optimisation, the wasm version is 10 times faster and 5 times smaller and that's before digging through SIMD. There will always people complaining about a lot of things but wasm is already fine enough for a lot of use cases

[1] https://github.com/mickael-kerjean/filestash

mickael-kerjean··on If we had the best product engineering organization, what would it look like?
I ran explain on the original mysql implementation. The basis of the migration project to dynamo was mysql couldn't cope with our scale but that was bullshit
mickael-kerjean··on A standards-first web framework
> Do you think the code can be extended and maintained by someone other than you? How about a large team?

There's no track record of it but I believe it would be ok in the right team. The core idea was stolen from every other frameworks: "build your app as a tree of components". In the approach I went with, components are modular and expressed like this:

  ```
  export default function (render, props = {}) {
      render($domNode)
  }
  ```
in practice, a working code loading another component would be:

  ```
  import FooCompoment from "./component_foo.js";

  export default function (render, props = {}) {
      const $node = createElement(`
          <div>
              <div data-bind="component_foo"></div>
              Name: ${props.name}
          </div>
      `);
      // render the component with an animation
      render(transition($node));
      
      // render a child component 
      FooComponent(
          createRender($node.querySelector(`[data-bind="component_foo"]`)),
          { ...props },
      );
  }
  ```
The syntax is arguably less nice than JSX but the upside is 0 running cost and the idea around decoupling components remain. A lot of people have argue that I just end up maintaining my own framework but the reality is what would be considered "framework code" fit under 200 lines of code ....
mickael-kerjean··on A standards-first web framework
Yep, I rewrote my OSS Dropbox like frontend for every file transfer protocol in vanilla JS [1], so far it's not only faster with smaller memory footprint, the app is faster to boot, lighter in size despite the optional build system, there is no framework code I don't know about running at the worst possible time and I can effectively run to the maximum of what a browser can do.

It's refreshing to be able to open the network tab and see the original files coming out [2] and the developer console showing the full structure of it untouched in the same way it's visible from github.

This has opened new doors that was previously closed with any kind of framework, the option to dynamically patch those js file at runtime to customise the interface for unique needs that make sense for someone but wouldn't make sense for 99% of everyone else. Now it's just a matter of submitting a small plugin patch that do it and tada, a happy customer while maintaining only a single codebase

[1] https://github.com/mickael-kerjean/filestash

[2] https://demo.filestash.app/login?type=s3&access_key_id=Q3AM3...

mickael-kerjean··on If we had the best product engineering organization, what would it look like?
I recently finished a contract at a company who has gone full on dynamo with the idea that if we have slow queries and dynamo is good for Amazon, then it's good for us too. I've ran some explain on the queries causing issues and of course those queries didn't leverage indexes like they thought ....
mickael-kerjean··on You don't have to pay the Microsoft 365 price increase
In the web side of things, collabora has gotten so much better as well, see by yourself: https://demo.filestash.app/login?type=tmp&next=/view/tmp.doc...
mickael-kerjean··on Show HN: I built open source file sharing solution using AWS S3
Hi! I’m the author of another open-source project in the same space that I’ve been working on for a while: Filestash [1]

Were you familiar with Filestash before starting this? If so, was there something specific you felt was missing that inspired you to create your own solution? Would love to hear your thoughts.

github: https://github.com/mickael-kerjean/filestash

demo on s3: https://demo.filestash.app/login?type=s3&access_key_id=Q3AM3...

mickael-kerjean··on Dear OAuth Providers
Another one: Microsoft azure not wanting to send you an access token in the "Token Endpoint" unless you inject the client_id in the scope ....
mickael-kerjean··on Ask HN: Those making $500/month on side projects in 2024 – Show and tell
I built Filestash (https://github.com/mickael-kerjean/filestash), an open source Dropbox like frontend for any cloud storage / protocols (S3, SFTP, FTP, SMB, NFS, etc...). This was made as a reflection of the Dropbox launch top comment with the infamous FTP guy as I was wondering what was missing from the FTP specs to be able to make a great interface to a protocol like FTP.

The money come from customisation and enterprise plugins (SSO, audit plugins, etc..). The entire product was made so you can quickly build custom file management solution by assembling a bunch of lego blocks (aka plugins)

mickael-kerjean··on Ask HN: Those making $500/month on side projects in 2024 – Show and tell
Write a few dozens chat gpt powered books, and during your next interview you might say: "actually I wrote a book on xxxx, you can buy it on Amazon"
mickael-kerjean··on Hetzner cuts traffic on US VPSs, raises prices
Not really scared as I take action the second I hear about nasty things. The most recent events were people creating shared links pointing to FTP servers that had revenge porn and sharing those on a whacky telegram account, another annoying one is people who keep trying to brute force other people accounts on cloud providers even though there's a protection in place to throttle to 20 connection attempt per second, effectively degrading the free service for everyone else and getting me kicked off from cloud provider like the most recent one being Hostinger
mickael-kerjean··on Hetzner raises prices while significantly lowering bandwidth (US)
I have 2 services that run above those figures:

1. the demo instance of my OSS software which is a bring your own storage Dropbox like UI for SFTP, S3, FTP, and every protocols imaginable: https://github.com/mickael-kerjean/filestash People tend to come in the demo to upload / download tons of stuffs

2. the docker registry for my oss stuff since I was kicked out of the docker open source program and now need to find a new place to store all the images. 10 millions downloads over the last few years, it does add up very quickly way above the 20TB limits if your image isn't super slim and try to selfhost everything

mickael-kerjean··on An analysis of the Keycloak authentication system
What if instead of publicly blaming an OSS product, you try to get a support contract with some of the engineers behind it? If your company is too cheap for that, maybe a PR would have been nice?

Having very high expectations when using the software without contributing anything else than public shaming on something that clearly state in the license: "Licensor provides the Work ... WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND" shouldn't be ok, this is quite literally how you make open source developer to burn out

mickael-kerjean··on Cloudflare misidentifies Hetzner IPs as being located in Iran
I'm a Hetzner customer in Australia that have moved away a big part of my workloads which was CI related as most build would start to fail with some access denied error calling various registries. I had a bunch of deep integration through their API as well which had to be reworked because that issue made it a no go anymore.
mickael-kerjean··on Please stop inventing new software licences (2020)
Working on a OSS product myself, there's a much darker side I've seen played out many times by many companies including well known ones like Deutsche Bank and Royal Bank of Canada where they abuse your time and knowledge by making you think they will purchase support from you but end up never doing it.
mickael-kerjean··on Behind AWS S3's Scale
One of the crazy parts about S3 which is not touched on in this post is how it's becoming a file transfer protocol in its own right. Every cloud vendor now has an S3 compatible interface, but when you look deeper into the actual http contract behind the S3 spec, I don't understand how one can shit on FTP and webdav as a protocol and S3 not receive worse treatment. I don't want to be reminiscent of the Dropbox FTP deal on HN, but I hope one day people will steer toward open protocols and stop shitting on open ones for reasons that quite frankly 99% of the people couldn't give much of a shit about.
mickael-kerjean··on One-man SaaS, 9 Years In
Do you know what a typical enterprise contract for a nice tool like this could go for? I have an open source saas tool in a different niche but so far the biggest contract I have is 500$ per month and that's for companies who need a lot of customisations, a very white glove service and a few days o work to morph the tool onto exactly what it is they want (typically via plugin so changes are easily manageable). One one hand it feels great to charge 500$ per month but then you sometime see numbers from companies like gitlab who are able to charge 100x that or even more, it's very hard to know how much to charge for something in the b2b sass space and I have that feeling that 1 large enterprise customer is the only thing you need in some spaces to sustain a company of 1 or even 2 that are not aiming for unicorn level
mickael-kerjean··on Ask HN: Is it possible to make FAANG salaries without working there?
HFT
mickael-kerjean··on How we sped up Notion in the browser with WASM SQLite
100% agree, the websql debacle is the reason I stopped using Firefox entirely. Dropping the ball when faced with some issues isn't ok when you're in a position to fix the specs
mickael-kerjean··on Just Be Rich (2021)
your typical business isn't working at the same level of the maslov pyramid than a farm. I don't want a world where only the wealthy can afford to give milk to their kids
mickael-kerjean··on Breaking transatlantic sailing record by more than a day (2016)
> with just sails and ropes as engines is beyond me

then you should check this amazing sailor named Yann Quenet who built his own 4m sailboat [1] (yes 4m is crazy) on which he did a circumnavigation and once he came back worked at improving his little boat and just left 8 days ago for another circumnavigation.

He has been documenting his journey on youtube[2]:

ref:

[1]: https://www.youtube.com/watch?v=SDGR9LtRUBw

[2]: https://www.youtube.com/@quenetyann396

mickael-kerjean··on Mako – fast, production-grade web bundler based on Rust
That was the initial promise of dart when it was first release but somehow it never got really there
mickael-kerjean··on Ask HN: How do you find developers for open source bug bounties?
1. git clone the project you're interested in

2. extract emails of the contributors that are involved in what you need using something like this: git log --pretty=format:"%ad - %ae - %ce"

3. make them an offer

mickael-kerjean··on React 19 almost made the internet slower
I rewrote one of my apps in vanilla JS to get the most performance possible, the wheel I had to reinvent is under 150 line of code [1], definitely worst the small cost [2]

[1] framework code: https://github.com/mickael-kerjean/filestash/tree/master/pub...

[2] example: https://github.com/mickael-kerjean/filestash/blob/master/pub...

← PreviousPage 5 of 15Next →