Pybites Podcast

#103 - From Excel to Python and succeeding as a Developer by building your portfolio

Julian Sequeira & Bob Belderbos

Welcome back to the Pybites podcast. This week we have an inspirational chat with Juanjo:

- How he started his  programming journey and what passionates him about this craft.

- How he fell in love with Python.

- How he overcame tutorial paralysis.

- How PDM helped him improve his skills and how the positive effect it's having on his daily work and moving forward.

- How important succeeding as a developer is for him.

- How he coped with imposter syndrome as he grew as a developer.

- Tips for people aspiring to become software developers who want to make a greater impact using Python.

- The importance of choosing a good community as your support system towards your goal.

"Harness the power of the long term achievements by focusing on the short term actions"

We also celebrate wins and share what we're reading (books linked below).

Links:
- PDM program
- Connect with Juanjo on LinkedIn or Slack

Books:
- Dynamic Economic Systems
- Why Stock Markets Crash
- Crafting Test-Driven Software with Python

Find your strength! We hope you enjoy this episode and reach out if you have any feedback: info@pybit.es

Motivation, persistence. Yeah. And there's, of course, also imposter syndrome. I guess when you put your first project on GitHub or building your website, it goes with imposter syndrome. Right. It's something you have to push. Like, is my code good enough? Is. But do you also find that it never goes away? A and B, you just have to push through it, or how do you cope with that? It's not. Well, I think that once you've done the work, it should be a waste of time and effort not to show to the world. So just shape it and be prepared for criticism. It will be good, bad, but you have to take what you can do to improve it. Hello and welcome to the Py Bytes podcast, where we talk about Python career and mindset. We're your hosts. I'm Julian Sequeira. And I am Bob Baldebos. If you're looking to improve your python, your career, and learn the mindset for success, this is the podcast for you. Let's get started. Welcome back, everybody. This is Bob Baldobos, and we're back with the Pie Bytes podcast. And I have a very exciting guest today. With me here we have Juanjo. Nice to meet. Nice to meet you. You here. Welcome to the show. Nice. We finally get to meet on the podcast because, yeah, we've been working together for quite a while and I know you have listened to quite some episodes, so, yeah, to get us started, maybe you can introduce yourself to our audience. Well, thank you, Bob. Yeah. My name is Juanjo, I'm Spanish. So first of all, apologies for my English. Probably it's very hard to sometimes, but I'll try to. To pronounce as best as I can. I am an engineer in Spain and I have a passion which is programming and doing some tools with Python. Basically, that's what I do. Cool. We met through the PDM program as well, where you upscaled your python with us. Really happy to see how you have evolved in a relatively short time. Before we dive into your background, get more in depth with what you do with Python, your learning the mindset and all the good stuff. Usually we kick off the week with a win. Do you have any, any win or wins you want to share with us? Yeah, I have at least two or three of them. The first is one personnel, which I've completed one month doing exercise regularly. So I think that has settled in and I hope to keep doing because I feel better and I feel. Yeah, I think it's a good thing to do to take care of yourself and your health. On the development side, I have just completed graphical user interface for an app that I recently been developing. I have done two parts. One will be a web version and another more graphical desktop. So both of them are, let's say 95% completed. I think it's a win. I came from zero to 95% in a short time. So it's good. Totally a win. Yeah. Awesome. And the exercise, what kind of exercise are you into these days? Well, just so far, running and doing some push ups and doing some heat because I have not much time, but I run for 30 40 minutes so it's also good for my mind. And I listen to the podcast while I'm running. Nice. Yeah, it's a nice way of multitasking. Yeah, I can do both things at the same time. Those I can. Awesome, awesome. Yeah. And the GuI, maybe we get into that more in the later questions. Yeah. Putting myself on the spot for a win. Actually, I will stick it to the workouts as well, maybe because I got a bit demotivated because you can overdo it. So I went 80 20 Pareto on it and just doing four half an hour workouts and tried to hit the main muscle groups and giving it 80% and I'm happier than ever because as you said, right, the other exercise is really there to make you feel good and the health benefits. Right. So. And you can already get that, as you already said, with a hit or. I think that's h I I t. Right. If you want to look it up. Yeah, I think that's like you do a sprint of some kind and then slow down. Sprint, slow down. That's a very efficient way to burn calories. Right. So it's all about getting the best bang for the buck. Yes, that's right. And for people who have not much time, I think it's the best approach. You have to start slowly and build up progressively because as you said, you can burn out very easily if you want to do much or very, let's say very intense for the first day. But if you build up slowly, I think it's the best. Yeah, that's a good reminder. Yeah, yeah. Thanks for sharing that. And I will keep my wins to that because I'm very interested in hearing more about you and your journey. So yeah. Tell us a bit about your background, what you do day to day. Well, I work as a drill engineer, although I didn't study, let's say, what they call an oil career or something like that. I do thruster engineer. I did it and I have a PhD on that. I did it later. So I'm kind of curious person, but I did a master's degree on oil and gas industry, and I think that get me started on this. And really, engineer is basically the guy who is in charge of designing the wells that will produce oil, gas, water, in jet water, steam, whatever. So this is what I do on daily basis, and we have very old tools and very excel based arsenal. So I try to get away from that, because for me, it's not the perfect setup. It's good for financial people who can do many, many things on Excel, and you can build good things on Excel, don't get me wrong, but I think Python has a better way here. Yeah, yeah, yeah. Like, I came from a finance background, and back in the day with Excel and VBA, we didn't know any better. Right? But then when you start to learn about databases and Python and automation, like, oh, a whole world opens for you, which leads into the next question and also the link with the last or a few episodes back when we had Michael not, and the exact same story, he was doing Excel, and it has its limitations. So you start to look further, what more robust solutions are there? So was that the reason you picked up Python, or tell us a bit about how you found Python and those initial steps. Well, I started, let's say, being passionate about programming. When I was a kid, my father had a Spectrum Z 80, and you had to play with these car tapes, the famous tapes, and you play them and you start. But I started to get bored of the games very quickly, so I had to look for a solution. So my father gave me a book, programming book in basic, said, you can do it yourself. So I said, wow, this is amazing. So I started in basic. Then I found an old assembler book my father had. So I tried to learn a little bit assembler, because I wanted to understand how the computer worked, and that's the start of my journey. After that, I went through all the languages. I went to visual basic when I was doing my career and studying at the university. C, C, Java, Matlab, modula two, you name it. Until one day I came across this python when I haven't heard of it, and I gave it a try. And at the beginning, I said, ooh, it's kind of easy to learn this thing. But I wasn't really aware of the power that Python had until many years later. Five, six years ago, I started to need to transit from excel to a more professional environment. And that's why Python settled in. And so far, today is my favorite language. Yeah. Cool. Yeah. Python, as they always say, it's easy to get started with, yet it's profound. If you really start to dig under the covers, there's so much, because not only Python, it's also the ecosystem of tooling, which I hope we will get into as well when we get into more specifics. Now that's cool. And yeah, maybe the interesting thing then to dive into is what have you built so far? So maybe you said already, but how long have you been using Python for then? In total, I think it's six to seven years, let's say more continuously because I started 15 years ago. I came out with Python 2.4, if I'm not mistaken. And then I was looking at this python two versus Python three, and I said, okay, let's make them their mind. And after, when they pick up one version, I will stick to it. So this python three came later and said, okay, I continue, and I'm in love with the program, with the language, with the environment, with the tools and all the batteries included, as you said, which is very, very important. Yeah, it gets better and better and better. So first of all, we don't have to deal with two versus three anymore. It's now generally on three. Maybe some old code bases still have to deal with it. And then every release there are just so many new features and improvements on all fronts. It's really amazing. Yeah. So tell me a bit about the apps you've developed with Python, and maybe in a timeline, if that was recent or longer ago, but yeah, I think you have three or so examples for us, right? Yes, I have three examples, and one of them actually, I started when I was doing the PDM with you. It's a tool to automate backtesting, because I like algorithmic trading. It's one of my other passions. And I try to do many things with Python to make my life easier. And this was like, let's say the ground something. I thought I couldn't do it, but you guide me through and I realized, wow, I can do this, but I do the backend and I do the backend in 90%. So it wasn't really finished. I managed to complete it, and now I'm adding the front end. I'm starting to do the front end. Leveraging on the experience I had with the previews, with the guis. I'm doing with another app that I'll talk to you right now I'm doing an application. This is for my job, to manage material transfer, because we do it usually in Excel why not? We have five people have the same Excel versions with different numbers and it's not very accurate and it takes a lot of time to double check. So I said ok, let's get rid of it, let's do it once, do it right and forget about it. So I did again the backend and managed to build the front end very recently. And now with the IT people in my company trying to sell it, well, not sell it, but try to use it because I use it and I have this, the tracking myself because I'm the person in charge, but I would like to have it done. And also I'm now working on an application that can replace risk, which is add on for Excel, that can do Monte Carlo analysis on all these probabilistic estimation for time and cost. So I, yeah, I'm pretty, pretty much on these three things I think is the major things I've accomplished and I'm very proud of them because they work and they work as expected, which is. Yeah, that's not your average everyday app. Those are pretty big and challenging things. I remember the back testing one when you came into PDM, those moments where coaches also have a bit buster cinema. What the hell is he going to build like? Because there's a lot of domain knowledge involved there as well. But we did the mind map and we broke it out into tiny pieces and slowly but steadily we got there. It was a fascinating project. Yeah, very cool all around. Automation adds a lot of value in the workplace as well, so that's really cool. Yeah, it integrated many, many things on the same place, which I had to learn, and not only to learn, but to code new things. And it was good. So I also overcame tutorial paralysis, which was for me the greatest huddle I read, done tons of tutorials, but built not much. You're no different than all the other pdmers that come with us and start out with stuck in tutorial desert, as they call it, promoted to turn these days. Yeah. So, and before we move on to the next question, before I forget, what are some of the technologies you used in those apps? Well, I used, first of all, for me one of the best is Pytest. For me it's one of the things that I cannot live without, because for me is the tool that I use for. For checking that every step I do is I feel comfortable that every new thing I add is very good, is settled and it works as expected. So this is the brightest, I think this is the greatest one. Then another library is, I remember, for checking time, dates and also to be able to launch executables because that's another part installer, maybe PI installer. Yeah. Okay. And yeah, that's also Django. Django, I think is another very big part of it. I started integrating in databases, SQL, alchemy. So you see it's very big. Very big actors here that to master them, take some time, patient and, and hitting your head against the wall. But thanks for coaching. The path is shortened and it's better. It looks brighter. Nice. Yeah. I remember yet quite some tenacity with the testing, spending a lot of time there and then again at that realization. Yeah. Actually this is very powerful because it cut some bugs at regression. Yeah. Through the whole life cycle. And. Yeah, I think you had a lot of green dots. So that was really nice. Yeah, a lot of tests. A lot of tests. Yeah, yeah. I think there's something to really geek out on. Yeah. The testing bug, right. Yeah. When you have one. And I think now that this test suite has more than 300 tests. Wow. So it's, so, yeah, it takes some time. I, now I do not, I don't run the complete suite. I just run the newest one. But from the beginning, you run all of it. You go grab a coffee back. Oh, it's finishing. Okay. All green dots. Okay. One red dot. What's happening right now? It happened before, but you know, it's part of the game. Yeah, yeah. And all unit test, or did you split them out in unit and functional? So far, units I haven't used functional, but that's something I want to dig deeper in the future. Yeah. Cool. Okay, let's move on then. That's all. I guess those apps are all developed actually fairly recently. Right. Like in the one since PDM. So one or two years at most. Right? Yeah, yeah. I think that the materials is last year and the risk is. Yeah, the end of 2022 and beginning 2023, it's not finished yet, but it will be finished in two, three more months. Yeah. Nice. And also, what I wanted to know is any of that open source or. I mean, obviously the ones, I guess, for work are closed, but the backtesting, for example, is that the backtesting. I will release it for open source soon once I, let's say, have the first complete one. So it's not a Frankenstein. So it's, it's a unique piece. But on the other two, I think there's no, it shouldn't be a problem to release them open source. I'm not against that. I'm in favor of that. So having other people looking at your code and providing comments. It's a positive thing and something that people should seek. That's awesome. Okay, then we'll link your blog and then when time comes, people can just watch that. Or maybe we ask you to announce it on our pivots blog and then more opportunities to contribute to open source. That's amazing these days then. So I guess some of your Python work is still with those apps. But are you also learning new things, trends, or what are you aspiring towards? Well, so far unrelated to the previous question, is to, let's say, tidy up my GitHub portfolio, because so far I looked at it two, three weeks ago. I said, this is a complete message, I need to tidy it up and to put it in more professional ways so it serves like why not to get another job in the future or to offer my services as freelancers. So I have this portfolio and people can look at it and see what I've done. So this is one of them. And on the python side of things, I'm still with Django and PI site six to build the guis, which I think is very powerful and. And easy to use tool. So I recommend everyone looking for a solution to build GUI's go for it. By side. By side. By side. By side. Yeah, by side. S ide syde. Syd. Yeah, it's or no? Si sid. Yeah. By the y is in PI. Sorry. Yeah, and I think the latest version is six and it's completely, it's compatible with Pycute, so it's based on that. So it offers like a layer on top and it's very easy to use and to integrate with other technologies. And also now learning more about this machine learning artificial intelligence that if you are not in, you're out of the game. So I'm curious and I want to learn what I can get of to incorporate into my apps, especially with these trading algorithmic things. And ChartGpt, the infamous chat GPT, which I would love to test and try to see if it's also good. And personal project I'm doing is building my website so I can offer some write some books or articles, things I like. Yes. To show to the world who I am and what I can offer to the world if somebody is interested in it. That's amazing, man. Not only all the development and all the tools you've done and also making available, but also what we call the marketability engine. Not only build it, but also promote it. Was it the Py Bytes guys who said GitHub is your new developers portfolio, you get a portfolio is the new developer's resume. Right. So yes, I don't want that profile page to look nice and show what you've done and then the blog. Right. To write about it. So, yeah, really nice. That's really good. All right. So how important do you think the mindset is to succeed as a developer? Oh, I think question I cannot get away not asking, but it's a leading question, as Julian always says. But I hear your opinion. No, it's a good one. I think it's something that is really, really important for me. You have two sides of the same coin, let's say programming skills. You can acquire them by trying, tutorials, building, but you also need a mindset to believe that you can do and you can make things. So it, I think it's like the Jin and Jan, you need to have them balanced, perfect equilibrium. I wouldn't give more weight one to one than to the other. So I think they're both equally important. And sometimes you tend to overlook the mindset because you think it's not so. But when you start to do things seriously, you realize that you need also to have focus, to have motivation to continue, and you can gain that through people who can on the same journey. So I think I recommend that to improve the mindset and to work on the mindset. I do every day. I try to do every day. Yeah, no, it's often people think, yeah, tech skill, we've spoken a lot about it on the podcast. Right. But then, as you say, when things are getting more complex or apps grow in complexity, that's actually a lot of mindset and sometimes soft skills. Not big fan of the term, but sometimes recognized as coined like that. Motivation, persistence. Yeah. And there's of course also imposter syndrome. I guess when you put your first project on GitHub or building your website, it goes with impostor syndrome. Right. It's something you have to push, like, is my code good enough? But do you also find that it never goes away? A and b, you just have to push through it, or how do you cope with that was not in preparation. Still going. I think that once you've done the work, it's a waste of, should be a waste of time and effort not to show to the world. So just ship it and be prepared for criticism. It will be good, bad, but you have to take what you can do to improve it. I think it's impossible to avoid any bad comments on people saying that you're solution is, let's say it's to be trashed. But why not? I think you have to do it. And once you do it, the rest will come naturally. Yeah, that's interesting. 80% is doing the work preparation, which is in your silo, in your dungeon, and then 20% is the, if you have that work done, then, yeah, showing is actually easier. Right. So it's a lot of still individual coding and not having to really worry about. And you can also kind of choose how you expose your work. I mean, if you go on Reddit Hacker News. Yeah. You might get Harsher Critique, you know. Yeah. On your clock it's probably safer, less readers, right? Yeah. And you can also ban comments, so it's heaven. Yeah. Return comments after a lot of spam. Or you can totally upsell. You can join a friendly community like the pivot's community on Slack. Yeah, for sure. Supportive there. Yeah, people are supportive there. And I found some good, let's say, advice, pieces of advice from the community. So it's a safe heaven. Nice. Okay, so we're getting to the end. So a few more questions. Any tips for people aspiring to become software developers or want to just make a greater impact using Python? Well, I think they have to join PDM because I think it's the better platform. I haven't found anything like it. So you go with the coach hand in hand, and they give you insights and tips and they review your code. You get exposed to many, many things that it will help you in the journey after PDM. For me, one of the greatest things I've taken from it is to start small, build an mvp. You know, I wanted to build the greatest application ever. And when I finished PDN, I said, no, go back to the white war and, and see what. Okay, this is already done, but what's the minimum things, because it wasn't finished. It had a lot of things, but it couldn't work. So make one small thing. Make it work so you can see it is your baby and it will grow. So we don't pretend, when we have kids, we don't pretend them to be adults. They are kids, they are babies, and you have to take care of them and to raise them. So I think that's the best analogy I can find. Build a baby first, a small one that is breathing, is alive, and it will crawl, it will talk, walk, and all the rest with your help. So I think this is the best thing that they can do. Yeah, no thanks. I appreciate the recommendation. And also that you highlighted, again, a mindset. Right. Because obviously you learned a lot of technical skills. But yeah, now that you mentioned it, I do remember that when we started. Yeah, you had high ambitions as everybody, right. But we really had to focus down on taking baby steps and really build out the core and then adding features around it. And yeah, maybe if you wouldn't have had that guidance, then you would just have stayed in like overwhelm, of course, tutorial paralysis you mentioned. And maybe the thing wouldn't have even gone enough to ground like zero to one. Right. Like you would be stuck at 0.4 maybe. For sure. Yeah, that's for sure. And also to have someone that makes you accountable and, and your accountability partner who is always checking on you. Have you done this? Have you advanced on this? What's next? So this is good. And also you provide good tips and you could do, this is okay, it works. But why don't you try this and say, okay, this is much better, more pythonic. And this is also what you want to be professional and your code to look professional. So I think it's a perfect combination. So I'm very glad. Yeah, the accountability in PDM is no joke, you notice. I know, I know. And also, yeah, the last thing I want to say about it with those recommendation or best practices, that usually makes most sense when it's against your own code because you can read about this stuff. We have mentioned dozens of books and they're great, but that can also stay very theoretical. But if you write your own code and your own solution and you get stuck and then you get the advice in the context of what you have written, that kind of sticks. You might still remember the things I highlighted like two years ago. Right. For sure. And when I'm doing a new application, I said I did this with Bob. So I come back to read the code. Ah, yeah, it's here. So I. So it's, yeah, it's, I think it's kind of amazing thing. And you don't, you don't realize and you've done it and you have to use it. Yeah. So it's nice. Yeah. I'm really happy to hear it's still working through. That's the best thing people can say. That's not only like in the twelve weeks, but it's also like till this day I still do xyz because. Right. So I keep using mind map, I can use all the things I learned in GitHub and all these commands and I'm not an expert, but I do the minimum, but the minimum I need. So I don't need many more. So past days I would have read all the git, have documentation and tried to, but now I use what I needed. If tomorrow I need more, I will try to learn more, but I stick to what I need in these days. Yeah, no, that's awesome. Happy to hear. Okay, well, lastly, the books, of course, you totally expected that. What are you reading? Any good tips? Well, I have three books, one related with Python, which is in one of my favorite tools, pytest, crafting test driven software with Python by Alessandro Molina. Not heard about that one. I bought it some time ago and I was the other day looking through my Kindle library and I came across it and I said, okay, I think I haven't read it from a to z or just checked, and I started doing it. It's like how you can build test suites for applications to be, let's say, to scale them. And it starts from zero and it goes on top of that. So it's kind of. I haven't heard of that in a long time. And I came across it by chance. So I was looking through Amazon and some things to Pytest. There was no many books, but this came out recommended by many people. So I thought, okay, let's give it a try and it's worth it. So that sounds interesting because I think many resources just teach you how to use pytest and write tests, but the scalability, not that much. Right. So, yeah, I already want to check it out. I think Alessandra Molina also wrote another Python book with more like a tips like book, which is also pretty good. I think so. Yeah. And also have your books, Python tips. I have it on top of, by my side. Every time I have Pycharm, I have the book on by its side. So I can. Okay, I need to do this. Is there any good tip? Yeah, this one. Okay, I'll do it. So I think you have to. To use it in this way. And also now I'm focused on another passion I have is this trading. And I also found an interesting book, why a stock market crash. And I think I recommended that to Julian because I know he's also interested in investing and all these things, and it's kind of accountable. Yeah, yeah, yeah. So something for, for him. And this is something that, it's a very interesting book. It's very technical. It goes into the mathematics of how you can, let's say, forecast when something's going to crash. And there are some warning signs that you need to be aware of. And they have forecasted successfully quite a few of them, and they published on their website. So it's kind of an interesting book. So for those who are interested in this, it has a lot of mathematical background and he has a companion book, which is even more mathematic that I also bought, but I'm not reading it right now. I think it's for later and also in the same sense, dynamic economic system. So recently I came very interested how economy works, and I think the best way for you not get cheated by an economist is to learn economy. Economy. A little bit. Just a little bit. It's also very mathematical, which I like. I love mathematical things and it's part of my background. And this is some books I'm now reading, so that's fascinating topics. Yeah, yeah, that's really interesting. Thanks. We're going to add those to Python's books. Thank you. Thank you. Yeah, cool. Yeah, I will skip mine. But you read a lot. You read a lot. I picked up, yeah, I tried to, like, during the day, I'm just pretty busy, you know, wearing different hats by. So most I do my morning routine, so I have like a solid block of reading and that's like. Yeah. Anyway, but I picked up Julian's recommendation from two weeks ago, find your strength. So, nice. Short read, self help category. Most stuff we talk about, but it's still nice to refresh that. Like, you shouldn't multitask. Right. You should seek balance. It's just. We know that, but it's almost like if you read it again, it's just you have to keep reminding yourself more aligned with a one thing book. Right? Yeah, one thing. Right. Deep work. That's an amazing one. Yeah. And so good. They cannot ignore you. Yeah, that's something. I have it on my reading list. Most quoted book. Yeah, for sure. Yeah. Awesome. Well, I so much enjoyed this conversation. Thanks for sharing and, yeah, I hope the audience. Well, I'm sure the audience will find a lot of inspiration. Last but not least, final shout out and or nugget of wisdom. Well, I have one thing that I think it summarizes. What you can do is to harness the power of the long term achievement by focusing on the short term action. So I think you need to. To think big. Let's start small and do it every day consistently. Now, I only program 30 40 minutes a day, but it's constant. 30 40 only. I stop on weekends to devote time to family, kids, but from Monday to Friday, minimum 30 to 40 minutes. Previously I programmed less time now than before because I could be six, 7 hours a day and coding or two days, but I think it's better. So. And you, you, you achieve more in this way. Do you have like a fixed window where you do that or. Yeah, since I have commute time, I have 30, 40 minutes commute time. So I take the advantage and way to office or way back, one of those. And if I don't commute because I work from home two days, I do it first thing in the morning, I wake up 1 hour earlier and I code and get done with it. Yeah. Like the workout stuff. Right. And you cannot procrastinate. Yeah. You do it and you feel better, then you feel relaxed to do your day to day job. You don't feel anxious. Yeah. And I guess thanks to the apps you have, most of that develop time goes into building, right? Yes, yes. Building. Always building. I focus on one, one thing at a time also. Just one, just one feature. When I finished, I go to the next one and that's it. Yeah, yeah. Gary Keller, one thing. Yeah. Awesome. Well, thanks so much. Lastly, where can people find you? Where should we link? Well, once I have the website, I will give to you so people can find me. And also on Slack and the PyDM community so they can find me there on LinkedIn. I have their LinkedIn also. So if people want to shout out, I will be really glad to make connections with people and exchange experiences. And my last word, thanks for having me here and it's been a pleasure. Yeah, pleasure is ours. Thanks, Juan. Ho, great discussion, much enjoyed it. And yeah, I'm sure our audience will too. So take care. You too. Thanks for hopping on today. Okay, thank you, Bob. All right, man,