Learn Python with Talk Python's 270 hours of courses

OpenBB: Python's Open-source Investment Platform

Episode #370, published Wed, Jun 22, 2022, recorded Thu, Jun 9, 2022

You may have heard of the Bloomberg terminal. It's expensive software that can monitor and analyze real-time financial market data and place trades on the electronic trading platform. But have you heard of OpenBB? It's similar software for real-time and long term analysis for finance and investing. The difference is it's open source and built entirely with Python and gives you access to analyze a massive amount of real-time and historical data using the full Python data science stack. On this episode, we have one of the cofounders, James Maslek here to give us a look inside this cool piece of Python-based software.

Watch this episode on YouTube
Play on YouTube
Watch the live stream version

Episode Deep Dive

Guest Background

James Maslach is a cofounder of OpenBB, an open-source investment platform built entirely in Python. He’s also a PhD student in Physics at the University of Maryland, focusing on cold atoms and optical lattices. James discovered Python while looking for a more flexible alternative to MATLAB for scientific computing. After joining OpenBB’s founder, Didier, James helped shape this powerful open-source solution that targets anyone interested in real-time and historical financial analytics without the typical industry price tag.

What to Know If You're New to Python

If you’re excited about OpenBB but new to Python, here are a few foundational ideas to keep in mind:

  • Python is widely used in data science, particularly with libraries such as NumPy, Pandas, and matplotlib.
  • Command-line interfaces (CLI) can seem daunting, but they often offer powerful automation and customization not always found in point-and-click GUIs.
  • Jupyter notebooks let you integrate Python code, data exploration, and visualizations, which is relevant for analyzing stock data or trying out machine learning.
  • Learning the basics of the language’s control flow (loops, functions) and data structures (lists, dictionaries) will give you a big head start.

Key Points and Takeaways

  1. Introducing OpenBB: An Open-Source Bloomberg Alternative
    OpenBB is a Python-based terminal for real-time and historical financial data analytics. It’s inspired by the functionality of high-cost platforms (e.g., Bloomberg Terminal) but aims to remain free, open source, and accessible. This means you can install it and tap into many data providers through your own API keys.

  2. Core Architecture: MVC + Python Data Science Libraries
    The application follows a model-view-controller (MVC) pattern. Data fetching and transformations happen in the model layer, while commands and interactions live in the controller layer, and plotting or table displays happen in the view layer. OpenBB leverages Python staples like requests (for API calls), Pandas (for data manipulation), matplotlib (for visualization), plus optional machine learning libraries.

  3. Flexible and Customizable Visualization
    While the core interface is text-based, OpenBB automatically pops up interactive visualizations. The platform uses matplotlib for plotting and supports easy theme customization. This means users can adapt color schemes, line styles, and even incorporate new chart types.

  4. Data Integration and Real-Time Feeds
    To analyze both current and historical market movements, OpenBB taps into multiple data APIs. Users supply their own API keys—e.g., from sources like Yahoo Finance, Alpha Vantage, Polygon, or IEX Cloud—and OpenBB seamlessly integrates them into the command flow.

  5. Command-Line Interface (CLI) Experience
    Instead of a pure GUI, OpenBB uses a CLI workflow with rich text formatting (thanks to packages like prompt_toolkit and rich) to guide users. It also supports chaining commands and automating daily tasks with scripts. For those interested in building quick, repeatable workflows, this CLI approach is a huge advantage.

  6. PaperMill Reports and Jupyter Integration
    Beyond the terminal, OpenBB supports quick Jupyter notebook “templates” using PaperMill. This lets you generate PDF or HTML reports prefilled with market data and charts for a particular ticker or set of tickers. You can also import OpenBB functions directly into your own notebooks, harnessing the same data-fetching and plotting logic.

  7. Community and Open-Source Contributions
    The project’s GitHub repo has thousands of stars, and many contributors help expand the tool’s functionality—everything from adding new data providers to developing specialized volatility or quantitative analysis modules. The team welcomes pull requests, whether they’re big additions or small fixes.

  8. OpenBB’s $8.5M Funding and Advisory Team
    OpenBB raised significant seed funding (led by OSS Capital, among others), allowing them to invest in better UX, documentation, and new features. Notable advisors include Travis Oliphant (creator of NumPy / co-founder of Anaconda) and angel investors such as Naval Ravikant.

  9. Academic and Educational Uses
    The open nature of OpenBB makes it perfect for universities and coding bootcamps. Students can learn Python fundamentals, data analysis, and finance concepts all within one environment—no expensive licensing required. Professors are beginning to incorporate it into finance and econometrics coursework.

  10. Automating Financial Research
    The platform’s scripting feature allows users to write step-by-step instructions that load tickers, run quantitative/technical analyses, and generate plots or reports automatically. This is particularly useful for anyone who wants a daily or weekly research routine without repeating manual steps.

Interesting Quotes and Stories

  • On Python’s immediate appeal: “I got bored of MATLAB and started using Python. Never looked back.”
  • On being recognized by investors: “I was on my honeymoon when I got a LinkedIn message about funding. Suddenly, we’re talking seed investment with folks at OSS Capital.”
  • On open source acceptance: “People can just fork it, add new data sets or charts, or even build entire new features. That’s part of what makes our community so vibrant.”

Key Definitions and Terms

  • OpenBB: A Python-based open-source terminal for accessing, analyzing, and visualizing financial data.
  • Model-View-Controller (MVC): A software design pattern separating data handling (Model), command handling (Controller), and display (View).
  • PaperMill: A tool to parameterize and execute Jupyter Notebooks, often used for automated reporting.
  • API Key: A private key or token that grants access to data from online services (like Yahoo Finance or Alpha Vantage).

Learning Resources

Below are a few resources to help you dive deeper into Python and data-driven app building.

Overall Takeaway

OpenBB showcases the best of what Python can offer the financial world: accessible data science tools, a rich open-source community, and the ability to integrate with multiple data providers. Its CLI approach may seem unconventional for finance, but it offers deep customization, powerful automation, and real-time access to markets. With the support of a thriving developer community and recent funding, OpenBB is set to grow further, bridging the gap between cutting-edge Python data science and user-friendly financial research.

James Maslek: linkedin.com
OpenBB: openbb.co
OpenBB Feature Gallery: openbb.co
$8.5M seed funding announcement: openbb.co/blog
How to get rich talk by Naval (less money-focused than the title implies): youtube.com
Watch this episode on YouTube: youtube.com
Episode transcripts: talkpython.fm

--- Stay in touch with us ---
Subscribe to Talk Python on YouTube: youtube.com
Talk Python on Bluesky: @talkpython.fm at bsky.app
Talk Python on Mastodon: talkpython
Michael on Bluesky: @mkennedy.codes at bsky.app
Michael on Mastodon: mkennedy

Episode Transcript

Collapse transcript

00:00 You may have heard of the Bloomberg Terminal. It's expensive software that can monitor and

00:04 analyze real-time financial market data. But have you heard of OpenBB? It's similar software for

00:10 real-time and long-term analysis for finance and investing. The difference is it's open source and

00:16 built entirely with Python. It gives you access to analyze a massive amount of real-time data

00:21 and historical data using the full Python data science stack. On this episode, we have one of

00:26 the co-founders, James Maslach, here to give us a look inside this cool piece of Python-based

00:31 software. This is Talk Python to Me, episode 370, recorded June 9th, 2022.

00:36 Welcome to Talk Python to Me, a weekly podcast on Python. This is your host, Michael Kennedy.

00:55 Follow me on Twitter, where I'm @mkennedy, and keep up with the show and listen to past

