HNHacker News
TopNewBestAskShowJobs

MaxGabriel

2,911 karma · joined January 10, 2011

Maximilian Tagher

Contact: DM on Twitter @MaxTagher

Co-founder at Mercury, try it at demo.mercury.com

We’re hiring Haskell, TypeScript, and Nix engineers! https:/mercury.com/jobs

https://github.com/MaxGabriel http://stackoverflow.com/users/1176156/maxgabriel

Programming: iOS, Ruby, Haskell

Current Interests: Rock climbing, photography

Previous Interests: Haskell, Yesod, iOS integration testing, Mental health, policy debate, bartending, programming education, Python, Objective-C, MySQL performance

submissionscomments
MaxGabriel··on Why am I no longer qualified to be a Brex customer?
Iirc, with our current partner bank Evolve + technology provider Synapse, ACHs and wires have “Synapse” as the sender name on a certain field, instead of your business name.

This is (as far as I understand) wrong. Fortunately it usually doesn’t break anything, but Circle is more strict about this saying the business name.

We have a new partner bank we just launched where we have full control of the ACH stack, where we’ve resolved this. Also trying to fix the issue with the existing partner.

Caveat that I didn’t check this answer with anyone, since it’s early.

MaxGabriel··on Why am I no longer qualified to be a Brex customer?
Yes we do, this is a very common customer profile for us
MaxGabriel··on Why am I no longer qualified to be a Brex customer?
> There has got to be a better way for us to accomplish this.

One path forward is Oauth, which several major institutions use on Plaid (Capital One, Wells, Chase are ones I know of).

This definitely solves “entering login information into random forms”.

I’m pretty sure I have seen these institutions offer you some control over what data you share when you link, but it was minimal control, and didn’t work well. Ideally that would be more fleshed out.

You’d still be sharing balance and transaction data with Plaid though, that part isn’t solved by Oauth. I think to solve that you need to have a European style standard banking API that makes direct bank-to-bank data sharing tenable?

MaxGabriel··on Why am I no longer qualified to be a Brex customer?
> We're doing all we can, and working with other financial service providers to make this transition as smooth as possible.

The biggest thing for us would be if you could support Plaid's Identity product by returning names and emails when someone links a Brex account with Plaid.

When someone links an account using Plaid, having this data available means we can compare that to the names/emails we have on file and have verified. If it's a match, this makes it _dramatically_ less likely someone is trying to commit ACH fraud against a Brex customer.

This makes it safer for us to offer higher ACH pull limits to that customer. Even for customers who never switch away from Brex, this would significantly increase protection from ACH fraud.

- Max T, CTO Mercury

