PyDev of the Week: Martin Uribe

This week we welcome Martin Uribe (@clamytoe) as our PyDev of the Week! Martin helps out at PyBites. You can find him on PyBite’s Slack channel answering lots of Python related questions. You can also find out what Martin is up to via his Github or LinkedIn profiles. Let’s take a few moments to get to know Martin better!

Can you tell us a little about yourself (hobbies, education, etc):

I’m 46 and happily married with 8 kids. Born and raised in South Central L.A. I joined the California National Guard while I was still in high school. I went to Basic Training between my 11th and 12th grades; came back and graduated with honors and was gone within the month for Advanced Initial Training where they taught me how to fix helicopter radios. After a couple of years I decided to enlisted full-time in the regular Army and did a stint for another 8 years in Automated Logistics and got an honorable discharge as a Sergeant in 2001.

Before getting out, I got in a semester of full-time college as part of a re-enlistment bonus. I loved it and I hit the books pretty hard. I was so pumped to learn that I pushed myself to continue to grow when I went back to work. As a result, I was able to get my MCSE, MCP+I and A+ certifications which allowed me to get into the role that I still hold as a Senior Field Engineer for Fidelity. I’m contracted out to one of our many customers, PNC Bank, at their Dallas lockbox location. The title has changed over the years but it entails a lot of hardware and software support. In case you don’t know, a lockbox is where everyone’s checks go for processing when they make a payment over snail mail. Everything gets imaged front and back and entered into the bank’s system and the banks customers can access their documents through a secure proxy connection immediately. The money transfers are made the next day once the checks have cleared. At the end of the month, the banks customers images are placed on encrypted CD’s or DVD’s and mailed out to them.

To blow some steam I like to play Minecraft with my kids, edit movies, play Beat Saber, take online courses, and do some Python coding.

Why did you start using Python?

While in the Army I got into the role of maintaining the 4th Infantry Division’s logistics database. Once I figured out that I could automate most of my work, I was hooked! I had this report that I had to generate daily. That thing was a beast and took several hours to put together. After doing it a couple of times, I decided to record a macro and the next time, it only took several minutes! I went from macros, to editing the VBScript code itself, to writing batch scripts on the NT servers. By the time that I left, the only thing I had to do was make sure the tape was in the tape drive for the nightly backups!

When I got into the role that I have now, it was a whole new ball game. Up to that point I was only familiar with Windows NT and Windows 95. I was plopped in front of a terminal on a FreeBSD network and told to take care of it! Trial by fire as they say! I soon got the hang of it and since our whole platform runs on Perl, I started to dabble a bit with that. Pretty soon I was writing Perl and shell scripts to make my job easier.

At this point of my life, I was into a bit of everything. From pentesting, web development, database management, to 3D modeling/rigging/animation. I even got certified as a Macromedia Flash Designer! Boy was I wrong for betting on that platform… My interests where so scattered that I was good at a lot of things, but not an expert at any of them. I finally got fed up and decided that it was time to stick to one thing and become really good at it.

While pentesting I had come across several Python scripts and I was impressed with how easy they were to read compared to Perl and how powerful they were. I decided Python would by my train and I hoped on without a second thought.

What other programming languages do you know and which is your favorite?

While taking some college courses I learned Java, but I didn’t like it much. I know enough of the following to get things done: HTML, CSS, JavaScript, Perl, SQL, and BASH. Python is my favorite; I use it pretty much every day even though my job doesn’t require me to code.

What projects are you working on now?

Currently I’m working on some code to gather statistics for printer usage across PNC’s national network. They currently have a project where they are consolidating printing to one location and needed to get a good feel for how many documents are printed at each of their sites. With Threads, I’m basically just scraping the printers internal web servers with requests and BeautifulSoup for the page counts once per hour and dumping into a log file and then using another script to process the data with Pandas and generating charts with matplotlib. The bossman was so impress with it that he wants me to expand on it so that it can be used at all of our customers locations.

On the side I’m continuing to learn more Python. I’m in the process of working through some asyncio material and also learning more about deploying API services. I usually put all of my stuff on GitHub, so that’s a good place to see what I’ve been up to.

Which Python libraries are your favorite (core or 3rd party)?

I’ve already mentioned a few of my favorites, requests, BeautifulSoup, Pandas, and matplotlib, but if I had to add more I would say the collections module, black, and cookiecutter. I have my toepack cookiecutter template on GitHub that I’m really proud of. I use it to automatically generate a lot of the boilerplate code and files that go into most of my new projects.

How did you get started at PyBites?

I had just finished some Python MOOC courses on Coursera and I didn’t want to lose what I had learned, so I was looking for some coding challenges. I came across pybit.es and I loved the variety of their blog challenges. I had already found some of the other sites but those all seemed to be more algorithmic in nature and I wanted some real world situational challenges; which PyBites serves up by the plateful! Back then, codechalleng.es didn’t even exist, it was all manual git commands, which in of itself was a great challenge, but Bob Belderbos was very patient with me and held my hand through those dark times.

I had been messing around with Python for over six years and I really didn’t start to make much progress with it until I met Bob and Julian Sequeira. It’s due to them that I’ve gotten as far as I have and I’m really grateful.

What do you do at PyBites?

I help Bob and Julian by verifying the functionality of new features, and testing, proof reading, and suggesting new bites. I also suggest new features, UI enhancements, create new challenges, and am somewhat of a soundboard for Bob to bounce new ideas off of.

Is there anything else you’d like to say?

Since everybody asks, my online nickname, clamytoe, is one that I came up for my first born. Over 19 years ago, my wife and I were in the process of trying to sell our home outside of Fort Hood. If you’ve ever sold or bought a house, you know that there is a ton of paperwork involved. My wife and I were looking over the contract and we had paper scattered all over the living room floor when my son came running through. Ever sheet that he stepped on stuck to his little feet. I remember picking him up and saying something like, “Dang, you have some clamy toes!”. He giggled and was off again, but the name stuck around.

Thanks for doing the interview, Martin!