00:59 episodes at talkpython.fm. And follow the show on Twitter via at Talk Python. We've started streaming

01:05 most of our episodes live on YouTube. Subscribe to our YouTube channel over at talkpython.fm slash

01:11 YouTube to get notified about upcoming shows and be part of that episode. This episode is brought to

01:17 you by Sentry and their awesome error monitoring product, as well as the Python at Scale Summit

01:23 conference being held in October. Reconnect with your data science colleagues this year.

01:28 Transcripts for this and all of our episodes are brought to you by Assembly AI. Do you need a great

01:33 automatic speech-to-text API? Get human-level accuracy in just a few lines of code. Visit

01:38 talkpython.fm/assemblyai. James, welcome to Talk Python to Me.

01:43 Yeah, no, thank you so much for having us. I'm looking forward to the next hour or so.

01:47 Yeah, so am I. I ran across OpenBB not too long ago. I talked about it on my other podcast,

01:53 Python Bytes, I do with Brian Hawken. We cover interesting projects and news and whatnot.

01:58 Dang, this thing is loaded with the Python data science stack. And on top of that, it's a newly,

02:06 really successful open source project in the sort of business VC space as well. So congratulations on

02:15 building a project and on that. And I think people are going to be pretty fascinated to hear the story

02:19 behind it. Yeah, thank you so much. Yeah. You bet. Before we get to the story of OpenBB,

02:23 let's get to the story of James. How'd you get into programming in Python?

02:27 I've only been in Python for a couple of years. My background, I'm, along with OpenBB,

02:33 I'm a PhD student at University of Maryland Physics. Got into Python when I was getting

02:37 bored of MATLAB. Awesome.

02:39 Started taking an interest in some machine learning, data science. Python seemed to be the way to go.

02:44 It was super straightforward. A lot of similarities with MATLAB, especially, you know, NumPy,

02:51 Pyplot. So it was straightforward. Never looked back.

02:53 That's awesome. Yeah, the Jupyter side, data science side of Python is quite similar to MATLAB.

02:59 Although it's a slightly cleaner language, starts with zero, not one on the indexes.

03:03 It does. And MATLAB, their attempt at Jupyter is not exactly where Jupyter is yet.

03:09 Which is interesting because they had a head start, right?

03:12 They did.

03:12 MATLAB predates Jupyter by a long ways.

03:15 Yeah. Well, their live editor is only a couple of years old or at least a couple of years old to me.

03:20 Yeah, sure. It probably is. My last experience with MATLAB was when I was in grad school as well,

03:25 which has been a while. So it's a little bit back there. Awesome. Well, that sounds like really fun.

03:33 I guess you started playing with Jupyter and the various data science tools for physics, right? Not for

03:39 finance.

03:39 Correct. Correct. It was, you know, NumPy, all that fun stuff for doing some physics,

03:45 SciPy calculations. I did go right into the machine learning Kaggle. Fantastic exercise. Really,

03:51 actually my first dive into Python. I love doing these NFL challenges that they have every year.

03:57 So that was where I first fell in love with the language, if you will.

04:01 NFL's challenge sounds really interesting. I've seen some Kaggle challenges and done other

04:05 similar type of challenges, but I'm not familiar with this one. Tell us about it.

04:08 Every year, it seems like they, actually, they have a couple, as far as I know. They usually do like

04:13 an analytics one where you got to present some kind of notebook and then a numeric one, you know,

04:18 think of you're watching Sunday football, AWS, which actually, if you got my, got my bills flag in the

04:22 background.

04:23 Yeah.

04:23 Right.

04:24 This particular one that I started on, you know, you were looking at, you were given the information

04:28 at a given point in time and you were to estimate using whatever machine learning, not machine learning,

04:34 how far the runner would go. And so that was a great introduction, Voronoi regions and decision

04:40 trees, all that fun stuff.

04:41 I think those kinds of challenges are really interesting because they don't require you to be

04:46 developer or code enthusiast. You can just be excited about football.

04:51 And it could drag you into programming instead of the other way around.

04:55 Yeah. Actually the way that I did it and I don't think I did, I didn't do too great on the challenge,

05:00 you know, no metals or anything, but I actually treated it as a physics problem as a, all the

05:05 players as a gas particles and this fun, fun stuff. So there really wasn't any machine learning there.

05:11 Interesting. And just sidebar, I got to say the Chiefs bills, I'm a Chiefs fan, I grew up in Kansas City.

05:15 Got to say that was one, that's probably the best game of all last year out of all the games.

05:20 That's the best game of all time. I mean, I mean, maybe not a little painful if you're on the bill side, but wow, what an insane game.

05:27 All right. I don't want to make it a football show, but that was the highlight of the entire year.

05:31 I think actually.

05:31 Hey, well, low light on my side.

05:34 The low light. Yeah. Cause for those who don't know, basically the, the Chiefs came back and beat the bills in the last like minute and a half in some insane

05:42 way, which is unfortunate, but it was really exciting. All right. Final background question.

05:46 What kind of physics did you study?

05:47 So I do a atomic molecular and optical, particularly cold atoms and optical lattices.

05:53 Okay. Periodically driving this kind of stuff.

05:56 Cool. That sounds awesome. All right. Well, let's talk about this, the space of these things that you, this thing you've created here. So

06:03 what you've created is something called open BB, which described as the most affordable,

06:11 advanced, open, customizable investment research platform. And to me from the outside,

06:19 not having a ton of experience, this looks like maybe a competitor to a Bloomberg terminal,

06:24 which I hear is, is required. Basically, if you're a stock trader, an investor that's doing,

06:31 you know, sort of real time interaction with the market.

06:34 I do have to take a step back as well. I'd say that I'm the founder of this program or this project,

06:40 Didier, you know, he's the one with the real insight. I was just lucky enough to join on early

06:44 to build a lot of this with him. He spent his Christmas coding this and you know, from there,

06:50 but to, but to talk a little bit about it. Yeah. So the, I don't like to call us a Bloomberg

06:54 competitor, you know, Bloomberg has been in the game for quite a long time. They're very advanced.

06:59 They have all the markets and whatnot. Sure. People will say, well, you do have this one

07:03 feature. Well, then we can't, you know, like it's, it's not like a competitor because it has that

07:06 other. Yeah, sure. But from a really high level perspective, it kind of is in that realm, right?

07:11 Right, right, right. At a high level. Yes. We're trying to achieve a lot of the same goals,

07:16 right? Investment research that's free, open source and available to anyone. We want to target,

07:21 you know, the people who can't drop 25 grand a year for the terminal.

07:25 Yeah. You know, what's interesting to me, what, what struck me about this is it's not just, oh,

07:30 here's a, an open source version, or here's a free version or a cheaper version that would be

07:37 something of a stand-in for that type of thing. But here is something that is from the ground up,

07:42 embracing all of these data science tools and libraries from the Python space. So to me, this looks

07:49 like a completely customizable, programmable, extendable thing for people who have Python

07:54 skills. And in that way, it's massively better than a lot of these commercial projects, right?

07:59 That's exactly it, right? So Bloomberg is the big name in this space. You know, you got your icons,

08:05 your infinitives. There's a lot of great other, other tools, you know, you got quite thin money.net

08:09 terminals out there, but none of them provide the level of customization and open source that we do.

08:14 As you said, it's super Python based, right? And the reason we chose Python is that's up and coming,

08:20 right? Everyone in data science seems to be learning it. Finance is, you know, finance is very embedded in

08:26 Excel and there's, there's some shift towards more Python learning in the space. So doing this in Python,

08:33 as you said, is super customizable. You can do it the way, you know, you can add on very easily,

