Snawoot
Tlscookie – hidden cookies in TLS tickets
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.
Show HN: Weakmap – weak map for Go without use of finalizers
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.Making Services with Go Right Way
Dumbproxy 1.42.0 released with TrustTunnel support
HTTP-over-TLS proxy in a single command
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...
PPP-over-HTTP/2: Having Fun with dumbproxy and pppd
Dumbproxy just got SOCKS5 support
Has some shortcomings, but I think it should work.
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.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.
Dumbproxy got Redis auth back end
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.
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.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.
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]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?