Are there any technical posts from Nubank on how they manage such a large Clojure codebase (I guess it must be Clojure's largest user in the industry). I'm looking for things like how to refactor safely in the absence of static typing, for example. Do they make use of spec? I'm a big fan of static typing, but when using a dynamic language with immutable values and pattern matching, like Erlang, I don't miss it that m…
Nubank acquires Cognitect
201–210 of 281 posts
Re: Nubank acquires Cognitect
#202Pretty strange how no one else sees that banks are very very fragile institutions, plus this one is heavily VC-ed, which makes everything they claim in public irrelevant (this is if we want to trust what any bank says at all). What is relevant is that Cognitect will now have 100% of income coming from the single (and fragile) source, they now do not have to compete and survive on their own, they can't say "no" when h…
With respect, I see where you are coming from, but would argue it isn't necessarily the right read, either in terms of banks, or in terms of Clojure, though there is nuance. Banks are systemic actors in the financial system. They have privileges granted only to them, requirements that only they have to meet. It is HARD to build and operate a bank, whether in the US or in another country. From a "fragility" perspectiv…
I don’t follow. The company the python BDFL last worked for was a storage outfit with a valuation roughly equal to Nubank. The Rails BDFL is at a pretty small software shop in Chicago. Ruby BDFL was at a division of Salesforce last I checked.
Seems a bit reductive to say that Clojure creator being employed by a bank makes Clojure a worse choice outside finance.
Re: Nubank acquires Cognitect
#203Earlier quoted context omitted.
Not sure we have any talks about that specifically, but what I can say is that on the Clojure codebases: - We rely heavily on testing (unit tests, property-based/generative and integration) - We adopt a micro-services architecture, so most codebases are small enough that refactoring is easy, or sometimes we just replace the service altogether - We leverage Schema ( https://github.com/plumatic/schema ) and/or clojure.…
Curious, did you really find that microservices helped? The downsides can be so tremendous -- I wonder if nubank would have done better to services in the low digit range. (context: my thoughts on it -> https://stopa.io/post/236 )
We certainly have to invest more on infra-structure, monitoring, standardisation, and we have been doing since day one - by now it's pretty robust, to the point our internal tooling allowed us to migrate from raw EC2 to kubernetes (https://www.cncf.io/case-study/nubank/) and it was a transparent change to all services and teams.
On the other hand, failures are more localised and we gain robustness and speed to do certain kind of changes.
Your point about getting domain boundaries wrong is true, but IMO it's a pain orthogonal to micro-services. The solution is the same as if you defined a sub-optimal class interface on a big mono-repo: relentless refactoring. We are often strangling (https://martinfowler.com/bliki/StranglerFigApplication.html) and replacing legacy services.
Re: Nubank acquires Cognitect
#204Re: Nubank acquires Cognitect
#205Re: Nubank acquires Cognitect
#206Earlier quoted context omitted.
(for anyone who doesn't get it, Rich funded Clojure development via his retirement savings from 2005 until he ran out in 2009 https://dl.acm.org/doi/pdf/10.1145/3386321 )
gotta ask - what did he do after 2009? is he alright now?
Re: Nubank acquires Cognitect
#207Earlier quoted context omitted.
what was your decision process leading to bet on Clojure?
I used to enjoy programming in Common Lisp, then saw a talk by Rich Hickey which intrigued me. I gave Clojure a try (this was about 8 years ago I think) and (much to my surprise) it turned out it works really well. It also turned out that a coherent concurrency story is important, and that programming with mutable data is not a very good idea after all, so I abandoned CL completely. Over the years, I got many fantast…
Not sure whether I ever had the opportunity to properly thank you, but let me say so now. Thank you, jwr.
Re: Nubank acquires Cognitect
#208Earlier quoted context omitted.
Was this a conference? Possible link to the talk mentioned?
Clojure NYC meetup, sounds like video may be damaged but was salvaged: https://www.meetup.com/Clojure-nyc/events/268460200/
Re: Nubank acquires Cognitect
#209Earlier quoted context omitted.
I suppose a question for you would be how has your business supported clojure(script)? It seems to me to be a case of a business that has benefited from clojure - and wants to be invested in its future - doing something about it. It cost something to provide what you built your business on :)
A while ago I started to set aside an R&D budget that goes towards developers writing open source, specifically Clojure and ClojureScript libraries, and tools like magit or CIDER. The amounts are still small (this is not an enterprise business), but I'm increasing them regularly. I want to see a stable, long-term ecosystem with maintainers that are getting paid for their work.
Re: Nubank acquires Cognitect
#210My entire business is built on Clojure and ClojureScript, and it would not have been possible without these languages. I am always slightly worried by this kind of news, because it means that the main Clojure team is now dependent on a single institution. But it could be good news as well, depending on how things go. Until now, I've been getting nothing but excellence from the Clojure team: not just great tools, but…
No company depends any new language to succeed, depends on customers.