08:38 fork it, add on a feature, add on your own datasets and pretty user-friendly.

08:43 Yeah, absolutely. You know, just to sort of back up what you're saying, pre-COVID,

08:47 I was hired by an investment firm to actually spend time with their day traders. And it was weird

08:53 because they're like, well, they can't be away from their desk when the market is open. So this class

08:58 has to start at 4.30 or 5.00 PM and then go for a little afterwards. It was an interesting setup,

09:04 but it was just that. It was a bunch of traders who were using Excel to try to figure out how well they

09:09 were doing. And then a couple of people on the team were like, we have to learn Python. We have

09:14 to get better tools. So I went and helped them learn Python so that they could stop using Excel and start

09:19 using Python. It's absolutely where a lot of this momentum is going.

09:23 Yeah. I think that they complement each other very well. You know, Pandas, I don't think anyone can say

09:28 enough about how great Pandas is. You know, you can enter in all of your, whatever your trades are,

09:33 whatever your research is, and it's right in a Jupyter notebook in one line.

09:36 Yeah. Yeah, absolutely. Not to say stop using it, but there's, there's a ton of stuff happening in the

09:40 financial space around Python. And I do believe that Pandas actually came out of investment out of, out of

09:47 Wall Street. I'm not 100% sure, but I think that's the history. So let's start with open source. So we could

09:54 go to the website. Your website is openb.co, fan of the .co. You don't need, who needs that M?

10:01 But we can go over to get up here and there it is. We can fork it, do whatever we want. Let's see,

10:07 what is your, your license is MIT, which is like go crazy sort of thing, right?

10:12 Yeah. We're permissive. Feel free to do whatever you want with it.

10:15 Yeah. It's really nice. Even commercial uses the MIT license has, but what stood out most to me when

10:20 I thought, Oh, this is really interesting. And then I looked at this and I'm like, Oh, this actually has a

10:24 lot of momentum here is you've got 12,000 stars and 1.3 thousand forks. That's a lot for any project.

10:31 I mean, we're on par with some of the big web frameworks not long ago and stuff like that.

10:37 You all must be really happy with the uptake that it's getting.

10:40 Yeah. The community response has been overwhelming. When I joined on, it was a couple thousand stars.

10:46 Didier and I, you know, we've fired up discord and we were hitting Reddit, which posts weekly,

10:52 monthly and, you know, took very well. People were very excited. We're super thankful for the

10:57 community that's gotten us to where we are.

10:59 I guess one thing I maybe would like to see possibly, I think what would be really fun is

11:04 maybe you could just talk us through what the experience of using this is because it's an

11:09 unusual UI. And I don't mean that like, Oh, it's, it's weird, but it's just, it's not a webpage.

11:15 It's not a Jupyter notebook. It's imagine pretty much exactly opening up iterm or terminal.

11:22 Yeah. It's a terminal. It's a command line interface.

11:25 In like in very much the sense that it's as a terminal, it means it runs as two EA text

11:30 based user interface type thing. But then as you do reports and interact with it through a CLI style

11:38 or almost of a Python style experience, it pops up windows of really beautiful interactive graphs,

11:46 the various things you're asking for. Can you give people a sense of what it's like to use?

11:50 What's the user experience there?

11:52 Yeah. So the terminal is a command line interface tool, right? So you open it,

11:57 you launch it, Python terminal.py, and you're presented with a list of choices, right? So we

12:04 call these contexts. That's either going to be your stocks or your crypto ETFs. We provide,

12:10 you know, we, we provide a lot of data and in order to access these, you, you type in,

12:15 it's one of these old video games where you got to type in what you want, right? So if you want

12:19 to go into stocks, you type in stocks, and then you're presented with a new menu. So you, you hit

12:24 it exactly how it is that it's completely textual. You know, all of our commands have additional

12:30 options flags as well. Our documentation for some of these functions is listed on our GitHub page.

12:36 And we're trying to really enhance the user experience in terms of guides and documentation,

12:41 since we do know that this is a very unusual user experience. As you said, it's not a website.

12:47 There's nothing to click. It's all textual based, which we understand is going to be,

12:52 not everyone using this product is going to be familiar with the command line interface. And,

12:57 you know, our team, we actually like to call it Ackerman because, you know, you feel like you're in,

13:01 doing your financial research. You feel kind of Ackery.

13:04 Absolutely. You're just, you're, you're typing away. Stuff is streaming by. It's so funny to have

13:10 normal people who are not coders watch people doing stuff with terminals, especially if there's colors,

13:16 they think something nefarious is going on or something crazy is going on. Cause that's how

13:20 it's always represented for hackers. I remember somebody asked me at a coffee shop. I was,

13:25 had like five terminal windows, all running scripts with stuff scrolling. I'm like,

13:28 are you trying to hack the coffee shop? Like, no, I'm just working. Don't interrupt me, please.

13:32 I'm not hacking anyone. Leave me alone. Yeah. It's, it kind of has that feel. Right. But it also

13:36 something that I think that speaks to is like the seriousness and the real, like this is for people

13:41 who are trying to do real work. It doesn't come up and just go like, here's some buttons you can click

13:45 and it's flashy. It's like, you got to get in there, focus on the, you know, on the various aspects,

13:50 whether you're doing stocks or, or whatever it is and, and learn the commands, but then you should be

13:54 able to fly through it. Right.

13:55 Yeah. And we actually, one of the things that we spent a little bit of time on earlier this year

14:00 was making it so that you can actually chain commands, right? You can, if you know your,

14:05 if you know what your workflow is, you can either run it through a script. So you can basically go

14:10 into, into the terminal set up what we call an open BB file. You know, if you, every morning,

14:16 what you do, you go, you do stocks, you look at, I don't know, the top gainers. And then you look at

14:21 what Apple's volume was yesterday. You can put this all in a script, run it, go fire up your

14:25 coffee, come back and you've got all your graphs. You've got all of your tables and, you know,

14:30 really simplifying the workflow. And then when you're done with that, if you forgot something

14:34 in one line, you know what it is, you can type in, you know, you do a backslash stocks,

14:37 load in your ticker and whatever you want. So as you said, once you know the terminal,

14:43 it's really easy to hop around.

14:45 Yeah. That's awesome. Now, before we talk about some of the features and some of the things you can do,

14:50 because I think I'll point people to the right part on your website, but once you see what you've

14:55 got here, it's like, this has a bunch of great visualizations and so on. But let's just talk about

15:00 some of the Python libraries that are available. It sounds like a lot of the big hitters from the

15:06 data science and machine learning space are there.

15:09 Very much so. Right. So the number one library we pretty much use is going to be a request.

15:15 You know, we're hitting APIs, turning those into data frames, reading HTMLs, displaying.

15:21 Yeah.

15:21 Yeah.

15:22 All right. Before we move on from requests, because a request is a very cool library,

15:27 but it also opens up the question of where does requests go? Like, it looks like there's tons of

15:33 real-time data here. And I know that financial data, especially in the real-time variation,

15:38 can be tricky to get ahold of, or it may be not tricky, but requires money.

15:42 This is a very good...

15:44 That's some variant of tricky, isn't it?

15:46 That is. And actually, you do raise a very good point, right? So in the terminal, we do provide

15:51 different endpoints for different sources. So for example, if you want to load in stocks,

15:58 you can either go from Yahoo Finance, you can go from an Alpha Vantage, or you can go from Polygon

16:03 or IEX Cloud. All of these require your own API key. So in order to... Part of kind of the onboarding

16:11 into the terminal is to explore all the data sources we have available, go get your API keys.

