komuW
Founder Mode and the Art of Mythmaking
The paper: https://dl.acm.org/doi/10.1145/3534678.3539081?cid=996605471...
Various implementations: https://github.com/open-spaced-repetition/awesome-fsrs
Some benchmarks of various srs algorithms: https://expertium.github.io/Benchmark.html
Remote: Yes
Willing to relocate: No
Technologies: Golang, Python, Django, SQL, PostgreSQL, AWS
Résumé/CV: https://www.komu.engineer/cv/komu-CV.pdf
Email: [email protected]
Blog: https://www.komu.engineer/blog
I'm a software engineer with ~8yrs experience. Here's somethings that I've done;
- Reduced cloud costs for a production kubernetes service by 20%. This was done by analysing pod utilisation on kubernetes and then right-sizing the pods to match the expected usage.
- Read the SMPP specification and implemented a client for it from scratch. Integrated the client into a production application and used it to send out SMS at averaget rates of 800/second.
- Created an open source ACME client based off the ACME specification.
Africa's infrastructure-led growth is failing. It's time to focus on agriculture
1. https://www.komu.engineer/blogs/09/log-without-losing-contex...
How to propagate context without cancellation
Small Dog
To quote from Annotations to Eldon Hall's Journey to the Moon[1]: "The Coroner recorded every instruction executed, with its inputs and results, writing over the oldest record when it filled up. When a program crashed, you could punch out a full record of what it was doing in most of its last second and analyze the problem at your ease. I have often wished that PCs offered such an advanced feature."
So essentially buffer all logs into an in-memory circular buffer of capacity N. If a log record is emitted that has a certain severity/level; flush all records from the buffer to disk/clickHouse/grafana/whatever.
The python MemoryHandler[2] almost implements the said technique, except that it also flushes when buffer is full; which is not particularly what I would want.
I also wrote a blogpost[3] about how to log without losing money or context, ~3yrs ago.
1. https://authors.library.caltech.edu/5456/1/hrst.mit.edu/hrs/...
2. https://github.com/python/cpython/blob/v3.11.1/Lib/logging/h...
3. https://www.komu.engineer/blogs/09/log-without-losing-contex...
Plain text Kubernetes secrets are fine
Libxev: A cross-platform, high-performance event loop
Gleam gets Incremental Compilation
Type Checking If Expressions
I'm bringing this up because the circleCI blogpost says that the attacker did memory-dump encryption keys from a running process. See https://circleci.com/blog/jan-4-2023-incident-report/
So even if they were using hashicorp/vault, the attacker could probably still have been able to mem-dump vault's process.
I do not think it requires client side SSL. See: https://engineering.salesforce.com/tls-fingerprinting-with-j...
What is been fingerprinted is the TLS negotiation between client and server.
I haven't seen much discussion on how this specific attacker entrypoint can be mitigated. So I'm going to make a naive attempt in this comment.
How about storing the client's IP address in the session cookie. Then whenever the server recieves the cookie, it compares the client's IP address against the one stored in the session cookie. The server denies the login if there's a mismatch. The cookie would of-course have to be signed(hmac etc) so that it is tamper proof.
One problem with this is that client IP addresses are easily spoofed[2].
So, instead of storing the client's IP address; how about we instead store the clients' SSL fingerprints[3][4]. I haven't looked much into the literature, but I think those fingerprints are hard to spoof.
1. https://circleci.com/blog/jan-4-2023-incident-report/
2. https://adam-p.ca/blog/2022/03/x-forwarded-for/
Africa’s infrastructure experiment is failing. It's time to focus on Agriculture
How to Re-Invent Money: Notes for Cryptocurrency Techno-Warriors
Simple Scalable Unbounded Queue in Rust
See screenshot of the slack conversation: https://paste.pics/f5622033ae711b36e0bbcda393a67866
See screenshot of the slack conversation: https://paste.pics/f5622033ae711b36e0bbcda393a67866