This week, I’m joined by Bob Belderbos and Julian Sequeira of PyBites fame. Bob is a Software Developer at Oracle, Spain. Julian is a Data Center Technician at Amazon Web Services, in Australia.
Join us as we discuss how PyBites got started and what they have in store for its future. We’ll also look into Bob’s secret love of drawing and Julian’s not so secret love of a good pint.
Ricky: Welcome, Bob and Julian! Or is it Julian and Bob? In either case, thank you for joining me for this interview. Let’s start with the usual first questions. How’d you get into programming? When did you start using Python?
Julian: We prefer to go by “Boolean.” Not really, but let’s make it stick.
I was first bitten by the programming bug (pun intended!) back in high school but really dove into coding in late 2015.
I needed a way to track the overtime hours I was clocking in my Field Engineer role at Oracle to ensure I was being paid correctly. Enter Python (at Bob’s recommendation).
I made myself a CLI overtime tracker that comprised of a rudimentary menu system with simple options to calculate my post-tax overtime pay. It was basic, worked a treat, and got me hooked on Python.
Tip: It’s the real-world use cases that make the learning stick!
The speed and simplicity of Python compared to my high school days using C++ had me hooked. Then we started PyBites, and the Python got real. (Real Python, get it?)
Bob: For me, it all started at Sun Microsystems back in 2009. I moved into the Systems support group and found a niche to develop a web app to parse diagnostic outputs, of which we were getting thousands every month. This became a staple tool for the support organization, saving them countless hours of tedious work every day.
This diagnostic tool was a wild mix of shell scripting (bash/sed/awk), Perl, PHP, and some jQuery. The business decided to move to full automation of service requests, for which I wrote a new framework in Perl, which soon became a maintenance nightmare, so I started looking for other solutions.
This was back in 2012. I stumbled on Python and started learning it. It was love at first sight: with its clean and elegant design (type import this in your REPL), lack of braces, and other C-like syntax, it just reads like English! It’s simple to learn the basics of Python, yet under the covers, it’s very versatile.
There is a great article by Eric Raymond in Linux Journal titled Why Python?, which describes his revelation when he changed from Perl to Python.
I experienced something similar. After a fast rewrite of the automation framework in Python, it became relatively “easy” to make changes, and we expanded it with many exciting new features, all without major headaches. Although I transitioned into another role, the solution is still actively maintained. Since then, I have been fortunate to use Python for almost all my work.
Ricky: You are both most famous (for better or worse) for being the co-founders of PyBites. For those who don’t know about PyBites, what is it, and how did it get started?
Boolean: PyBites just started out as a simple blog to share what we were learning in the Python space. (We use a static site generator called Pelican.) We were keen to push ourselves past just reading books and watching videos. Writing blog posts made us really dive deep to ensure we were communicating the right concepts.
Shortly after its inception, we started to test out some ideas. One was to challenge ourselves, as inspired by Noah Kagan’s coffee challenge. So one day Bob came up with a Python exercise for us to solve by the end of the week.
mm:ss timings per video, but not the total duration. The task was to scrape the site and add up all the video timestamps, calculating the total duration of the course.
At the end of the week (sprint), we compared our solutions and retrospected on our learnings. We had this “Fight Club moment” (maybe not as violent…) of “we should do this again sometime,” and that’s how our blog/community code challenges line was born.
We looked into GitHub, set up a challenges repo for us to publish our challenges and solutions to, and then created a separate community branch to have others pull request their work to.
The traction we gained from this sparked the idea that became our coding platform: CodeChalleng.es. It comprises of a growing collection of almost 200 Python exercises (called Bites of Py), which you can code in the comfort of your browser.
Another huge thing for us was completing the #100DaysOfCode challenge, which we actively shared on our blog and social media. This got us interviewed on the Talk Python podcast and, in turn, led to us producing the #100DaysOfCode in Python course together with Michael Kennedy.
An important lesson for us here was that you just need to get started and drop perfectionism. A lot of awesome stuff that happened was not planned but came to us because we put something out there that generated interest, and we acted upon the valuable feedback we received in the process!
Ricky: Julian, you’re not a programmer by day, and you work as a Data Center Technician at Amazon Web Services. How has it been learning to code alongside someone as accomplished as Bob? I would assume it would help to have someone more experienced as your business partner? Is there anything that you were surprised by or found difficult as you learned to code?
Julian: The Pythonic gap between Bob and me has been the cornerstone of PyBites. It’s actually what we figured would give our blog a unique spin!
To that end, it’s been a bit of a mixed bag. When you code alongside someone as capable as Bob, the first feeling is that of awe. You see the elegance of their code and their ability to solve problems you’ve spent hours on, in mere moments. It’s truly inspirational!
But not always. It becomes easy to fall into the Imposter Syndrome trap:
- “Is my code ever going to be as good?”
- “Why do I even bother?”
- “He’s just always going to be better!”
The reality is that there’s always going to be someone better when it comes to code, and life in general! I quickly learned that rather than focusing on the skill gap, I should be focusing on my own code, being proud of my achievements, and embracing what I bring to the table.
Funnily enough, and this applies to both of us, the difficulties we hit with learning and managing code were negligible. That is, we accept it and love it. (I say this now but never in the moment!)
The surprisingly difficult part has been the actual business side of PyBites! I’ll also add that my days of not being a professional coder may be coming to an end! (Shhh!)
Ricky: Bob, in your own words, when you’re “not hard at work for the Man” in your day job, you love to tinker and build projects in your spare time. What kind of projects do you have on the go currently?
Bob: Currently, almost all of my time goes into producing course content and improving our platform by adding more exercises and features. With increased use, there are more questions and feedback/requests, but I enjoy every minute of it because it provides a great way to teach Python and mentor other developers, something I really enjoy.
I am also taking the Coursera Applied Data Science specialization because I love data and want to integrate this more in my day-to-day work.
When this and our upcoming course (suspense…) is done, my default workflow will still be similar:
- Take a new concept (Python module, data, web technology, automation opportunity, and so on)
- Study it
- Build something cool and blog/share the process
It’s what I am passionate about and adds to PyBites’ growing body of content.
This is actually something I recommend for any programmer/dev. CVs are legacy. Start building your blog/GitHub/brand so you have a portfolio you can show. It also enables you to re-use what you build for future projects, and it’s a great way to network/collaborate with others.
Ricky: It’s obvious you both share the entrepreneurial gene. (You only have to look at Bob’s bookshelf to see the evidence.) What’s been the hardest or most challenging part for you with starting your own business/side-hustle (PyBites)? Do you find your respective talents offset each other?
Boolean: Hands down the most challenging part has been managing our priorities.
The key priorities in both of our lives happen to be very similar:
- Full-time day jobs
As PyBites grows, so too does the required time investment. We can’t take that time away from our day jobs or our families, so it’s definitely been the greatest hurdle trying to find an acceptable balance.
The outlook we’ve adopted is that “if we have time to watch Netflix, then we have time to work on PyBites.”
To that end, more often than not, we consciously make the choice to not watch TV, play games, or go out, and make that time our PyBites time. It doesn’t sound like much, but after a long day at work and getting the kids to bed, getting back on the tools to work on PyBites can be extremely challenging!
That said, we openly tell anyone who’ll listen that we wouldn’t be where we are without our mutual support of one another.
If you’re taking on anything worthwhile, then get yourself an accountability partner. We hold each other accountable for the items we take on and build each other up when things don’t exactly go our way.
Our different talents most definitely offset each other. Julian tends to be more of the writer, storyteller, marketer, business manager, and “mouth,” whereas Bob pushes deep into code, builds and maintains the tools, comes up with incredible ideas, and supports the community technically. Combine these two talent sets, and you have a well-oiled PyBites machine.
The best part (and sticking to our core belief that you learn by doing) is that we learn from one another. We push each other to continuously improve, to live outside the box, and always try something new.
Ricky: Now for my last questions. What else do you get up to in your spare time? What other hobbies and interests do you have, aside from Python and coding?
Bob: Haha Python and coding is a big chunk, but outside of that I love every minute I get to spend with my wife and two kids.
I am also keen on sticking to a daily fitness routine, especially as our work requires so much sitting and screen time! I love reading books and consuming podcasts. When I free up more time, language learning and drawing are two other things I really enjoy.
Julian: Okay, cutting out coding and Python, phew!
Like Bob, the priority is spending time with my wife and two kids as well. Anyone with young kids will know that you really don’t have much time after they’re done and dusted, so hobby time is limited these days.
When I do grab a few rare, non-PyBites minutes, I love to play my electric guitar, play video games, read, and tinker with my Raspberry Pi and home automation.
Additionally, being the social butterfly I am, I love to hang out with mates and enjoy a few beers. Get me to a pub, shout me a nice Pilsner, and I’ll be your best mate!
(Wait a sec. Did Bob just say he likes to draw?)
Ricky Are there any projects you wish to share with our readers? Where can we find out more about you guys and what you’re up to?
Boolean: Other than the blog, our current pride and joy is our online Python Coding Exercises platform.
We also created the #100DaysOfCode in Python course with Michael Kennedy and have become trainers on the Talk Python to Me training platform. Again, something we’re super proud of. (More to come in this space!)
You can find and follow Julian in the dark places below:
- Twitter: @_juliansequeira
- LinkedIn: https://www.linkedin.com/in/juliansequeira/
- Udemy: I also created an introductory Flask course on Udemy!
- Personal blog: https://www.techmoneykids.com/
- Twitter: @bbelderbos
- LinkedIn: https://www.linkedin.com/in/bbelderbos/
- Personal blog: https://bobbelderbos.com
Thank you Julian and Bob for an entertaining interview. If you haven’t checked out PyBites lately, then I encourage you to do so. If you have someone you’d like me to interview as part of this series, then leave a comment below. Happy coding!