16:16 And we try to keep it free, but we are starting to incorporate some more kind of paid, you know,

16:22 endpoints that can be paid.

16:24 Right, right. So if somebody already has a subscription to some data source, why not let

16:29 them integrate that, right?

16:30 Exactly. That's exactly it.

16:32 Okay.

16:32 So we're not distributing any of the data. We're just basically providing the tools for you to

16:37 access it.

16:37 Got it. Yeah, that sounds really neat. Is there some web scraping, some beautiful soup, or is it all APIs?

16:45 There is. So we try to keep it to APIs.

16:48 Because they're more stable.

16:50 Yeah, you never know what tag's going to change. But yeah, beautiful soup is in there, right? Beautiful

16:55 soup's a great library. There is web scraping, you know?

16:59 Yeah, I figured, you know, like, sometimes that's just how it works, right? Sometimes people don't

17:03 have APIs, but they've got websites.

17:05 They do.

17:05 It's kind of a cumbersome API if you go to it.

17:08 I've also become a fan of pandas. Pandas will do all that for you with the read HTML if you just type in a link.

17:16 I was blown away. Chris Moffitt did a course for Talk Python on replacing Excel with pandas and stuff.

17:24 And some of the things you can do to get data off the internet with pandas, I'm like, why don't I just do this?

17:30 This is so much better. You could point it at a web page that might have a whole bunch of text and images,

17:34 and somewhere in there is a table. It could be multiple tables.

17:37 You could say, go to the third table and get me that as a data frame, and bam.

17:40 They're like, evil and beautiful soup. There's a lot of steps to get to a parsed data frame with

17:47 header values and columns.

17:49 Yeah, pandas is fantastic, and, you know, that's a lot of requests, a lot of pandas, a lot of...

17:54 This portion of Talk Python on me is brought to you by Sentry. How would you like to remove a little

18:01 stress from your life? Do you worry that users may be encountering errors, slowdowns, or crashes

18:07 with your app right now? Would you even know it until they sent you that support email? How much

18:12 better would it be to have the error or performance details immediately sent to you, including the call

18:17 stack and values of local variables and the active user recorded in the report? With Sentry, this is not

18:23 only possible, it's simple. In fact, we use Sentry on all the Talk Python web properties. We've actually

18:30 fixed a bug triggered by a user and had the upgrade ready to roll out as we got the support email.

18:35 That was a great email to write back. Hey, we already saw your error and have already rolled out the fix.

18:41 Imagine their surprise. Surprise and delight your users. Create your Sentry account at

18:46 talkpython.fm/sentry and if you sign up with the code talkpython, all one word, it's good for two

18:53 free months of Sentry's business plan, which will give you up to 20 times as many monthly events as

18:59 well as other features. Create better software, delight your users, and support the podcast.

19:05 Visit talkpython.fm/sentry and use the coupon code talkpython.

19:09 So I sort of derailed your conversation, but one of the things that first came to mind is like,

19:16 okay, if this is open source, where is it getting all this interesting data from? So thanks for some of

19:21 the story there. What else? What other major libraries are at play?

19:25 All of our plotting right now is through PyPlot.

19:27 When people see those, when you're in the terminal and you ask for some kind of visualization,

19:31 it pops up with that interactive window. Those are PyPlots?

19:33 Yes. Yes, this is all PyPlots. All the styling is done in-house. We have a fantastic designer,

19:38 fantastic engineer, did a great job of doing some style sheets.

19:41 Yeah, it really does look quite strikingly nice. So yeah.

19:44 Awesome. And all of these are, as we like to say, it's customizable.

19:48 All these style sheets are available to the end user. They're packaged right into the terminal.

19:53 You can go through, if you don't like our blue, you can change that to green.

19:55 Yeah. You've got machine learning, PyTorch, TensorFlow, SK Learn.

19:59 PyTorch is a tricky subject for us because it's tough to bundle into an installer. Currently,

20:05 we have some Keras models built in. You do have to install that, right? Because TensorFlow is a pretty

20:11 big library. We are working on incorporating the open source Darts library, which is PyTorch-based.

20:17 Mm-hmm.

20:25 So we're talking about machine learning. We do also have NLP models used to vader sentiment.

20:28 Oh, interesting. Because if you could say, what is the sentiment on Twitter? Or what is it on,

20:35 you know, the news sites? Maybe that's going to affect...

20:38 Yeah. So that's actually something we had done. You can actually try to do some correlation with

20:42 vader sentiment on news headlines from one of our data providers. And we'll actually throw that on the

20:47 same chart as the price or as the stock price. Yeah. Okay. Super cool. All right. Now,

20:53 before I was going to ask you about how to like sort of do your extra, your add your own extras to it,

20:57 but let's actually go and just talk about some more of the like the visualizations and some of the

21:00 the pictures, the graphs that you guys, types of questions you can answer basically.

21:04 Yeah, of course.

21:05 Yeah. So you can get it through a Windows or a macOS installer.

21:09 Correct.

21:10 Are you doing something like using Pi to app or Pi to exe or Pi installer or something like that to

21:16 try to bundle all up? Or is it just sort of a scripted, make sure you got Python?

21:21 We bundle with Pi installer.

21:23 Pi installer?

21:23 Yes. So we use Pi installer. By we, I mean our engineering team. That's a little above my,

21:29 my ability there. We are in the process of getting this signed through Apple and I believe

21:36 Windows came through today. So at the end of the week.

21:38 You don't get the yellow. Do you want to let this happen? You get the, just the regular,

21:42 do you want to let this happen?

21:43 Yes.

21:43 UAC, dialog and windows, and you'll get something similar in Mac.

21:46 Yes. And the reason we have this installer is we understand, you know, the end user is not

21:51 necessarily going to be someone that wants to go through and change all the Python.

21:54 Sure. Well, it's awesome that it is Python and the people could do it, but it's,

21:58 it's certainly not intended just for Python people, right? It's intended for investors who may or may

22:03 not be. And we have Pythoners.

22:04 I don't want to give a little, but we've got what, almost 200 dependencies.

22:08 So, and everyone's machine acts differently. You know, you do a get pull and then you run

22:14 poetry install, you know, maybe it acts differently on everyone's machine. So we wanted to provide this

22:19 option for folks to be able to just click a button and have it right there.

22:23 Well, I think it's great. And then, you know, that is ideally how software should be delivered,

22:27 right? You shouldn't have to like build it and download all the pieces. You just go, here's the

22:32 thing I click, I put it there and now, now it runs, but it's often not how it is distributed. I guess just

22:38 calling out other two other ways people get it. They can go to Anaconda and get it there. And you can

22:42 also do a Docker type of thing, right? If you want, but yeah, cool.

22:46 For developers, if you want to, you know, you can do a get pull with your content environment,

22:50 fork it, feel free to change it. We're always open to any pull requests.

22:55 Awesome. All right. So let's maybe talk through some of the things that I can do. And then we'll

22:59 talk about some of the internals.

23:00 Yeah, of course.

23:01 You mentioned that there's this whole stock section and I just totally encourage people

23:05 to come over to open bb.co/product/terminal. And then you sort of just scroll through here and

23:10 you get a bunch of cool visualizations. You'll see why I was impressed, I think.

23:14 So here's like, you come up and say, I want the Q sum, I guess the cumulative sum as a sequential

23:20 analysis technique that shows any func, you know, sort of cumulative function applied to something like

23:25 a stock price over time.

23:27 So this is just an example. So if you go into stocks and you know, just for everyone listening,

23:33 we're going through the website right now. And the first thing you'll see on our stocks,

