Welcome to another Pinkterview.
This week we have my awesome friend Matt Eaton, The Agnostic Dev. Matt is a Technical Lead at Lextech Global Services, a Python and machine learning enthusiast, web developer, and a fantastic iOS—and overall—programmer.
For those who may not yet know you, could you tell us a bit about yourself?
My name is Matt Eaton, I am a iOS and server side Tech Lead in the greater Chicagoland area. I run a blog called Agnostic Dev that focuses on iOS, networking, Python, and many C-based topics that I run into to in my day to day as programmer. My hobbies are coding, writing, researching, and running, but when I am not doing any of that I enjoy spending time with my family, traveling, and being a health nut.
How did you get started with programming and computer science?
I started getting interested in programming and computer science when I was a student at Rock Valley College. I was taking a lot of math classes as part of my general education requirements and started noticing a lot of computer science questions in the math work I was doing. This led me to start looking at programming in my free time and ultimately adding more programming classes to my schedule.
After this I started getting involved with programming inside and outside of school, taking on small freelance web and mobile work to get myself into the industry. When the iPhone SDK launched in 2008 I knew that this was something I wanted to get involved in and have been developing ever since.
Where does the nickname Agnostic Dev come from?
The name Agnostic Dev comes from a wide array of projects I have been involved with throughout my career. Mobile and server-side development have always been the backbone of my career, but over the years I have contributed on many different projects in many different ways. For example, I have worked on projects as a front-end engineer, DevOps engineer, system architect, networking consultant, and a content management admin, so after awhile I thought that the name just was fitting.
You’re really passionate about Python and machine learning, can you share a little bit about this and how you got started with each one?
Python is a great language because of the ecosystem, versatility, and surface area that the language covers. It is available just about anywhere and is involved in almost every genre of development today. For example, you can find Python in web development, data science, automation, tooling, OS development, game development, and language development if you look hard enough.
I was initially drawn to Python after looking through the CPython source code one day and seeing C code that had existed in Python since the early 90s. I thought that anything that could stand the test of time like this as a programming language was at least worth a second look. From there I started just writing small utility applications and experimenting around with different data science topics. Lately I have started to contribute to CPython and have found the community around Python very welcoming.
In regards to machine learning, I would not say I have a passion for machine learning like I do network development, but I definitely have an interest in in this topic. My interest for machine learning grew out of using the OpenCV library.
Around 4 years ago I used the OpenCV library for deriving image characteristics in camera frames on both iOS and Linux. This really got the ball rolling for me. My interest was accelerated as the Python ecosystem grew further and further around data science, and libraries like scikit-learn began to gain more and more popularity.
In 2017 Apple released CoreML and this tied everything together for me because now I could create a data pipeline with Python and scikit-learn, and convert that pipeline into a model that you can compile with your iOS application.
What are good beginner resources for people looking to get started with machine learning?
Some great beginner resources are:
- IPython - Jupyter Notebooks
- Python for Data Analysis: Data Wrangling with Pandas, NumPy, and Python
- Data Mining for Business Analytics: Concepts, Techniques, and Application with XLMiner (This book can totally be done with Pandas, IPython, and Matplotlib)
- Your local PyData Meetup (PyData Chicago)
How did you get into iOS development?
Right after the iPhone SDK launched, back in 2008, I knew that this was something I needed to get involved with. First of all, because I had seen and used an iPhone, and thought that Apple was trying to carve out their own place in the mobile phone market that was completely different from any other smart phone out at the time. Second because I knew the iPhone was going to be one of the catalysts that changed the way we communicate and write software.
I can remember reading the iPhone developers Cookbook (by Erica Sadun)—from cover to cover—to try and teach myself iPhone development from the ground up. Eventually I was able to get going and from there I started taking on small app projects. As the years went by I very much still enjoyed iOS development and eventually it became a staple of my career.
Are there any cool projects or articles in the pipeline that you can share? And what can we expect from you in the future?
I am researching a project to install a multi-path TCP image on a Raspberry Pi to create a small NAS device that I can hopefully communicate with from an iPhone or Mac/Linux computer, and still contributing to CPython and hopefully Swift-NIO when I can get the time.
How can readers follow you and your work?
That concludes this week's Pinkterview. What do you think of Python, machine learning, and Swift NIO? Leave your questions and feedback in the comments below.
As always, thanks for reading and until next time! :)