<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: goldenCeasar</title><link>https://news.ycombinator.com/user?id=goldenCeasar</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 30 Jun 2026 00:14:00 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=goldenCeasar" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by goldenCeasar in "Show HN: Guts – convert Golang types to TypeScript"]]></title><description><![CDATA[
<p>I am still thinking about some blog post about all the journey but I have never wrote one of those, but see here some write-up I did on a reddit post <a href="https://www.reddit.com/r/Compilers/s/osaVyUgvUf" rel="nofollow">https://www.reddit.com/r/Compilers/s/osaVyUgvUf</a></p>
]]></description><pubDate>Wed, 19 Nov 2025 12:41:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=45978908</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=45978908</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45978908</guid></item><item><title><![CDATA[New comment by goldenCeasar in "Show HN: Guts – convert Golang types to TypeScript"]]></title><description><![CDATA[
<p>On this “types first across languages”, I’ve been hacking on something in that vein called Kumi (typed calculation schemas compiled to Ruby/JS). Tiny demo here <a href="https://kumi-play-web.fly.dev" rel="nofollow">https://kumi-play-web.fly.dev</a></p>
]]></description><pubDate>Tue, 18 Nov 2025 20:13:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=45971406</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=45971406</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45971406</guid></item><item><title><![CDATA[New comment by goldenCeasar in "Understanding Financial Functions in Excel"]]></title><description><![CDATA[
<p>I wonder what would be your opinion on a OSS library that I am working that provides a declarative data flow DSL that statically checks and compile/optimize pure functions (no runtime. working on C target but have Ruby and JS already).<p>I feel I got a lot of inspiration from my time automating working with Excel as a Financial Analyst.</p>
]]></description><pubDate>Mon, 10 Nov 2025 15:43:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45876997</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=45876997</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45876997</guid></item><item><title><![CDATA[New comment by goldenCeasar in "Ask HN: What Are You Working On? (Nov 2025)"]]></title><description><![CDATA[
<p>I’m building a typed, array-oriented dataflow compiler that takes small declarative schemas and emits plain Ruby and JavaScript, with a C path. It has a mid-end with inlining, common subexpression elimination, constant folding, dead code elimination, loop fusion, and LICM.<p>Demo to try it out:
<a href="https://kumi-play-web.fly.dev/" rel="nofollow">https://kumi-play-web.fly.dev/</a><p>GitHub:
<a href="https://github.com/amuta/kumi" rel="nofollow">https://github.com/amuta/kumi</a></p>
]]></description><pubDate>Sun, 09 Nov 2025 22:23:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=45869791</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=45869791</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45869791</guid></item><item><title><![CDATA[Show HN: Kumi – a portable, declarative, functional core for business logic]]></title><description><![CDATA[
<p>Hi HN,
I'm the author of Kumi, a declarative, statically-typed, array-oriented, compiled DSL for building calculation systems (think spreadsheets). It is implemented entirely in Ruby (3.1+) and statically checks everything, targets an array-first IR, and compiles down to Ruby/JS. I have been working on it for the past few months and I am curious what you think.<p>The linked demo covers finance scenarios, tax calculators, Conway's Game of Life (array ops), and a quick Monte Carlo walkthrough so you can see the zero-runtime codegen in practice. (The GOL rendering lives in the supporting React app; Kumi handles the grid math.)<p>The Original Problem:<p>The original idea for Kumi came from a complex IAM problem I faced at a previous job. Provisioning a single employee meant applying dozens of interdependent rules (based on role, location, etc.) for every target system. The problem was deeper: even the data abstractions were rule-based. For instance, 'roles' for one system might just be a specific interpretation of Active Directory groups and are mapped to another system by some function over its attributes.<p>This logic was also highly volatile; writing the rules down became a discovery process, and admins needed to change them live. This was all on top of the underlying challenge of synchronizing data between systems. My solution back then was to handle some of this logic in a component called "Blueprints" that interpreted declarative rules and exposed this logic to other workflows.<p>The Evolution:<p>That "Blueprints" component stuck in my mind. About a year later, I decided to tackle the problem more fundamentally with Kumi. My first attempts were brittle—first runtime lambdas, then a series of interpreters. I knew what an AST was, but had to discover concepts like compilers, IRs, and formal type/shape representation. Each iteration revealed deeper problems.<p>The core issue was my AST representation wasn't expressive enough, forcing me into unverifiable 'runtime magic'. I realized the solution was to iteratively build a more expressive intermediate representation (IR). This wasn't a single step: I spent two months building and throwing away ~5 different IRs, tens of thousands of lines of code. That painful process is what forced me to learn what it truly meant to compile, represent complex shapes, normalize the dataflow, and verify logic. This journey is what led to static type-checking as a necessary outcome, not just an initial goal.<p>This was coupled with the core challenge: business logic is often about complex, nested, and ragged data (arrays, order items, etc.). If the DSL couldn't natively handle loops over this data, it was pointless. This required an IR expressive enough for optimizations like inlining and loop fusion, which are notoriously hard to reason about with vectorized data.<p>You can try a web-based demo here: <a href="https://kumi-play-web.fly.dev/?example=monte-carlo-simulation" rel="nofollow">https://kumi-play-web.fly.dev/?example=monte-carlo-simulatio...</a><p>And the repo is here: <a href="https://github.com/amuta/kumi" rel="nofollow">https://github.com/amuta/kumi</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45826745">https://news.ycombinator.com/item?id=45826745</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 05 Nov 2025 19:21:24 +0000</pubDate><link>https://kumi-play-web.fly.dev/?example=monte-carlo-simulation</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=45826745</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45826745</guid></item><item><title><![CDATA[New comment by goldenCeasar in "Ask HN: Who wants to be hired? (November 2025)"]]></title><description><![CDATA[
<p><p><pre><code>  Location: Sao Paulo / Brazil
  Remote: Only
  Willing to relocate: No
  Technologies: Ruby / Rails / JS / Linux / DevOps / IAM
  Résumé/CV: https://drive.google.com/file/d/1eFJt5gpK7C-nNJWar75jmskSTIrh0rCv
  Email:andremuta+hn@gmail.com
</code></pre>
I'm André, I have around 8 years of experience as a SWE, mostly building and improving Rails applications in a secure and scalable way in the IAM domain (e.g. an identity provider that now handles 50m users), including the Devops/Infra/Architecture work.<p>Also here is my GitHub, you will see some recent contributions to CRuby itself and my OS library Kumi.
<a href="https://github.com/amuta" rel="nofollow">https://github.com/amuta</a><p>If you are working on a challenging problem with a lot of unknowns or need a very skilled debug guy, I'd be very interested to hear about it. Please send me an email, and let's have a conversation.</p>
]]></description><pubDate>Mon, 03 Nov 2025 20:07:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=45803772</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=45803772</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45803772</guid></item><item><title><![CDATA[Show HN: I built Kumi – a typed, array-oriented dataflow compiler in Ruby]]></title><description><![CDATA[
<p>Hi HN,<p>I'm the author of Kumi, a project I've been working on and would love to get your feedback on.<p>The Original Problem:<p>The original idea for Kumi came from a complex IAM problem I faced at a previous job. Provisioning a single employee meant applying dozens of interdependent rules (based on role, location, etc.) for every target system. The problem was deeper: even the data abstractions were rule-based. For instance, 'roles' for one system might just be a specific interpretation of Active Directory groups.<p>This logic was also highly volatile; writing the rules down became a discovery process, and admins needed to change them live. This was all on top of the underlying challenge of synchronizing data between systems. My solution back then was to handle some of this logic in a component called "Blueprints" that interpreted declarative rules and exposed this logic to other workflows.<p>The Evolution:<p>That "Blueprints" component stuck in my mind. About a year later, I decided to tackle the problem more fundamentally with Kumi. My first attempts were brittle—first runtime lambdas, then a series of interpreters. I knew what an AST was, but had to discover concepts like compilers, IRs, and formal type/shape representation. Each iteration revealed deeper problems.<p>The core issue was my AST representation wasn't expressive enough, forcing me into unverifiable 'runtime magic'. I realized the solution was to iteratively build a more expressive intermediate representation (IR). This wasn't a single step: I spent two months building and throwing away ~5 different IRs, tens of thousands of lines of code. That painful process forced me to learn what it truly meant to compile, represent complex shapes, normalize the dataflow, and verify logic. This journey is what led to static type-checking as a necessary outcome, not just an initial goal.<p>This was coupled with the core challenge: business logic is often about complex, nested, and ragged data (arrays, order items, etc.). If the DSL couldn't natively handle loops over this data, it was pointless. This required an IR expressive enough for optimizations like inlining and loop fusion, which are notoriously hard to reason about with vectorized data.<p>You can try a web-based demo here: <a href="https://kumi-play-web.fly.dev/" rel="nofollow">https://kumi-play-web.fly.dev/</a><p>And the repo is here: <a href="https://github.com/amuta/kumi" rel="nofollow">https://github.com/amuta/kumi</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45687576">https://news.ycombinator.com/item?id=45687576</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 23 Oct 2025 21:39:56 +0000</pubDate><link>https://kumi-play-web.fly.dev/</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=45687576</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45687576</guid></item><item><title><![CDATA[New comment by goldenCeasar in "Calculating legally compliant rent late fees across U.S. states"]]></title><description><![CDATA[
<p>This looks something that could work nicely with my calculation DSL (<a href="https://github.com/amuta/kumi" rel="nofollow">https://github.com/amuta/kumi</a>) This is one of the scenarios that was in my head: auditable/exportable/reusable tax-related calculations schemas.</p>
]]></description><pubDate>Mon, 20 Oct 2025 14:20:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=45644194</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=45644194</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45644194</guid></item><item><title><![CDATA[Kumi: A Ruby declarative DSL for business rules that compiles/codegen to Ruby/JS]]></title><description><![CDATA[
<p>Article URL: <a href="https://kumi-play-web.fly.dev/">https://kumi-play-web.fly.dev/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45620078">https://news.ycombinator.com/item?id=45620078</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 17 Oct 2025 18:21:08 +0000</pubDate><link>https://kumi-play-web.fly.dev/</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=45620078</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45620078</guid></item><item><title><![CDATA[New comment by goldenCeasar in "Ask HN: Who wants to be hired? (October 2025)"]]></title><description><![CDATA[
<p><p><pre><code>  Location: Sao Paulo / Brazil
  Remote: Only
  Willing to relocate: No
  Technologies: Ruby / Rails (PostgreSQL, Redis, Github...) Linux / DevOps / IAM
  Résumé/CV: https://drive.google.com/file/d/1eFJt5gpK7C-nNJWar75jmskSTIrh0rCv
  Email:andremuta+hn@gmail.com

</code></pre>
I'm André, I have around 8 years of experience as a SWE, mostly  building and improving Rails applications in a secure and scalable way in the IAM domain (e.g. an identity provider that now handles 50m users), including the Devops/Infra/Architecture work related. I am someone that likes to tackle challenging problems.<p>One of these kind of problems is related to what I am currently building, vector (domain specific) language implemented in Ruby that lowers and then codegens to Ruby and JS: <a href="https://github.com/amuta/kumi" rel="nofollow">https://github.com/amuta/kumi</a><p>I am very confident on my skills as a developer but at the same time I find it to be inversely correlated with short performatic technical interviews. If you evaluate me with scoped work or a debugging session with real logs and tracing, we’ll both get a truer signal.<p>If you are working on a challenging problem with a lot of unknowns that requires deep technical understanding, I'd be very interested to hear about it. Please send me an email, and let's have a conversation.</p>
]]></description><pubDate>Thu, 02 Oct 2025 02:10:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=45445727</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=45445727</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45445727</guid></item><item><title><![CDATA[New comment by goldenCeasar in "Dgsh – Directed graph shell"]]></title><description><![CDATA[
<p>Now I can't unconnect this, I hope OP was aware because now he wont forget too.</p>
]]></description><pubDate>Tue, 30 Sep 2025 15:46:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=45427016</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=45427016</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45427016</guid></item><item><title><![CDATA[New comment by goldenCeasar in "Ask HN: What are you working on? (September 2025)"]]></title><description><![CDATA[
<p>I still am not sure exactly how to define it, but it's a ruby library, that is mix of a rules engine+spreadsheet feelings+array language+static validation+compiled/codegen... that last part is mostly not merged yet but yeah, ruby DSL codegenerating ruby, it's ruby all the way.<p><a href="https://github.com/amuta/kumi/tree/codegen-v5" rel="nofollow">https://github.com/amuta/kumi/tree/codegen-v5</a> 
(see ./golden for more context on the compilation/codegen. I barely knew what a compiler was before doing this so I might have just created some nonsense  )</p>
]]></description><pubDate>Tue, 30 Sep 2025 07:20:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=45422802</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=45422802</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45422802</guid></item><item><title><![CDATA[New comment by goldenCeasar in "Vibe coding has turned senior devs into 'AI babysitters'"]]></title><description><![CDATA[
<p>And then the PR owner's agent can fix it and then after some number of iterations you get a PR for a new and mysterious system.</p>
]]></description><pubDate>Sun, 14 Sep 2025 21:00:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45243198</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=45243198</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45243198</guid></item><item><title><![CDATA[New comment by goldenCeasar in "My Ideal Array Language"]]></title><description><![CDATA[
<p>That means a lot, thanks!</p>
]]></description><pubDate>Tue, 05 Aug 2025 16:16:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=44800020</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=44800020</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44800020</guid></item><item><title><![CDATA[New comment by goldenCeasar in "My Ideal Array Language"]]></title><description><![CDATA[
<p>The broadcasting handles the rank differences automatically. When bonus (at employee level) multiplies with col_adjustment (at office level), each employee's bonus gets their office's adjustment applied, no flattening or manual reshaping. The structure [[[91_000, 63_700], [58_500]], [[71_225]]] was preserved.<p>This is from a Ruby DSL I'm working on (Kumi). Probably the broadcasting semantics are very different from traditional rank operators in q/APL?<p>Edit: I realized that I missed the input structure:<p><pre><code>  Region 0: Office 0 has 2 employees, Office 1 has 1 employee
  Region 1: Office 0 has 1 employee</code></pre></p>
]]></description><pubDate>Mon, 04 Aug 2025 20:41:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=44791101</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=44791101</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44791101</guid></item><item><title><![CDATA[New comment by goldenCeasar in "My Ideal Array Language"]]></title><description><![CDATA[
<p>A question, would you interpret this as rank polymorphism?<p><pre><code>  schema do
    input do
      array :regions do
        float :tax_rate
        array :offices do
          float :col_adjustment
          array :employees do
            float :salary
            float :rating
          end
        end
      end
    end

    trait :high_performer, input.regions.offices.employees.rating > 4.5
    
    value :bonus do
      on high_performer, input.regions.offices.employees.salary * 0.25
      base input.regions.offices.employees.salary * 0.10
    end
    
    value :final_pay,
      (input.regions.offices.employees.salary + bonus * input.regions.offices.col_adjustment) *
      (1 - input.regions.tax_rate)
  end

  result = schema.from(nested_data)[:final_pay]
  # => [[[91_000, 63_700], [58_500]], [[71_225]]]</code></pre></p>
]]></description><pubDate>Mon, 04 Aug 2025 19:10:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=44790161</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=44790161</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44790161</guid></item><item><title><![CDATA[New comment by goldenCeasar in "My Ideal Array Language"]]></title><description><![CDATA[
<p>Funny, on another totally unrelated domain (business logic/rules engines) I was building something very very related - array broadcasting with semantic preservation through arbitrary 
  nesting levels</p>
]]></description><pubDate>Mon, 04 Aug 2025 17:34:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=44788994</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=44788994</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44788994</guid></item><item><title><![CDATA[New comment by goldenCeasar in "Ask HN: Who wants to be hired? (May 2025)"]]></title><description><![CDATA[
<p>Location: Sao Paulo, Brazil<p>Remote: Yes<p>Willing to relocate: Yes<p>Technologies: Ruby on Rails, Python, JavaScript/TypeScript, PostgreSQL, Redis, Sidekiq, Docker, Kubernetes, AWS, ECS<p>Résumé/CV: <a href="https://drive.google.com/file/d/1eFJt5gpK7C-nNJWar75jmskSTIrh0rCv" rel="nofollow">https://drive.google.com/file/d/1eFJt5gpK7C-nNJWar75jmskSTIr...</a><p>Email: andremuta+hnhire@gmail.com<p>---<p>Hi! I am André, a Senior Software Engineer with 8 years of experience. I've worked extensively on large, sometimes legacy, Rails monoliths, and have designed and built Rails applications at scale.<p>I offer expertise in:
- Refactor legacy and greenfield Rails apps, increase test coverage<p>- Perform deep debugging to identify and resolve root causes<p>- Optimize performance with caching strategies, database tuning, and auto-scaling<p>- Implement authentication and identity and access management: OAuth2, OIDC, SAML, user provisioning, and audit logging<p>- Build CI/CD pipelines and container deployments using Docker and Kubernetes/ECS<p>- Integrate third-party APIs (CRMs, DocuSign, Active Directory, Google Cloud)</p>
]]></description><pubDate>Wed, 07 May 2025 15:37:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=43917111</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=43917111</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43917111</guid></item><item><title><![CDATA[New comment by goldenCeasar in "Ask HN: Freelancer? Seeking freelancer? (May 2025)"]]></title><description><![CDATA[
<p>SEEKING WORK | Remote  | Senior Software Engineer / Backend, Ruby on Rails<p>Hi! I am a Senior Software Engineer with 8 years of experience. I've worked extensively on large, sometimes legacy, Rails monoliths, and have designed and built Rails applications at scale.<p>I offer expertise in:<p>- Refactor legacy and greenfield Rails apps, increase test coverage<p>- Perform deep debugging to identify and resolve root causes<p>- Optimize performance with caching strategies, database tuning, and auto-scaling<p>- Implement authentication and identity and access management: OAuth2, OIDC, SAML, user provisioning, and audit logging<p>- Build CI/CD pipelines and container deployments using Docker and Kubernetes/ECS<p>- Integrate third-party APIs (CRMs, DocuSign, Active Directory, Google Cloud)<p>*Tech Stack*
Ruby, Ruby on Rails, Python, JavaScript/TypeScript, PostgreSQL, Redis, Sidekiq, Docker, Kubernetes, AWS, ECS<p>CV:       <a href="https://drive.google.com/file/d/1eFJt5gpK7C-nNJWar75jmskSTIrh0rCv" rel="nofollow">https://drive.google.com/file/d/1eFJt5gpK7C-nNJWar75jmskSTIr...</a><p>LinkedIn: <a href="https://linkedin.com/in/andremuta" rel="nofollow">https://linkedin.com/in/andremuta</a><p>Email:    andremuta+hnhire@gmail.com</p>
]]></description><pubDate>Wed, 07 May 2025 15:36:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=43917090</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=43917090</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43917090</guid></item><item><title><![CDATA[New comment by goldenCeasar in "Used Meta AI, now Instagram is using my face on ads targeted at me"]]></title><description><![CDATA[
<p>Or worse: he needed to consent to a TC that allows they do use his image if he wanted to enter the shopping.</p>
]]></description><pubDate>Mon, 06 Jan 2025 23:45:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=42617480</link><dc:creator>goldenCeasar</dc:creator><comments>https://news.ycombinator.com/item?id=42617480</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42617480</guid></item></channel></rss>