23:36 pay or on our product on our terminal product page under stocks is this Q sum. And for example,

23:41 you would load in whatever your ticker is, and this would be found under quantitative analysis. So,

23:46 you know, stocks load in Apple, and then you type in QA, and then you'd have all these options.

23:51 Q sum is one of them. And this is a time series. Like you said there, it's a time series

23:57 technique of detecting anomalies, if you will.

24:00 Yeah. And you get little call outs of those events and so on. You've got 3D graphs of volatility

24:07 surfaces for, in this case for Apple.

24:09 Yep. Volatility surface, you know, they're big. Everyone loves their volatility smiles.

24:15 And so, you know, you can show the, you can show the implied volatility as a function of time to

24:22 expiration and strike price right there.

24:24 And I guess because these are, do you say plotly? I'm sorry, I forgot the,

24:28 pie plots, what you said.

24:29 We use pie plot.

24:31 Plotly, I think. So I've kind of, early on, I did some plots in plotly and there may be some way

24:36 around that, you know, the interactive, interactivity of plotly is very nice.

24:41 Right. So what I was going to say is when these pop up with the pie plot stuff,

24:44 you can basically explore the graphs just because it's like the nature of those tools, right?

24:50 Yeah. Pie plot has in, what is it? PLT dot ion that will allow you to use the interactive. So you'll

24:56 pop up, you'll be able to zoom or pan with the usual buttons in the window.

25:01 Okay. Let's, you mentioned the sentiment. So there's sentiment news.

25:05 Yeah.

25:06 Instantly correlating article headline sentiment through NLP models.

25:11 Yes.

25:11 Historical price.

25:12 Yeah.

25:13 Yeah. So for this example, yeah, this example, this applies a Vader sentiment,

25:17 right? Which is basically just a rules mapping to the certain words to give you a sentiment score.

25:22 And you can see the stock price on the same chart as from the headlines from our given source.

25:28 Super cool. All right. Yeah. So all these nice different visualizations and so on here,

25:34 maybe talk us through what, so to get these cool things generated by the Python libraries,

25:40 what is my experience as somebody sitting at the terminal CLI? Like how do I pull up,

25:45 say the sentiment news thing or, or the QSUM or so on?

25:48 As I mentioned, once you launch the terminal, you know, you either use the installer, you know,

25:52 two clicks and it's up, or you have your own Python terminal.py and you're provided with some options.

25:59 The first thing you want to do, let's say, you know, for example, we're doing this QSUM that's up

26:03 right here. You would type in, into the command line interface, you would type in stocks.

26:08 Okay. Yeah. And it kind of puts it into the stocks mode where different sub commands apply or

26:11 something, right?

26:12 Yep. And then once you have there, you'll have a bunch of different menus. You know,

26:15 you can look at fundamental analysis, you can look at technical analysis, you can do due diligence.

26:19 You know, we've got a bunch of menus on there. So you would load in your relevant ticker. So you do,

26:24 you'd either do load Apple, or we do have some, if you have the feature flag enabled,

26:29 if you just type in Apple or, you know, AAPL, it'll load in. So once you have that ticker loaded in,

26:35 it does a pandas data frame in memory. So, you know, from there we can pass it to the different

26:41 functions. And for this, for this particular one to do the quantitative analysis, I would then type in QA.

26:47 So when you're on the stocks menu, you know, you can type H for help, or you can do a question mark

26:52 and it'll parse that. And you'd see QA quantitative analysis with a couple of examples of what you can

26:57 do there. And then once you go into that menu, it would pop up with different functions and you would

27:02 type in the function you want. If there's arguments, you know, maybe there's windows or exporting data,

27:09 you would just type in dash help and you'll get a, or dash H, sorry. And you'll get a pop-up of

27:15 the usage and the optional arguments. And you would, you know, type in QSUM with whatever your arguments

27:20 are and you would get this plot. All right. That's very cool to hear how that,

27:23 and that sort of flows through there. All right. What else? Got a bunch of stuff on crypto. Like

27:27 you've got Bitcoin rainbow charts, which I've never seen, but it's fun. That's interesting.

27:33 Yeah. Just a bunch of, you know, open interest by exchange, you know, exchanges, how much traffic there is things like that's pretty awesome. The ETFs. Let's see.

27:44 Some of these are coming up as just almost like, some of them even come up almost like report.

27:49 You got an Excel report and you've got, yeah. So actually it looks like a train station looking like

27:54 here's the incoming information or whatever, right? Yeah. And actually, cause for example, this ETF

27:59 Excel report is a third party or third. So one of our contributors has their own database, the author of the

28:07 finance database. And he has this workbook, it loads in an ETF and it basically does what you see on the

28:13 screen there. And it pops this up in an Excel workbook. we do have another feature that's

28:18 DCF. Someone who was working on their MBA at the time said, Hey, you guys provide the data. I need to do

28:24 a DCF analysis. And so we coded it up. And now we have a DCF analysis, tool that uses some linear

28:32 regression in the terminal. And it all saves to an Excel file.

28:35 That's cool. And the fact that it goes out to Excel, that means you get handed off to somebody who

28:39 just lives in Excel and they can still use that. Right.

28:41 Yeah, exactly. So, you know, we don't want to completely replace Excel because we know it's very widely used.

28:46 Yeah. But hooking to all these different data sources, real time data sources and pulling it

28:51 together. Like that's not Excel's forte.

28:52 Yeah. Yeah. And that's why, why should we be doing it for everything? Yeah. Okay. So you've got sort of,

28:59 technical analysis stuff. You can compare, different stocks and even, check out the news

29:05 over for the ETF. Interesting.

29:07 We do have over, well, I don't want to say over, we're sitting around 700 different functionalities.

29:13 So we do understand it can be slightly, intimidating at first.

29:17 Yeah. That was my feeling as well. When I first saw this is like, wow, there's,

29:20 this is pretty intense. There's like a lot going on. You have to kind of be an expert,

29:23 which is what I was talking about at the beginning. Like you get into the terminal and you just,

29:27 you know, you've got to really become an expert, but then you get this really great,

29:31 quick power to do it. But I would also imagine like, you're probably not doing stocks, crypto, ETF,

29:37 economic analysis, all the same. You probably focused on one of these areas, right? And

29:42 if you narrow it down, it probably gets more doable. Right. Right. As you go.

29:46 And I mean, you know, maybe you're trying, one of the things, for example, we have this econometrics

29:51 menu, which, you know, one of our target audiences is kind of the academics and in your econometrics

29:58 course, right. That's basically what linear regression of certain things. So maybe you want to look at the

30:03 effect of a company's balance sheet on and relate that to inflation. Inflation is a hard topic.

30:11 And you can actually go in, into the econometrics menu, load in both of these and do your preferred

30:16 regression techniques and get some insights. Oh, that's cool. You know, thinking about education,

30:22 that's a big opportunity for you all, right? It is.

30:25 People, students are going to be buying Bloomberg terminals and other commercial things, most likely,

30:30 right. Not the high end ones anyway. Yeah. And so here's a really simple way that you could actually,

30:36 if you're a teacher teaching economics or finance or investing, here's something you could bring into

30:41 your, your class as a resource and really analyze it, right? When your projects could be okay, pick a

30:46 stock. These are the questions we have back it up with the other data that you can find through these

30:50 other areas. And exactly.

30:51 Exactly. That's one thing we, we love, you know, some of the people we talk with their experiences

30:57 for their courses, they have assignments that they need to do, use the one Bloomberg terminal that they

31:02 have among 30 students. So they're queued up for an hour or two, just to get basically the same data,

31:08 if you will. And, you know, we, that's one of the things we pain points we'd like to address is

