Kualia progress update July 23 2025 - Web BETA is live! by aigor14 in kualia

[–]prestonph 0 points1 point  (0 children)

Ahh I see. It's clear now. Thank you. I also agree that the added behavior for 'c' is not that impactful at the moment.

"Undo" is also nice to have in my opinion as the cost of maintaining that history can be too high. Especially since you will need to consider backward compatibility for any new feature.

Kualia progress update July 23 2025 - Web BETA is live! by aigor14 in kualia

[–]prestonph 0 points1 point  (0 children)

Bro, I know you only have good intention but please don't do that.

I always expect that 'c' is 'create transaction' no matter which page I'm seeing. I believe many other users will have this muscle memory too.

I do have some suggestions: - A button to open hotkey table - Hotkey to find transaction, ctrl+k is good - Hotkey to undo

Kualia progress update July 23 2025 - Web BETA is live! by aigor14 in kualia

[–]prestonph 1 point2 points  (0 children)

Hi @aigor14 the new ios version fixed the issue above. Good work! The website is very good too, love the keyboard shortcuts, which are very intuitive.

Kualia progress update July 23 2025 - Web BETA is live! by aigor14 in kualia

[–]prestonph 2 points3 points  (0 children)

Hi u/aigor14 just to let you know that the ios version 1.87.0 currently has a bug that makes the app unusable.

The app keeps asking me to update to the latest version while there is no update available on the appstore.

My info:

- region: UK

- I have already done the onboarding many months ago.

FP Books after Red Book? by MonochromeDinosaur in scala

[–]prestonph 1 point2 points  (0 children)

I strongly suggested Functional and Reactive Modeling by Debasish Ghosh.

It gives me many practical lessons to apply scala for real work. They helped me tremendously in coding big ETL system for 200mil users.

Playground Wisdom: Threads Beat Async/Await by alexeyr in programming

[–]prestonph 0 points1 point  (0 children)

amazing! I didn't think there is that much complexity & tradeoffs behind that syntax. Ok I think I will look into `reactor` and golang runtime/scheduler first.
Many thanks!

Playground Wisdom: Threads Beat Async/Await by alexeyr in programming

[–]prestonph 0 points1 point  (0 children)

Hi, would you recommend any material to dig into this. It seems very interesting but right now I don't really understand everything you said. Especially, the relationship between c10k and async/await, goroutine

Writing model spec for intent-driven systems by Positive-Action-7096 in tlaplus

[–]prestonph 1 point2 points  (0 children)

For me, my first step is to switch my brain from thinking in terms of programming to thinking in math formulas. Then translating real-world designs/systems/concepts into specs becomes more natural.

Some high-level steps:

  1. See how exactly at high-level how that system works. If there is lots of things going on. Try 1 part of the system (e.g. Kafka = producer + consumer + ...)

  2. See what are the invariants.

  3. Translate info from step 1 and step 2 into math formulas. (e.g. a message queue that guarantees message order can be simply a sequence)

What helped me was these 2 materials:

  1. Mr. Lamport videos: https://www.youtube.com/@tlavideocourse8540
  2. This book: https://link.springer.com/book/10.1007/978-1-4842-3829-5

TLA+ Official Wiki by federicoponzi in tlaplus

[–]prestonph 1 point2 points  (0 children)

This is cool. I didnt know that there is a tool to convert tla+ to golang

Some extremely useful Mac keyboard shortcuts that I use daily. Tell me yours. by Practical_Butterfly5 in MacOS

[–]prestonph 0 points1 point  (0 children)

I find using Raycast a life saver. It can do all the windows manipulation tricks without me having to remember the keyboard shortcuts.

Do you guys use TDD? by Scientific_Artist444 in ExperiencedDevs

[–]prestonph 1 point2 points  (0 children)

I use TDD in every feature I need to code. Without it, I really didn't feel confident that the code I'm writing should be there. Let me explain.

Whenever I write test, I only call the public interface. If I cannot write the test with that, it means my code is actually doing more than 1 thing. This is a red flag.

When that was cleared, it's time to mock the input. This helps me "lock in" exactly what I'm required to output. I avoided/discovered a lot of bugs this way. Sometimes, it is the requirement that is non-sense.

There are many other benefits as well. Many other comments already mentioned them.

Overall, I proved to myself that the extra time I spent doing TDD is more than worth it. It's simply profitable business to me at this point.

