# Ramon Raniere > Software engineer. A technical knowledge base laid out as a filesystem: > every path is a topic, every leaf is one idea written down once. Every page has a plain-markdown twin at index.md. ## Site - [Ramon Raniere - Software Engineer](https://ramonraniere.com/): Technical knowledge base organized as filesystem. - [projects](https://ramonraniere.com/projects/): an erp that 500+ cellphone shops run on, a crypto payment api, and an seo engine. all three built and shipped solo. - [resume](https://ramonraniere.com/resume/): full-stack software engineer in brasília, brazil. 6+ years building saas products end to end: multi-tenant erp, crypto payment infrastructure, rest apis. - [Full corpus](https://ramonraniere.com/llms-full.txt): every page above and every note below, as plain text. ## databases query planning, indexing, and the trade-offs behind them. most of what looks like a slow database is a plan you did not read. - [GiST index](https://ramonraniere.com/knowledge/databases/postgresql/postgis/gist-index/): stores bounding boxes, not shapes. every spatial query is therefore two phases, and the slow ones are slow in the second phase, not the first. - [ST_Contains](https://ramonraniere.com/knowledge/databases/postgresql/postgis/st-contains/): true when b is entirely inside a and their interiors overlap. that second clause is the surprise: a point sitting exactly on the border is not contained. - [ST_DWithin](https://ramonraniere.com/knowledge/databases/postgresql/postgis/st-dwithin/): answers "is b within n units of a" and, unlike ST_Distance, it can reach a spatial index. that single difference is why it is almost always the right proxi… ## frontend good design is a feast for the eyes and good usability keeps the door open - [useRef](https://ramonraniere.com/knowledge/frontend/react/hooks/useref/): one box that survives every render and never causes one. the other half of useState: change it and the screen does not notice. - [useState](https://ramonraniere.com/knowledge/frontend/react/hooks/usestate/): a value react remembers between renders. the catch is that it is a snapshot of the render that read it, not a variable you update in place. - [token storage](https://ramonraniere.com/knowledge/frontend/security/token-storage/): there is no safe place to keep a token in the browser. the question is not where you put it, it is how much an attacker gets when they reach it. - [reactivity](https://ramonraniere.com/knowledge/frontend/vue/reactivity/): vue watches the value, react re-runs the function. almost every difference between the two frameworks falls out of that one decision.