31:13 everyone can have this on their machine and get the data they need and do the analysis they want to do.

31:20 This portion of talk Python to me is brought to you by the Python at scale summit. The Python at scale

31:26 summit is a conference to highlight innovative big data solutions for Python developers and enterprises.

31:31 You'll learn about trends in the Python, big data ecosystem, share stories about implementing solutions,

31:37 find out about new innovations and connect with other data scientists using Python. The Python at scale

31:43 summit will be a hybrid conference with talks, workshops, and training. Of course, there will be

31:49 networking and social events to connect with other Python professionals too. Come here speakers like

31:54 Matt Rocklin from coiled, Brian Granger from AWS, and many others from amazing organizations such as NASA,

32:01 Capital One and BCG. Get back together with your peers and learn how they're scaling their computation

32:07 and data analysis using Python and the data science stack. Register at talkpython.fm/python-at-scale.

32:16 When you visit the link, be sure to use the code TALKPYTHON, all caps, to get 15% off your tickets.

32:23 That's code TALKPYTHON at talkpython.fm/python-at-scale. The links in your podcast

32:28 player's show notes. Thanks to the summit for supporting the podcast.

32:31 I don't think it would be a very detailed thing, but it would be also interesting that the professor or

32:40 the instructor could say, "Look, here in the source code, these four lines of code, this is showing,

32:45 this is where it's doing that theory we talked about last week. Like, here's how it's applying this model."

32:51 And I don't expect you to totally understand the code, but like, you could see this is how software

32:55 does it. You know, you could have a little bit more insight, whereas a lot of the commercial things,

32:59 if they're a website for sure, but even if they're just compiled, closed source, you won't be able to do that.

33:04 We had a contributor reach out to us, part of the, from Greece, part of their software business course

33:11 was to submit a pull request somewhere. So he reached out to us, he did a nice little report.

33:16 He did a pull request, added a feature to the terminal. So, you know, using the theory in class

33:20 there. Another professor reached out to us, he had his students write a kind of an intro guide for us

33:26 that we're going to, that we're kind of working with and we're going to make available.

33:30 Okay. Awesome. Yeah. The intro guide for OpenBB for his students or something like that.

33:34 Yeah. Yeah. Nice. All right. Let me just sort of skim through here. There's a,

33:38 Yeah. There's a lot.

33:39 There's a feature. So I'm not so sure I want to touch on all of them, but every single one of them

33:44 you come to almost like some of them are just sort of tables, but so many of them like this portfolio

33:49 optimization, you know, it's beautiful. It looks really good.

33:53 And the pie plot is really good. The rainbow chart is always a fun one. It's, you know, it's really pretty.

33:58 I like it a lot. These are, these are great. So I just, to me, it feels like something if I were working,

34:03 doing this kind of stuff, it would be pleasing to sit down and look at these graphs and this analysis

34:08 rather than, oh boy, you know, there's just some software you look at, like it does the job,

34:13 but it doesn't make you feel good using it while it's doing the job, you know? Yeah.

34:17 Battleship gray or I don't know.

34:18 And also, I'm like, I mentioned too, we let, you can customize the colors, even if you want to

34:23 change the terminal colors. When you launch our terminal, you'll see some blues and reds. If you

34:29 want it to be orange and green, you can go in and change it. It's fully customizable.

34:33 Cool. So there's a, a Jupyter section as well.

34:36 There is.

34:37 Yeah. Tell us about the Jupyter section. I think that's a super big tie in for Python people.

34:41 There's two ways you could really make the most out of Jupyter. The first way is we've started

34:47 kind of building an API wrapper for a lot of our, our functions. So one thing we haven't gone into is

34:52 a little bit, the architecture, you know, we use like an MVC model view controller where all these

34:58 plots are generated in the view and we can wrap that into an API and you can import that. So in Jupyter,

35:03 you know, if you're, if your workflow is, you know, X, Y, and Z in the terminal, you can, you know,

35:08 from open BB terminal, import the API is whatever as open BB, open BB view, view stock, Apple,

35:16 whatever, however that works. And you can create your workflows there.

35:19 I see. You get a plot back and you just plot.show or just like empty one line,

35:24 it goes on there. Yeah.

35:25 Yeah. I mean, you do an inline, you can also do, you can adjust it, right? So we'll wrap the API

35:30 wraps our load function. So you can load in your stock and you know, maybe you want to resample

35:35 it, or maybe you want to make your own machine learning model or whatever you want to do. You

35:39 can do that with the API. Another interesting thing is that we use paper mill to automatically

35:45 run some reports. So for the example in the terminal, there's a default example called equity.

35:51 dot, well, it's equity dot I buy notebook. And if you go into the terminal, so once it launches,

35:58 you go to the reports menu, just by typing reports, you type in equity, Apple, or whatever your ticker is,

36:04 it'll run through paper mill, which automatically fills in, you know, your ticker,

36:09 when not generates a predefined PDF, basically with it's fully customizable. We have some fun widgets

36:16 that you can play around with. And you know, you can add KPIs. Hey, if I don't know if you,

36:22 if the RSI is higher, if insider trading is low, I think those are some of the examples. So you can

36:27 create your own custom notebooks, kind of automate your research workflow.

36:31 That's super interesting. I haven't spoken about paper mill for a while in here, but it's a really

36:36 interesting project. I think from the Netflix team, right?

36:39 I have no idea.

36:40 I think so. Maybe tell people just a bit about what the whole purpose of paper mill is, what it is.

36:45 What we use paper mill for is to basically just automatically execute a notebook template.

36:51 You kind of have to go a little bit into the metadata of the Jupyter notebook, and there's a

36:55 cell that has like parameters. And by the terminal, we can parse what the argument is. You know,

37:02 for example, the ticker, right? Basically all the same commands will be run,

37:06 just replacing the ticker with whatever's executed. So paper mill is just a really nice,

37:11 very great tool at wrapping Jupyter.

37:14 Yeah. It turns notebooks almost into functions that you can call, but the output is the notebook

37:19 in the form that has the results, the intermediate results and the pictures and everything, not just

37:24 the answer like a function would have.

37:26 Yep. You get the whole notebook and you know, you can customize it, PDF, HTML,

37:30 you can send it to your buddies.

37:31 You touched on the architecture a bit. Maybe we could dive into that just a little bit more.

37:35 What are some of the notable things about how this is built?

37:37 As I kind of into that actually specifically said, our code is we use an MVC structure. So model

37:44 view controller. So how this goes and, you know, for example, every sub menu will have

37:50 a controller and we do, we have abstracted that so that, you know, there's a base controller and a

37:56 base docs controller that inherit all the same methods, save ourselves a little bit of redundancy.

38:01 So this controller is like parsing and processing the commands you send in the terminal CLI.

38:06 Something I failed to fail to mention was that we use arg parse.

38:09 Yeah.

38:10 So the controller wraps in, it basically takes in, it adds, it creates an arg parse object,

38:16 adds the arguments, and then does the parsing, makes sure that, you know, if I type in, you know,

38:21 if I try to load a stock ticker, that's four, not an actual ticker. If I try to enter a number,

38:26 it'll say, Hey, you need to be a ticker. You know, it does some of the logic.

38:30 Our model functions get the data, transfer the data, or edit the data, modify it, manipulate it

38:36 in certain ways. And then the views do either tables, graphs. So, you know, for example,

38:42 but if you look at how we do our fundamental analysis, the workflow is the controller has

38:48 income and we, the way we do it, the function is called call income. We just kind of add this call

38:53 underscore to whatever you type into the terminal. And that call income is a method of the controller.

