News for hackers. Stuff that matters.

Snawoot

Re:Ask HN: Who wants to be hired? (June 2026) on Tuesday June 02, 2026 @09:45AM (#48370209)
Location: Ukraine

Remote: yes

Willing to relocate: no

Technologies: Go, Python, JS, C, PostgreSQL, MySQL, MongoDB, Redis, Linux, Docker, kubernetes, ...

Résumé/CV: https://www.linkedin.com/in/vladislav-yarmak/

Email: [email protected]

Software engineer with about 15 years of experience, former CTO, VPE, Systems Architect. My key skills are in backend development, infrastructure, computer networks.

Re:Ask HN: Who wants to be hired? (April 2026) on Friday April 03, 2026 @10:26AM (#47627029)

  Location: Ukraine
  Remote: yes
  Willing to relocate: no
  Technologies: Go, Python, JS, C, PostgreSQL, MySQL, MongoDB, Redis, Linux, Docker, kubernetes, ...
  Résumé/CV: https://www.linkedin.com/in/vladislav-yarmak/
  Email: [email protected]
Software engineer with about 15 years of experience, former CTO, VPE, Systems Architect. My key skills are in backend development, infrastructure, computer networks.
Hexane is directly used as a solvent for edible cooking oil refining.
Re:Dumbproxy 1.42.0 released with TrustTunnel support on Monday February 09, 2026 @09:50AM (#46945826)
Re:Ask HN: Who wants to be hired? (January 2026) on Saturday January 03, 2026 @11:59AM (#46478874)

  Location: Ukraine
  Remote: yes
  Willing to relocate: no
  Technologies: Go, Python, JS, C, PostgreSQL, MySQL, MongoDB, Redis, Linux, Docker, kubernetes, ...
  Résumé/CV: linked here https://snawoot.github.io/
  Email: specified here https://snawoot.github.io/
Most recent job was CTO at crypto/VPN startup and I was working on network and security stuff in general for about last 10 years. I'm open to other fields and roles, though.

Show HN: Secache – Sampling Eviction Cache

https://pkg.go.dev/github.com/Snawoot/secache

I'd like to share a curious cache implementation I recently came up with: https://pkg.go.dev/github.com/Snawoot/secacheIt's a small (<200 LOC) simple cache implementation. What makes it curious is how it approaches item expiration. Usually in-memory cache libraries either scan entire key space from time to time or maintain priority queue to kick out oldest items. This library handles item...

( Read More... | no comments | on HN )
Re:Constitent Hashing on Friday October 03, 2025 @09:44AM (#45462953)
I also double that rendezvous hashing suggestion. Article mentions that it has O(n) time where n is number of nodes. I made a library[1] which makes rendezvous hashing more practical for a larger number of nodes (or weight shares), making it O(1) amortized running time with a bit of tradeoff: distributed elements are pre-aggregated into clusters (slots) before passing them through HRW.

[1]: https://pkg.go.dev/github.com/SenseUnit/ahrw

chrome --headless --disable-gpu --print-to-pdf https://example.com
I've made a couple of modules which allow canonicalize maps and slices of comparable elements, making their canonical handles also comparable:

* https://github.com/Snawoot/uniqueslice

* https://github.com/Snawoot/uniquemap

Re:Allocators Are Monkeys with Typewriters on Sunday June 22, 2025 @05:50PM (#44350599)
I think I found some solution for arenas in Go: https://pkg.go.dev/github.com/Snawoot/freelist

Has some shortcomings, but I think it should work.

How do docker contexts help with the transfer of image between hosts?
Re:Ask HN: Who wants to be hired? (June 2025) on Monday June 02, 2025 @02:57PM (#44161886)

  Location: Odesa, Ukraine
  Remote: Yes
  Willing to relocate: No
  Technologies: Golang, Python, C, Bash, PostgreSQL, Redis, Docker, kubernetes, Linux, ...
  Résumé/CV: https://www.linkedin.com/in/vladislav-yarmak/
  Email: [email protected]
I have about 18 years of experience with emphasis on backend services, infra and technical management (CTO, Systems Architect, VPE, ...). Actively looking for a new role.
Re:O(n) vs. O(n^2) Startups on Sunday May 18, 2025 @04:25PM (#44024072)
> What ever happened to providing a good service?

I'm getting an impression it's just not profitable enough. For many years I get a feeling that business is considered sound only if it is superprofitable (not exactly the right term, but still) in order to cover all losses.

Probably it's because of market competition required to be at least noticed. Some companies' spendings for marketing are greater than for R&D, production and operations combined. Maybe we got ourselves into a situation where everywhere competing for low-hanging fruits or trying to make customer believe it's the service they need while all of it doesn't really overlap with real society needs.

Re:Leeks and Leaks – Daniel.haxx.se on Friday May 16, 2025 @07:39AM (#44004154)
Side note: redirection of .onion domain to Tor proxy is how proxy routing with JS script illustrated by example in dumbproxy docs: https://github.com/SenseUnit/dumbproxy?tab=readme-ov-file#up...

Show HN: Unicmp – fast universal ordering function for Go

https://pkg.go.dev/github.com/Snawoot/unicmp

Have you ever wanted something `comparable` to be also ordered, e.g. for canonicalization sort or sorted collections? This function uses fast runtime's map hash (with rare exceptions) for comparisons of arbitrary values, providing strict ordering for any `comparable` type.In other words, it's like `cmp.Compare` from Go's stdlib expanded to every `comparable` type, not just strings and numbers.

( Read More... | no comments | 2 points | on HN )
Re:Bloom Filters on Friday May 02, 2025 @05:40AM (#43867813)
Cuckoo filters are more efficient alternative. The algorithm of displacement is also very notable: how we can use random swaps to place data in cells optimally.
Re:Ask HN: Who wants to be hired? (May 2025) on Friday May 02, 2025 @12:26AM (#43866188)

  Location: Odesa, Ukraine
  Remote: Yes
  Willing to relocate: No
  Technologies: Golang, Python, C, Bash, PostgreSQL, Redis, Docker, k8s, Linux, ...
  Résumé/CV: https://www.linkedin.com/in/vladislav-yarmak/
  Email: [email protected]
I have about 18 years of experience with emphasis on backend services, infra and technical management (CTO, Systems Architect, VPE, ...). Actively looking for a new role in some new project.
Re:Optimizing Heap Allocations in Go: A Case Study on Tuesday April 22, 2025 @01:13PM (#43764308)
I had an attempt to improve performance of memory allocation with the use of arenas in Go and I chose freelist datastructure[1]

It almost doesn't use unsafe except one line to cast pointer types. I measured practical performance boost with "container/list" implementation hooked to my allocator. All in all it performs 2-5 times faster or up to 10 times faster if we can get rid[2] of any and allocations implied by the use of it.

All in all, heap allocations can be not that bad at all if you approach them from another angle.

[1]: https://github.com/Snawoot/freelist

[2]: https://github.com/Snawoot/list

Re:Ask HN: Who wants to be hired? (April 2025) on Thursday April 03, 2025 @09:11PM (#43577328)

  Location: Odesa, Ukraine
  Remote: Yes
  Willing to relocate: No
  Technologies: Golang, Python, C, Bash, PostgreSQL, Redis, Docker, k8s, Linux, ...
  Résumé/CV: https://www.linkedin.com/in/vladislav-yarmak/
  Email: [email protected]
Into the same vein - crude, but truly vendor-independent recipe: https://gist.github.com/Snawoot/b7065addf014d90f858dbd185d51...
> 2-6x faster than Redis (benchmark link below) yet disk persisted!

That's a false contradistinction: Redis is also disk persisted.

The benchmark you did mentions Redis benchmarking guide and this guide has following paragraph:

> Redis is, mostly, a single-threaded server from the POV of commands execution (actually modern versions of Redis use threads for different things). It is not designed to benefit from multiple CPU cores. People are supposed to launch several Redis instances to scale out on several cores if needed. It is not really fair to compare one single Redis instance to a multi-threaded data store.

Did you just benchmarked against only single Redis instance and claimed performance win? Even if so, how do benchmarks compare against source-available competitor DragonflyDB?

Finally, documentation doesn't mention how persistence exactly works and what durability guarantees should we expect?

Older »