About Me

Hi, I’m Matt Callahan and I am a software developer in Phoenix, Arizona. Computers have been my hobby since my dad brought home our first family computer 30 years ago - a 286 PC running MS-DOS. I found QBasic and began teaching myself how to program - without Google or StackOverflow! After receiving a TI-83 graphing calculator for algebra class in 6th grade, I quickly began making games and homework cheat programs with TI-BASIC to share with friends. My interest in programming extended through college, where my Geographic Information Systems major introduced me to Java and Flash/ActionScript. If I'm not at my keyboard, you'll find me enjoying the Arizona outdoors - exploring the scenic back roads, bicycling, fishing, camping, swimming, and skiing (yes, there's skiing in Arizona).

Software Development

My main area of interest in programming is desktop and web development using the Microsoft .NET framework. C# is my tool of choice when I need to develop a custom solution. It is an amazing and powerful language with a robust base class library, and awesome features like LINQ, garbage collection, and asynchronous programming. But sometimes I just don't need the overhead of the massive .NET framework, and Python is my second tool of choice. Python is perfect for when I need to automate tedious or repetitive tasks, or I need to process large batches of data. Pyhton is also what I strongly recommend as a first lanaguge for programming beginners.

I am currently an Application Developer at CBRE, helping to build modern applications that power CBRE Dimension, a software suite that delivers spatial data and analysis tools to service real estate brokers and staff. I am very fortunate to work in an environment that provides a wide array of data to process, visualize, and make accessible to clients in meaningful ways. I work with a great GIS and development team, and we thrive solving unique problems and providing tools that help clients make informed decisions.

Radio

In addition to computers and programming, my other nerdy hobby is radio. I am a licensed GMRS radio opearator (call sign WRAA720) and a licesnsed amateur radio operator (call sign KI7SJQ). I rely on VHF and UHF two-way radios for communications when I'm camping and exploring Arizona's back country. Check out my radio homepage here.

Projects

Here are some sample projects that demonstrate the types of software development I enjoy. Check out all my public code repositories here.

API   This site includes a demo HTTP service created with ASP.NET Web API 2. Click here for the API documentation. Example: mfcallahan.com/api/Hello

// jQuery get()
$.get("http://mfcallahan.com/api/Hello", function (data) {
    console.log(data);
});

// API response
{
    "Status": "200",
    "Message": "Hello. The API at mfcallahan.com is responding.",
    "Methods": [
        "mfcallahan.com/api/About",
        "mfcallahan.com/api/Hello",
        "mfcallahan.com/api/IpInfo?ipAdr={}",
        "mfcallahan.com/api/RandomString?length={}&useNums={}",
        "mfcallahan.com/api/Geocode?address={}&city={}&stateProv={}&postalCode={}&country={}"
    ]
}

mfcallahan.com Source    This website serves as both a personal homepage and as a showcase for the flavors software development I enjoy. I used various frameworks, libraries, and APIs including ASP.NET, Entity Framework, jQuery, Bootstrap, ArcGIS Online, Bing, and others to create this site and all the included functionality. Check out the source code here.

Arizona Camping Map   An interactive web map created with ArcGIS Online that shows some of my favortie places to camp and visit around Arizona.

Image Gallery   An image gallery demo built with Featherlight.js.

MB Utils   A MapBasic module and .NET library that extends MapInfo MBX programming functionality by exposing .NET and Win32 API calls as easy to use MapBasic functions and subs. This project was the first library I ever wrote and was a great learning experience in how to document, release, and support an open source software project, albeit on a small scale. I'm sharing this here to show how my career and code quality has progressed.

Miscellaneous Code   This repository houses all my miscellaneous code: one-off scripts, useful code snippets I refer back to once in a while, and anything else useful enough to hang on to for a while.