38:59 So that'll, you can add the arguments. And for example, the income statement has an argument

39:04 that's dash L that tells you how many quarters you want to get. So the namespace, so the parser,

39:10 the arg parse namespace then has the information stored. So we know, Hey, we're trying to get income

39:17 and we're trying to get five quarters. So that we'll call the view, which will then pass in,

39:23 you know, the view will say, Hey, alpha vantage model, get me my five quarters of Apple income

39:31 statements. And that'll return it as a data frame. And, you know, either, I guess that that function

39:36 doesn't have a graph, but if it's a graphing function, it would do the graph.

39:40 A graph pops up the window and the pipe plot window and then off it goes. That's really

39:44 interesting. I have never really thought about how you might do the processing of CLI commands,

39:51 but within an application, when I think arg parse, I think startup, like what commands are passed to my

39:56 application during startup to figure it out. But of course, as you continue to issue commands,

40:01 if that's text on a line, it makes sense to sort of treat it the same, right?

40:05 Yeah. And well, we actually do on startup actually do have arg parse. So you can, you know, for

40:10 example, the, my favorite, my favorite flag that we have for the terminal is debug. That way you can

40:16 actually get a full, instead of catching all the errors, right? Cause if, if we're not catching all

40:20 the errors in the terminal, it would crash every time you added an exception or whatnot. But with this debug

40:26 flag, it'll actually show you the full stack trace and just, instead of just the exception.

40:30 So we actually do wrap around the startup and whatnot. And we also do like, and we have a reset command

40:35 that if you're in the terminal, you type in reset and you know, maybe you changed an API key or you're

40:41 developing, you change your function, it reload it. You hit reset. It'll relaunch the terminal.

40:46 It'll exit then relaunch. So that's the general, general workflow.

40:50 Yeah. Does the terminal run in whatever terminal of your OS? Like if I have iterm set up on my Mac,

40:57 it'll run there. If I have, you know, windows terminal and PowerShell, it'll run over there.

41:00 Yeah. Just to make sure you're in the right directory.

41:02 Okay. Fantastic. Super, super interesting. And also, I can even add a statement that

41:09 doing this MVC allows us to have different views. I know one thing you'll probably ask me about is

41:14 that we have these bots on our website. Yeah. I did notice over here that you have

41:18 a products, you got a terminal and then documentation, and then you have bots.

41:21 Yeah. Coming soon. Bots. I do remember now what I'm going to ask you, but let's talk

41:25 bots for a second. Yeah.

41:26 And then we'll come back to it.

41:27 So bots, I don't want to, I don't want to give away. We do have some exciting

41:30 announcement coming soon. And I would like to take this opportunity to apologize to anyone that's

41:35 trying to get this, get the discord bot in our server, as we're currently limited to the maximum

41:40 100 servers we can be in without the verification that we're working on.

41:44 Got it. So under the listing here, you have bots coming for discord, telegram,

41:49 Slack, and more. And yeah, I guess news is coming, huh?

41:52 Yeah. And all of this, one of the kind of using MVC, we're able to extract abstract all of our

41:59 methods. And, you know, then we can just, you know, we do all the processing on the same model

42:03 function, and then we can pass it to different views for discord or telegram or Slack.

42:08 I'm sharing or comment as much as you can. But, you know, like you can build a Slack bot in Flask,

42:13 for example, or something like that, right? Where it kind of uses a web communication to talk to your

42:18 bot. And so I guess you could do things like go into Slack and say, open, hey, open BB bot,

42:23 tell me about important events in stock, or I've been watching this thing. If it crosses the threshold,

42:29 just yell at me about it, right? Let me know. Yeah.

42:31 Something like that. Is that kind of the flow?

42:33 Pretty much does some async stuff. It's running on a server somewhere and it waits to read in the

42:39 command. Cool. One other question I wanted to ask you is, is what I've seen so far looks like

42:44 really cool ways to, I mean, all of it's static, so you can only read so much into it. But it looks

42:50 like, let me answer a question about this information, either historical or sort of up to now about some

42:56 stock or the economy or whatever. Is there a way to have like a dashboard where I can put different

43:01 things up and they're just constantly turning with real data?

43:04 That is possible. Yes.

43:05 Not the main use case, but possible.

43:07 I mean, it is possible and I'll leave it at that, that it is possible.

43:11 Okay. All right. Sounds good. That was the one I was asking about.

43:15 Yeah.

43:15 All right. Now, one thing I want to touch on here before we get too far away with time is two

43:22 things stood out to me when I went and sort of clicked around your side. Now, that's pretty

43:26 interesting. I can't remember, you know, some news article that talked about OpenBB that I

43:31 thought was pretty interesting. I came over here. Okay. Wow. This is really pretty,

43:33 pretty cool. It's open source and so on. The other one is like right across the top. It says

43:38 announcing our $8.5 million seed fund funding and public launch. That sounds like a non-trivial

43:45 deal. That's awesome. Congratulations.

43:47 Yeah. Thank you so much. I mean, yeah, that's a pretty big deal for us.

43:51 I would think.

43:52 Yeah. I mean, actually fun fact about this was that so Didier and I were just doing this for fun

43:59 on the side, you know, and then my wife and I, we got married in 20 or about a year ago, actually a

44:06 year ago in 11 days. So we're on our honeymoon in Napa Valley on good old land of the VC. And on our last

44:14 night there, fun day of the, of wine touring and whatnot, I get a LinkedIn message from someone

44:20 saying, Hey, we're interested in investing in you. And needless to say, that turned into,

44:25 into meeting up with, meeting up with them on quick 20 minute chat, the day of driving through

44:31 San Francisco before actually trying to get out to Alcatraz, because we had that scheduled.

44:35 Wow. How, what funny timing on one hand, it's like terrible timing on other it's perfect. You're

44:41 right there. Yeah. I mean, I was like, Hey, I'm, I'm in Napa. And, so I'll give a shout out to JJ

44:47 over at OSS capital. He's been fantastic working with us. JJ was like, I will meet you wherever

44:53 you are right now. And I'm like, man, I am not in any state to be talking to anyone right now.

44:57 So, it was a, it was a great opportunity to reach out with him. They led the round. We have,

45:03 we have a great group of angels on board as well. I guess there's a couple of other

45:09 call outs I want to make real quick. One, Travis Oliphant is an advisor to you all, which is pretty

45:14 awesome. People surely know him as one of the founders of Anaconda. Yep. Travis is on board as

45:19 an advisor for us. Been fantastic working with him, getting to know him a little bit. That's super cool.

45:23 Then also Naval Rivacant is one of the investors. And I know him from this quarter storm thing,

45:31 turned into a discussion called how to get rich. Have you listened to this? Yeah,

45:34 it's pretty interesting, pretty fascinating. So he's involved as well, which is pretty cool.

45:39 Awesome. I think that's really neat. You know, like I said, congratulations to you guys. You keep

45:42 good. You're going to keep working on this, but open source projects often struggle to get support,

45:48 even when it blows my mind that they do see projects like requests or flask or something like that. And

45:55 so much of the world and the tech world in particular, where there's tons of extra money

46:01 and there's not very much support, right? You know, as far as I know, David Lord isn't just mostly on his

46:07 yacht and periodically accepting PRs. But if you think of how foundational some of these projects are for so

46:15 many companies, it seems almost like David should be on a yacht. You know what I mean? Like it should

46:20 be easier for them to get really strong support. And here's an example of a company getting really good

46:26 support, giving away to some degree. Can you talk about what the business model is or is it just growth

46:32 and attention and features for now? Primarily, we want to focus on growth and really hammering on