MaxGabriel··on Why am I no longer qualified to be a Brex customer?
(I'm CTO of Mercury)

To clarify, when rawtxapp said "Wire transfers cost 20$ each", they probably mean wiring _to_ Mercury from their bank costs $20. Mercury doesn't charge for sending wires.

The reason they're mentioning the 3rd party bank fees is they'd prefer to use ACH pull to have Mercury take the money directly from their existing bank account (similar to how your gym or electric company might do). We do offer this, but only if you use a service called Plaid to link your third party bank account.

This involves typing your bank's username/password/2FA into a Plaid iframe on our website, which confirms it with the third party bank. If you've used Venmo, that's using Plaid under the hood to link your bank account.

Ok, all that said, my question for rawtxapp: are you mostly asking for us to verify 3rd party bank accounts via microdeposit instead? I agree it's less privacy invasive, but, definitely pretty slow and 1990s like you said about checks. I'm not sure of the security either.

I'm somewhat hoping it's less of an issue as more banks move to doing OAuth in Plaid, instead of sharing passwords. Capital One, Wells Fargo, and Chase do this now (we should really move to doing it too).

MaxGabriel··on Spotify podcasters are making $18k a month with nothing but white noise
Unless something has changed, you have to pay for YouTube premium to play audio while the screen is off.

YouTube is also a worse choice if you want offline access, such as on an airplane or when camping

MaxGabriel··on Eve Online is getting Microsoft Excel support
Dwarf Fortress
MaxGabriel··on Companies That Use Haskell in Production
Fwiw, we (mercury.com) use Haskell exclusively for our backend, and employ something like 75 engineers. Haskell isn’t widespread for sure, but this list is by no means exhaustive.
MaxGabriel··on PostgreSQL Schema Change Guide
Is there any notable 13/14 stuff worth mentioning?
MaxGabriel··on I would like a job writing Haskell
Mercury is hiring ~50 developers to write Haskell this year. Our entire backend is in Haskell, and powers banking for many startups and e-commerce companies

Try it out at demo.mercury.com

Jobs page: mercury.com/jobs

To the OP: I asked our team to reach out to you

MaxGabriel··on Community Banking and Fintech
Maybe how international wires work and on what ways providers like Wise or CurrencyCloud are different

Maybe European banking API standards vs Plaid?

Different banking charters, like ILCs. Maybe talking about what tech startups are doing which license?

OnlyFans and banking issues, especially what their CEO said blaming a bank for not processing their wires (iirc)

You’ve tweeted before about a future where tech companies enable a “bank for Beyoncé fans” and such. Maybe that? (I am still skeptical of this)

Maybe different ways tech companies comply with laws vs traditional banks? How much is it taking on extra risk vs improved KYC tech and such?

MaxGabriel··on Building with Nix on Replit
Are there any good initiatives you think companies should fund to improve the accessibility?
MaxGabriel··on Tailscale free for open source projects
My rough understanding with Tailscale is they have a central server you need to trust. How do you feel about this from a security perspective?
MaxGabriel··on Containers Don't Solve Everything
This sounds like a lot of stuff that Nix solves, the multiple versions of libraries coexisting part at least
MaxGabriel··on API Tokens: A Tedious Survey
> In future we want to be able to do even more sophisticated things, like ask users for confirmation before the push code that contains secrets

If you all have thought about it, do you imagine you'd only warn in the presence of some generic token identifier, like `secret-token` a la https://datatracker.ietf.org/doc/html/rfc8959 ? Or, would you be able to warn on everything that matches the regular expressions your partners give you to identify their API tokens?

MaxGabriel··on YAML and Configuration Files
If Dhall was more popular, would it meet your criteria?
MaxGabriel··on Why Learn Haskell? (2018)
I’ve been using Haskell in production for three years and it’s been great so far!

I think these concepts translate to other languages fairly well, and are easy to learn in Haskell:

- Newtypes (Languages like Kotlin/Swift have support for them, and you can kinda get close with lots of classes in Java)

- Purity (can write “pure” code in most languages)

- Algebraic Data Types (help with thinking about modeling data, works in eg TypeScript)

- Maybe / Optional types (Now very popular in other languages)

- Parser Combinators (work in eg JavaScript)

MaxGabriel··on 1937 film explains how a car differential works
> government funded

The video was made by the Jam Handy organization. They did videos for several car companies, and sometimes a consortium of them, is my understanding https://en.m.wikipedia.org/wiki/Jam_Handy

MaxGabriel··on WhatsApp Will Start Showing Ads
I’m seeing 55 employees when I google
MaxGabriel··on Justice Department Sues to Block Visa's Proposed Acquisition of Plaid
Fwiw there are competitor services to Plaid, like Finicity
MaxGabriel··on For Alaska shipwreck survivor, losing everything has been ‘sort of liberating’
One upside to tools like the Garmin (and I _think_ the newest SPOT) is you get 2-way communication. This is good to describe your specific need (helicopter evac vs 2 people on foot to carry a stretcher) and location (are you stuck on the side of a cliff for example).
MaxGabriel··on No More Free Work from Marak: Pay Me or Fork This
Andreesen Horowitz primarily focuses on early stage startups. A company with 5mm in investment isn’t able to spend 1mm on a single open source license.
MaxGabriel··on 1Password for Linux beta
My coworker packed it for Nix if that's helpful to anyone: https://github.com/chessai/1password-beta-nix
MaxGabriel··on Let's Build a Cloudflare Worker with WebAssembly and Haskell
Learning curve is fairly steep, but very doable if you join a good team who doesn’t make things too complicated. Productivity is lower initially but much better on maintenance/refactoring.

Overall I’d recommend it!

Experience: Mercury (bank)‘a backend is 100% Haskell

MaxGabriel··on Ask HN: Has anyone migrated off containerized infrastructure?
We use Nix and NixOS with no containers. You get some of the benefits of containers (eg different binaries can declare dependencies on different versions of X), without some of the wonkiness of containers

It has trade offs (eg worse docs), but you might like them better than eg Docker’s

MaxGabriel··on Pain Points of Haskell
I'm the CTO at Mercury (https://mercury.com/) and we have 100% of our backend written in Haskell. It's gone really well so far.

Answering another commenter's question, I would say the "secret weapons" are:

1. Hiring: Haskell is a very in-demand language by very good engineers. For a startup, it's absolutely amazing for recruiting and I can't overstate how important recruiting good people is for a startup.

2. Correctness: Haskell helps you ensure your code doesn't have bugs. For a bank this is fairly important. Some aspects of Haskell that are great for this: algebraic data types ("discriminated unions" in some languages) model business logic quite well, purity makes a function much more of a known quantity, libraries like Persistent ensure type-safe SQL queries, and in general the community cares about correctness.

I haven't used the other languages you mentioned, so I can't really speak to a comparison with them. Re: laziness, it's almost never something I think about in practice.

MaxGabriel··on Brex Lays Off 62 Employees
SVB, a popular bank for startups, started offering a card with no personal liability https://www.svb.com/business-banking/business-credit-card/sv... and Stripe’s card also has no personal liability https://stripe.com/corporate-card?utm_campaign=paid_brand-US...

I think the reason large banks haven’t offered this yet is they’re not very catered to startups, which might have a large balance but no credit history (either as a business, or because the founders are young or foreign).

(My company somewhat competes with Brex cash but doesn’t offer a charge card or credit card product)

MaxGabriel··on What Is Nix?
Several people in my company use the separate volume workaround and it's been totally painless.

Nix has sharp edges but this one is less of a concern than you'd think ime

MaxGabriel··on SELECT wat FROM sql
One way I've seen it used is when you need to order by all or nearly all of the columns in a select statement. Sometimes

select a.1, a.2, a.3, ... a.10 GROUP BY 1,2,3,4,5,6,7,8,9,10

conveys the intent more clearly than listing out all the column names

MaxGabriel··on Why my book can be downloaded for free (2014)
A book can be helpful for other reasons. For a programming book, beginners especially may benefit from a linear structure that covers a predefined amount of content.

For example, you can go from zero rails experience to being able to build a site with Michael Hartl’s rails book. As a reader you can stay focused on the book and roughly assume you can understand Chapter 2 with the information from Chapter 1.

Conversely, a common complaint about intermediate-level Haskell is a lot of it is scattered across blog posts, and is difficult for beginners to follow.

← PreviousPage 2 of 23Next →