Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

A Coder Interview with Michael White

0.00/5 (No votes)
26 Jun 2013 1  
Welcome to our continuing series of Code Project interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Michael White, a Systems Engineer at Visa.

Welcome to our continuing series of Code Project interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Michael White, a Systems Engineer at Visa. To learn more about Visa technology, check out the Visa Developer Program.

Who are you?

My name is Michael White and I work in the Systems group at Visa in Foster City, CA. I also live in Foster City, so I’ve got a great commute.

What do you do?

I work on the Visa Integrated Payment (VIP) System. This is the mainframe system that processes Visa’s real-time authorization messages. It sits at the core of Visa’s processing platform and is the underlying system for all of the different card authorization platforms offered by Visa.

VIP isn’t flashy or even well known to most individual cardholders, but many of them use it several times a day. Nearly all Visa transactions that take place anywhere in the world flow through this system in real time, so it is critically important that it be secure, robust, and efficient.

Transactions are processed via messages (typically two messages, a request and a response, per transaction) and last year VIP processed over 11,500 messages every second during our busiest peak season period.

I used to work in the VIP Applications Development group but have since moved to the TPF Systems group. TPF stands for Transaction Processing Facility and it is the mainframe operating system that the VIP application runs on. Our group’s primary responsibilities are to ensure the availability and performance of the VIP system and capacity planning for the system to accommodate transaction rate growth.

One of the main projects I work on is the annual VIP Stress Test. Each year, Visa performs the VIP Stress Test ahead of our "peak season" (the busy shopping period between November 1st and Christmas when Visa transactions reach their highest volume) to ensure that the VIP systems are ready to handle the expected message rate, as well as any unexpected hardware or network failures. Any hardware or software changes that have been made, or are planned to be made, before peak season are tested to ensure that they will leave us with a system that is up to the task of handling our peak season transaction volume. We also ensure that we can handle the Peak volume even if we were to lose an entire data center.

This type of preparation and failure resistant system configuration has led to 20 years in a row of "perfect" peak seasons, meaning the VIP system has had 100-percent availability.

We also use the VIP Stress Test to evaluate new hardware and major software changes before deploying them into our production environment.

It’s very fulfilling to work on a system that is used for purchases made by so many people and that is so important for commerce around the world.

What is your development environment?

When developing at work, I use an IDE built by IBM called TPF Toolkit. Toolkit is built on Eclipse, so if you imagine Eclipse without all of the handy add-ons for Java development, you’ve got a pretty good feel for what Toolkit is like.

I develop mostly in C++, but there is some legacy code that’s still in assembler that I work with from time to time. C++ is my favorite language; it’s the first one I learned and always feels like home.

As strange as it may sound, I’ve also come to enjoy assembler language over the years. I’ve always enjoyed trying to make code as efficient as possible, and the challenge of coding something complex in assembler with as few instructions as possible is always fun.

What new tools, languages or frameworks interest you?

I’ve wanted to develop some Android apps for a while now. We have other groups at Visa that do great work with mobile development but that’s not my area. My daughter is a budding artist and we’ve been talking about collaborating on an interactive children’s story or game app that could showcase some of her art.

What is your coding pet peeve?

My biggest pet peeve is poor or missing comments. When you work on a large application with a huge group of developers spread all over the globe, which deals with a wide variety of variations based on countries and regions, you come to greatly appreciate clear, concise, and thorough comments that are updated and kept accurate.

I like camelCase, keep it clearSimpleAndToThePoint();

For indentation, I prefer K&R.

How did you get started programming?

When I was in fourth grade, we started using Commodore PETs in school. I figured out how to write a program that played sounds, which was considered "cool" at the time. My teacher brought the class to the computer lab for me to demonstrate it and walk through the very simple code (I was in fourth grade after all).

That summer the school principal called my mother and asked if I would come in and help set up the computers for the coming school year. I spent several days loading up programs with cassette tapes (yes, cassette tapes!) and a computer nerd was born.

I played around with Commodore 64s later but then I took a fairly long hiatus from computing.

I got back into programming around the time Windows 95 came out, mostly playing around with DOS and Windows. I was the "computer guy" for all of my friends and family for many years before it finally became too much too handle and I had to start limiting the number of people I provided tech support and computer building services to.

Eventually, I made my way to the Electrical Engineering and Computer Science program at U.C. Berkeley, and I started working at Visa shortly after graduating.

How has the developer community influenced your coding?

There are so many online resources available to the developer community today that I think they can’t help but influence nearly every developer. Got a quick syntax or API question? A Google search will give you the answer in seconds. Writing a utility for use at home? Chances are there’s an idea for a solution (or maybe even the code already written) waiting for you on the web.

I’m a big fan of open source, and I sometimes upload the small programs I write for home use.

I’m a bit of a dinosaur when it comes to social networking; I don’t even have a Facebook account! My girlfriend spends enough time on Facebook for the both of us though, so I think it sort of evens out.

When I see questions I can answer on forums, I try to help out and give back when I can. For playtime development at home, I run my own Subversion server on a Linux box in lieu of an online service.

What advice would you offer to an up-and-coming programmer?

Pseudo code, pseudo code, pseudo code!

We all learn the saying, "resist the temptation to start writing code" early in our education, but it’s an urge most of us struggle with throughout our careers. The truth is, anyone who can use a keyboard can write code, but only a true developer can write robust, extensible, clean, and efficient applications.

Figuring out a design, layout, and what will make the best APIs is really the fun part anyway, and these are much more valuable skills than being able to memorize syntax or hammer out little bits of code quickly. There’s a ton of coders out there, but developers who understand how to design, organize, and explain why the chosen options are the best are much rarer. Improve on those skills, and you will immediately see results in the applications you develop.

It’s also a virtual certainty that you’ll eventually see the difference in your salary or whatever other benefit you receive from the applications you develop.

Read more developer interviews on the Visa Developer blog.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here