The LendUp engineering team recently completed a big milestone: releasing our very first piece of open source software! We spoke with Jake Rosenberg, LendUp’s co-founder and CTO, and Rolando Manrique, Principal Software Engineer on our credit card team, to learn more about the project (in layperson’s terms!). For a more technical view, head on over to our engineering blog.
Congratulations on LendUp’s first piece of open source software! We figure this is cause for celebration?
JR: It’s a huge milestone! We’ve been building amazing technology for six years now, and have been so focused on our mission we’ve neglected to think about sharing some of what we’ve done with the community. It’s very exciting to finally make that happen.
We admittedly had to google what “open source” means. According to Opensource.com, open source products, projects and initiatives “embrace and celebrate principles of open exchange, collaborative participation, rapid prototyping, transparency, meritocracy, and community-oriented development.” Why was it important for LendUp Engineering to be a part of the open source community and get our software out into the world?
JR: I’m a strong believer that giving back to the community by open sourcing certain technologies is a critical part of building an iconic technology company. LendUp is built on a lot of open source technologies that have simplified our path to getting our products in the hands of customers who really need them. This is our opportunity to help other innovators solve challenging problems as well. Also, as we grow, we want to attract and retain the best software talent, and the open source community is chock full of brilliant people.
RM: And, it’s important that we can show the community that we are doing good and interesting work. Our mission is a huge factor in hiring and keeping talent, and open sourcing will give the community insight into all of the cool stuff we’re building.
We know LendUp is full of brilliant technologists who build all of our technology in-house, but can you share in layman’s terms what the project is about?
RM: It’s about abstracting the notion of saving and retrieving files behind a common interface that simplifies data transfers throughout our data pipeline.
JR: To put it even more simply: this allows us to move data around to different places, like SFTP, Box, Amazon S3, or other storage locations, without rewriting all of our code.
That sounds like a good idea! How does this experience map back to LendUp’s values and/or mission to help anyone on a path to better financial health?
JR: Rolando definitely acted like an owner (one of our 7 values) on this, from writing the code to working with our legal team to find the right license. And the data pipeline he’s building with this code will help our internal analysts and product team improve our products and allow hundreds of thousands of people to have better access to credit and experience better service. All part of living our value of “Ladders, Not Chutes”, and LendUp’s mission to provide anyone a path to better financial health.
How long did it take to make it happen, from start to finish?
RM: As I started scoping the card pipeline project I realized we had to have an abstraction that would make testing easy and decoupled from S3 and external SFTP servers. In total, it was about 30-50 hours. It probably took around 20-30 hours of development to get it to a point where we could use it in card pipeline. Getting it ready to open source was probably another 10-20 hours of work (cleaning up repo history, setting up public repo, setting up travis-ci.org builds, setting up sonatype releases, and documenting everything).
Tell us about the team!
RM: About five of us worked on it, or are still contributing in some way. For example, a Principal Engineer helped as a guide on some newer FS2 concepts I was not familiar with, and a few engineering colleagues helped us with preparing to go open source. Another Software Engineer has already made some contributions, and a Senior Software Engineer is in the process of writing a Box.com Store. I’m really excited about this one, as we will be able to upload/download stuff from Box, just like any other Store.
As a company with technology at its core -- did this play any role in the team’s excitement, commitment, ability to make it happen?
RM: Yes! Everyone on the Eng team is excited and appreciated the quality of the work.
Any highlights along the way -- as well as bumps on the road -- that you’d want to share?
RM: A highlight for me: when I started showing this to people on the Engineering team, they all “got” it right away and appreciated how the library is useful and well thought-out. So many people had the same reaction and said, “we should open source this!”
JR: The only bump in the road is more of a hill to climb: the long process to evangelize scala, the language we used to build the project, among LendUp engineers. Previously LendUp has focused on Java, Python, and Clojure as its core languages, but Scala is rapidly gaining traction as a language with first class support and tooling at the company.
What’s your advice for a team wanting to make their first piece of open source software?
RM: For starters, I suggest you think of something that you would have to implement in every single project you work on, regardless of company or industry. Then it’s as easy as making that a library and sharing it!
JR: Also, our tech team is currently in the process of breaking down our monolithic architecture into libraries and services, so it’s important that we invest in a well-built set of tools we can use to make that work even simpler. This library, fs2-blobstore, is representative of our team shifting focus towards building smaller services and libraries and reusing them across projects.
And what’s next for the engineering team at LendUp? Will you be getting started on your next open source project, or…
JR: We have a few other projects we are working on sharing, for sure. And we’re growing! We have multiple key positions open, so come join us and help us build the future of financial services technology and build something we can share with the community at the same time!