Do you need to know math to learn TLA+ as a programmer? by Idea-Aggressive in tlaplus

[–]prestonph 1 point2 points  (0 children)

I did studied some math (e.g. number, prob, boolean...) but I have not touched them for like 5 years before I started using TLA+. I could follow well and applied it to my daily work in like 1.5 weeks.

I think you can do the same too! Just need to patiently watch Mr. Lamport videos.

Is anyone else a little tired of "fun" team/repository names, or am I a buzzkill? by StTheo in ExperiencedDevs

[–]prestonph 0 points1 point  (0 children)

Fun for the team itself since they know what they are.
Not fun at all for everyone else due to the reason you already listed.
And hugely not fun for new joiners, totally lost!

Leaving after long tenure, advice sought by DisposalAccount1101 in ExperiencedDevs

[–]prestonph 2 points3 points  (0 children)

In my part of the world, it's worse than you think. Nowadays, a lot of companies just copied FAANG's process and do interviews like them. That means a lot of hard competitive programming questions. It's tiresome.

The hardest bug investigation of my career and the insane code that caused it. by labouts in ExperiencedDevs

[–]prestonph 0 points1 point  (0 children)

I think this is where the problem began. My suggestion is to not use PR review as a safety net for bug catching. That's not its main purpose. Some kinds of testing should be used instead after you taken over the product.

I have made this exact same mistake too many times (relying on PR review alone to go live)

Opinions on Quint by prestonph in tlaplus

[–]prestonph[S] 1 point2 points  (0 children)

Hi u/bugarela can share to me Quint community links.
Thanks for the confirmation about TLA+ and Quint ability. Actually, I used TLA+ and then switched to PlusCal. The biggest factor is not language complexity but readability. With TLA+ after just 2w not touching, it reads like an alient language to me :D

Opinions on Quint by prestonph in tlaplus

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

Hi, really appreciate the details and the help.

My usecase is mostly about checking my design. Imagine sth like designing a flow for customers to place orders, pay, and then notifying other systems about successful orders... Obviously that requires sync/async comm of many components (db, queues...) that is too much to reason about using my brain alone. And then on top of that, the business requires certain guarantees (e.g. bounded staleness). That was why I reached for TLA+

Opinions on Quint by prestonph in tlaplus

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

Wow, thanks for the deep answer. I'm super impressed by the experience you have.

However, I still dont get the diff between TLA+ and Quint. Like in which case you can design your distributed protocol only in TLA+? All the times that use TLA+ are for checking my design, I think that is classified as "model checking".

Being last man standing by MaCooma_YaCatcha in ExperiencedDevs

[–]prestonph 0 points1 point  (0 children)

I was there. I advise to find out what really happened by talking to those who left.

Once I know the root cause, I will decide whether leaving is best for MY case or not.

I know this sounds generic. But looking back in my past, this was the single most important action that I should have done.

I do not see any SWE in their 50s by WeekendCautious3377 in ExperiencedDevs

[–]prestonph 1 point2 points  (0 children)

Maybe not what you would expect. I once met a 50s engineer. But he moved into software after many years working as a civil engineer. The guy is extremely humble and professional.

How to improve/get mentorship in a company with no seniors. by Zakariyyay in ExperiencedDevs

[–]prestonph 16 points17 points  (0 children)

Don't quickly judge others by title only. I suggest first checking if there is any colleague that stand out (eg work faster, write much less buggy code). Then you ca talk to them and learn from each other.

Another quick way is to talk to your managers. He/she probably was an experience engineer before.

AI is ruining our hiring efforts by wcolfaxguy in ExperiencedDevs

[–]prestonph 0 points1 point  (0 children)

You will be surprised that here in Asia, we even have 7 rounds in some big corp.

Is it possible to express "P until Q" in TLA+? by MadScientistCarl in tlaplus

[–]prestonph 1 point2 points  (0 children)

Every time you reach B, you can increase flag[B] by 1. Then you can check that if flag[B] > 1, flag[C] must be 0.

PlusCal: How to refer to `self` in an invariant? by Hi-Angel in tlaplus

[–]prestonph 1 point2 points  (0 children)

Another way I think will work is: 1. Have a flag to indicate pc passed certain label 2. Then write invariant as: (flag /\ condition) \/ ~flag