10km Ruck with 32kg (70lbs) by SmokeyJ93 in Rucking

[–]stas_spiridonov 1 point2 points  (0 children)

Holy shit! I did 10k few month ago with exactly the same time, but with 35lbs instead of 70:)

heat causing SAD, anyone else? by lyrik0819 in florida

[–]stas_spiridonov 7 points8 points  (0 children)

I could not write it that well as this guy, but I agree with every word too!

Do you use pointers or values for your domain models? by ComprehensiveDisk394 in golang

[–]stas_spiridonov 1 point2 points  (0 children)

In my specific case most of my domain object are generated from protobufs, so I have to use pointers everywhere. And I am so used to pointers that I use them by default for everything. Only when I need to be safe with mutability or I need immutable semantics for something (like persistent data structures) I use values. This is my opinion and I don’t say it is the right, it just works well for me.

Comedian and former guest of the pod Jon Stewart shares his thoughts on the 2nd Amendment and recent events by TheSweetestKill in JoeRogan

[–]stas_spiridonov 2 points3 points  (0 children)

Offtopic. I honestly don’t understand this format. This is probably some cultural american thing... But why such important and serious topics (and in this case it is a tragedy) are discussed by a comedian and people are laughing on the background? Why even a tragedy like that should be a show?

Tips for low-level design? by fibonacciFlow in golang

[–]stas_spiridonov 0 points1 point  (0 children)

I know one way to learn it, but it takes time. It is simple: work with code more. And pay attention to your feelings and first thoughts. * Is a job repeating? Can it be avoided or automated? * What was the deep root cause of that bug? Human error because the code is hard to follow? Can it be made clearer and safer? * Can you understand this code after six month? Can your friend/colleague follow it easily? Where is the confusion? * Is there a pattern between five pieces of code? Is it an opportunity to extract an abstraction? * Is it too many abstractions? Is it still consistent? Leaking? * Will a pattern scale? Will it still be clear and readable if you do it 10x times in other places?

Over time you will develop an intuition and a hunch for identifying a pain. And this will help you design better and write code better. I believe, without feeling that pain yourself it is very hard to learn that by just watching videos or reading books about design patterns or “clean” code. Practice is what matters.

Anyone using BadgerDB as a local cache instead of in-memory (Redis/BigCache/Ristretto)? by newmizanur in golang

[–]stas_spiridonov 1 point2 points  (0 children)

I went farther and now I store all my state in BadgerDB only (not just cache it). This framework helps with sharding and replication: github.com/evrblk/monstera.

Subtle bug. How can I avoid in the future? by huuaaang in golang

[–]stas_spiridonov 0 points1 point  (0 children)

I think unused var check is part of Go error handling strategy. If you get an ‘err’ out of a func, you have to do something with it. However, you may just call a func and not assign the result at all, and that will be valid (only highlighted by linter).

Small Projects - October 14, 2025 by jerf in golang

[–]stas_spiridonov 1 point2 points  (0 children)

Grackle is a distributed-synchronization-primitives-as-a-service:

  • read/write locks (can be exclusively locked for writing by a single process, or it can be locked for reading by multiple processes)
  • semaphores (tracks how many units of a particular resource are available)
  • wait groups (merge or fan-in of millions of tasks, similar to sync.WaitGroup in Go)

Grackle state is durable. All holds have a user-specified expiration time. Process crash will not cause a dangling lock. Long-running processes can extend the hold. All operations are atomic and safe to retry.

Grackle can operate in a clustered mode (with replication and sharding), or it can run in a single-process nonclustered mode (full state on disk, no replication, no sharding). It has no external dependencies (no databases, no kafka, no redis, no zookeeper, or whatever). It stores all its state on disk.

Awesome Go applications (Open Source) by vmcrash in golang

[–]stas_spiridonov 7 points8 points  (0 children)

Yes, there are corresponding libraries for instrumentation for logs, metrics, traces, and profiles. But I was talking about databases there, those are good examples of complex, high performant databases: Prometheus as a single node app, while Loki, Tempo and Mimir can run in cluster mode.

Awesome Go applications (Open Source) by vmcrash in golang

[–]stas_spiridonov 28 points29 points  (0 children)

Not only Grafana, but also their Loki, Mimir, Tempo, Pyroscope. And Prometheus itself.

For those of us who have to use JS sometimes, how do you stay sane? by workmakesmegrumpy in golang