46:37 the user experience. You know, one of the things you talked about is, you know, maybe when someone

46:41 fires this up, they're not used to seeing a textual type thing where I need to type in all the commands

46:47 there. Everyone's just used to buttons, fancy web apps. So right now we really want to hammer home the

46:53 user experience, make it as fluid as possible. We're working on documentation. We're working on guides.

46:59 Yeah. It seems like something that would lend itself really well to a bunch of small video

47:02 videos on like, you could just say, help this goes, would you like to watch a video on how to do this?

47:08 Two minutes. Yes. All right. I'll watch the video. I can just like pop that up or something.

47:11 Yeah. Yeah. No, that's it. And you know, some, a series of those. Yeah. Cause for example,

47:16 you know, fundamental analysis or technical analysis are buried three or four menus down. And if you're

47:20 downloading the tool to, to do that, you know, maybe you're going to be intimidated at first,

47:24 cause you don't know where it is. Right. So we really want to try to find it or whatever. Yeah.

47:28 Yeah. So right now we want to focus on the community and we want to focus on the user experience.

47:32 Cool. All right. Well, you've definitely got a little runway there. So that's great.

47:36 A little bit. How many people are working on it now?

47:38 So our team is, it's our team. First off, shout out to everyone bothering me on Slack during this.

47:44 I'm ignoring you because I'm talking about you. Okay.

47:48 Pretty much. So a shout out. We're about, we're at 15 right now.

47:52 Awesome. I'll take this opportunity.

47:54 to mention that we do have some open job postings on our website as well at the moment.

47:59 Oh, really? Okay. Just throwing that out there, on our website, open bb.co/company/careers. Yeah. So I'm guessing some of these are, are Python related ones.

48:11 Or currently we're looking for, for DevOps and we're also looking for some social media managers

48:17 at the time. Cool. Remote an option?

48:19 100%. Yeah. Yeah. 100% remote, flexible hours.

48:23 Very cool. Yeah. I know a lot of people are interested in finding new jobs on the one hand,

48:28 you know, if you're a software developer, you can kind of find jobs pretty easily these days because

48:33 there's such a demand, but on the other, it's like, well, you can have this job, but all right, you got

48:38 to move to this city that you don't already live in or you don't want to move to, or you want to change

48:43 countries or whatever. Right? So I think, I think remote's pretty awesome.

48:45 We're spread out all over the globe. So it's good time. Yeah, absolutely. That's the way it should be.

48:50 Yeah. Okay. Well, I think that's, it's about all I had to ask about all the things I wanted to make

48:56 sure we covered, but it's something really cool. You all built with Python and the data science stack and

49:02 open source growth is cool. And the funding is looks so positive. So awesome. I guess it sounds like you

49:08 accept PRs. People want to contribute. Yeah, absolutely. One of those projects that is very

49:13 easy, not easy, but very open to contributions because it has so many sort of standalone little

49:18 features. Like I want to add this new algorithm or this new picture to this, this part of it,

49:22 right? You don't have to understand the whole system massively in order to do that. Right?

49:26 Yeah. This was actually the first open source project that I myself worked on. I picked a good

49:31 one to start on. No PR is too small. No issue. We are on discord. I know a lot of people,

49:38 are huge fans of putting the support there saying, Hey, come on discord, but we're there.

49:43 If anyone has questions on how to install, how to submit a PR, any ideas, we're around to talk.

49:49 Awesome. All right, James, before you get out of here though, I've got to ask you the final two

49:52 questions. All right. So if you're going to work on this, write some Python code, what editor do you

49:57 open up these days? Oh man. So I'm going to get a lot of, I'm going to get a lot of bad feedback

50:03 from my team on this one, but I am a PyCharm person. It scares me. And the fact that I can

50:09 open up a GUI window, makes my life a lot easier. Everyone else uses VS Code. So there's

50:16 always a constant debate. Well, you won't get any, feedback, negative feedback from me. I think

50:21 PyCharm is awesome. I use it as well. And like all the PR features and get features built into it are

50:26 pretty excellent. Yeah. VS Code is also great. it's love to those guys as well. Yeah. I think,

50:31 you know, when I started asking this question six, seven years ago, whatever it was, it was like,

50:35 I don't know what this person, like, I really don't know what this person is going to say.

50:39 It could be anything. It could be some like random thing. I haven't even heard of it. Like that's an

50:43 editor. Okay. Let me research that these days. It's really down. It's down to two contenders,

50:47 pretty much, unless you get the, the Vim Emacs angle, which is not as popular, but yeah,

50:53 it's down to those two pretty much. Yeah. Notepad. Yeah. You just got, got to read something. All right.

50:58 And then a notable PI PI package, something you want to give a shout out to?

51:01 Oh, man, we have so many, as I said, you know, 200 ish. One of the ones that's been a really great,

51:07 another open source project, the rich package. That's what we use to add all the colorful text

51:13 interfaces as well as the prompt toolkit, another great open source package that, that's what

51:19 does our auto completes and whatnot to try to make a little bit easier on the user experience.

51:23 That's fantastic. Okay. And there's two, I like prompt toolkit as well. And of course, rich,

51:28 and you know, speaking of textual IO, right. Speaking of open source projects, that is not the right one.

51:35 It's really cool that Will McGoogan has got textual eyes that I was looking for has really found a place

51:44 building great two ease text user interfaces with rich. And there's just so many things based on it.

51:50 And he also has, some funding as well to keep going there, which is, I think another one of the

51:57 bright, awesome pieces of news around sort of, you know, vibrant open source and Python.

52:01 The rich package is fantastic. yeah, it's all we do. Oh, we use now.

52:06 That's awesome. It's like got some crazy new feature every week. It's always pretty much.

52:10 It's never, never sitting still. All right. Well, James, it's been great to have you on the show.

52:16 Thank you so much for coming on and sharing a look with your project.

52:20 Thank you so much for having me. It was really great.

52:22 You bet. See you later.

52:23 All right. Thank you. Go bills. Go chiefs.

52:26 This has been another episode of talk Python to me.

52:31 Thank you to our sponsors. Be sure to check out what they're offering. It really helps support the show.

52:36 Take some stress out of your life. Get notified immediately about errors and performance issues

52:42 in your web or mobile applications with Sentry. Just visit talkpython.fm/sentry and get started for free.

52:49 And be sure to use the promo code talkpython, all one word. Sign up for the Python at Scale conference

52:55 to connect with your data science colleagues and learn about trends in the Python big data ecosystem.

53:00 Share stories about implementing solutions and find out about innovations in our space.

53:05 Visit talkpython.fm/python-at-scale. That's talkpython.fm/python-at-scale.

53:11 And use code talkpython to get 15% off your ticket.

53:16 Want to level up your Python? We have one of the largest catalogs of Python video courses over at

53:22 Talk Python. Our content ranges from true beginners to deeply advanced topics like memory and async.

53:28 And best of all, there's not a subscription in sight. Check it out for yourself at training.talkpython.fm.

53:33 Be sure to subscribe to the show. Open your favorite podcast app and search for Python. We should be right at the top.

53:43 And the direct RSS feed at /rss on talkpython.fm.

53:48 We're live streaming most of our recordings these days. If you want to be part of the show and

53:53 have your comments featured on the air, be sure to subscribe to our YouTube channel at talkpython.fm/youtube.

54:00 This is your host, Michael Kennedy. Thanks so much for listening. I really appreciate it.

54:04 Now get out there and write some Python code.

54:06 I'll see you next time.

54:26 Thank you.

Talk Python's Mastodon Michael Kennedy's Mastodon