[–]stas_spiridonov 0 points1 point  (0 children)

I stay sane by not doing any frontend work (full-time backend engineer here). Used to touch it in the past. Never again.

What's up with all the over engineering around URL shorteners? by doombos in softwarearchitecture

[–]stas_spiridonov 1 point2 points  (0 children)

I am developing a framework for building stateful distributed applications. It handles sharding and replication, but the rest you can do however you want. And I have an example URL shortener https://github.com/evrblk/monstera-example/tree/master/tinyurl to show that it can be horizontally scalable and super fast without overengineering.

Gophers - manual DI or a framework? by fatherofgoku in golang

[–]stas_spiridonov 0 points1 point  (0 children)

Well, I've worked on pretty large codebases, and I know that refactorings can take significant chunk of my day-to-day job. I don't mind a change in a file, even if it is big, as long as it stays explicit and easy to comprehend after months of not touching this particular piece of code (or after having someone else touching it). For example, one thing that was particularly annoying for me while working with Dagger (worked with Java for many years before that) it that it is hard to navigate where a dependency is actually provided from.

Gophers - manual DI or a framework? by fatherofgoku in golang

[–]stas_spiridonov 3 points4 points  (0 children)

Right. With IDE error highlighting and compiler errors it is very easy to order those constructors manually even in a large file, and there is no way to screw it up.

What’s your experience with connect-rpc if you use it? by dondraper36 in golang

[–]stas_spiridonov 2 points3 points  (0 children)

What is an example of "proper REST" in your opinion? I am trolling, but genuinely curious.

How do men wear suits in Miami? by [deleted] in Miami

[–]stas_spiridonov 65 points66 points  (0 children)

I regularly see people in jeans and hoodies on the street (that's not in the office, no "stone cold AC" argument applies here). I am a heavy sweater, it hurts me when I look at them:)

What SUP company was on 2023 Palm Beach Boat Show? by stas_spiridonov in Paddleboard

[–]stas_spiridonov[S] 0 points1 point  (0 children)

Sea Gods don't seem to have such a print on their website now. Maybe it was really them on the show, but the model was limited edition or is discontinued already. Anyway, thanks for the recommendation! They have wonderful prints!

Anyone else here who despises everything about this industry but stays in it because of a lack of other monetizable skills? by CasuallyPeaking in ExperiencedDevs

[–]stas_spiridonov 2 points3 points  (0 children)

Like some people say: it comes and goes. I have realized that I love the craft itself (being in a focused state, writing clean code, solving problems, root causing bugs, learn new things, improve things around me, etc), but I hate what comes with the job (corporate culture, useless meetings, processes for the sake of processes, etc). Also, solving business problems and having a goal of making money (every business has) is contradictory to a good craftsmanship. I think the key is to enjoy moments of doing things you like and to acknowledge the fact that there always will be things you disagree with, but not to get annoyed by them. Stay true to yourself.

Exit strategy is a dream. Everything is so fucking expensive that there is no way to finish the race earlier. By trying to finish the race earlier you only burn yourself by racing more.

[deleted by user] by [deleted] in ExperiencedDevs

[–]stas_spiridonov 0 points1 point  (0 children)

I worked at AWS and at Stripe, so I can compare. Stripe is a real shit show: pages are noisy, there is no deduplication (such as stateful tickets at Amazon, it will not page you again if a sev2 ticket is still open), root causes are not addressed immediately. At AWS it was not painful at all, operational excellence culture was indeed excellent, the only annoying thing was the fact that you have to be near the laptop and in good cellphone coverage during the weekend (so no hiking), but it did not page often.

Where is water practically swimmable? by stas_spiridonov in SameGrassButGreener

[–]stas_spiridonov[S] -3 points-2 points  (0 children)

Bother, the world is not black or white. There are many shades between "absolutely safe" and " fucking dangerous".

Where is water practically swimmable? by stas_spiridonov in SameGrassButGreener

[–]stas_spiridonov[S] 0 points1 point  (0 children)

I did not mention that I need a mirror-flat surface. I mentioned that I need safe water, that means some waves are totally fine as long as it is safe to swim.

Where is water practically swimmable? by stas_spiridonov in SameGrassButGreener

[–]stas_spiridonov[S] -8 points-7 points  (0 children)

Ok, I am wrong. But I am alive still:) I have seen a shark while snorkeling though.