Welcome to our continuing series of CodeProject interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Mike Meinz, who shares some highlights from 45 years in the industry.
Who are you?
My name is Mike Meinz, and I retired from General Mills in September, 2010. My last job there was Senior Director, Strategic Plannning & Governance, Information Systems Division.
I started at General Mills in March, 1967, as a computer operator. After a little more than 90 days, I received a draft notice and joined the Navy.
After boot camp, I was sent to Naval Submarine Base New London, CT.
After release from the Navy in 1971, I returned to General Mills as a programmer/analyst. In the late 1970s, I moved into supervisory/management roles. I continued to do programming occasionally for innovative projects.
I currently do some VB.NET programming for NW Community Television in Brooklyn Park, MN.
I was Chairman of the Board of Directors of NW Community TV for several years and was on the NW Suburbs Cable Communications Commission for many years. Jesse Ventura (Wrestler, Actor, Mayor of Brooklyn Park at the time) originally appointed me to the Cable Commission. I volunteered at NW Community TV. I directed several cable TV programs and I developed their software suite.
What do you do?
At General Mills, I developed the first computer system to compute the nutrition information for the nutrition labels on product packaging.
As an eager young programmer at General Mills, I developed many of the standard functions for use by other developers at the company. In the mid 1970s, I developed General Mills’ General Ledger and Monthly Expense Reporting system in COBOL for a B6700 computer. In 1978, on a HP3000, I developed a meeting calendar application (before Schedule+ and Outlook). In the early 1980s, I created a simple document repository application (before HTML and the web).
In 1998, I teamed with a fellow employee to create General Mills’ first streaming video capability using Microsoft's Windows Media Server.
I registered General Mills first domain names and worked on the first General Mills web sites: BettyCrocker.com, GeneralMills.com, Cheerios.com, Wheaties.com, YouRuleSchool.com, Boxtops4Education.com and several others.
There have also been a few interesting moonlighting projects over the years that reflect the constantly changing computing environment and development tools. In the early 1970s, I created a salt delivery ticket application using BAL on a Univac 9300 for Culligan software of MN. I created Group Ticket Sales, Ride Statistics and Store Sales Statistics applications for Valley Fair Amusement Park, also on a Univac 9300.
In the early 1980s, I built a Lumber Futures Tracking application for Emmer Brothers Lumber using an MAI Basic Four computer and its built-in BASIC language. Then, for the Minnesota Department of Education, I developed a Statistical Database Query Program Generator application and a School District Tax Levy Limitation application. Both of these were on a Burroughs B6800 using ALGOL, COBOL and DMSII database.
While I may have retired from full-time work at General Mills, I still do a bit of programming as a contract developer and volunteer. As I mentioned earlier, I volunteer with NW Community Television, where I’ve been involved with several projects over the years. These include applications for
Studio & Editing Suite Scheduling, Fixed Asset inventory management, Live Call-In Show Teleprompter & Tracking, Program Inventory & Playback Management and Contacts Management, all originally written in CA Clipper, then redone in VB.NET. I also built a WinForms front-end for a TRMS Cablecast application and a StudioTimer in VB.NET. Just this month, I finished a brand new application for NW Community Television that will download election results from the Minnesota Secretary of State FTP site and feed them to a VIZ character generator for display during live election night coverage.
What is your development environment?
As you may have noticed, there’s a bit of computer history interweaved through my career. As a newbie programmer in High School I used IBM 1620 and 1130 computers with Fortran II.
In vocational school, I learned board wiring on systems including the IBM 402, 407, 514, 519, 548, 088 and 188, as well as IBM 1401 Symbolic Programming System and Autocoder.
In the Navy, I worked on IBM EAM machines (402, 407, 088, 188, 085, 514, 519) and the IBM 1401 using SPS and Autocoder in the Base Supply Department as an Operator, then a Programmer. As a programmer, I worked on a Honeywell 800 at the US Navy Submarine School using COBOL, and I was Operator & Programmer on a Univac 1108 at the US Navy Underwater Sound Laboratory, again using COBOL.
At General Mills, I started out as an operator on the Honeywell 200 and 1800. As a programmer, I got started with the Univac 9300, then moved on to working on Burroughs 6700, 6800, 6900 and A-Series. I held various roles using these machines including Programmer, Database Administrator and Technical Services Manager using COBOL, ALGOL, ESPOL (a Burroughs-specific dialect of ALGOL 60), NEWP and the DMS II database system.
I also used the HP 3000 running MPE at General Mills using SPL, Pascal, COBOL and the HP IMAGE/3000 database.
Over the years, I’ve also used dBase, CA Clipper, various versions of Visual Basic from 3.0 to the current version of VB .NET and SQL Server.
Along with my recent work for NW Community Television, I’ve been getting up to speed with some recent tools you’re likely to be more familiar with, including the latest Visual Basic release with Visual Studio 2012 and SQL Server 2012.
What is your coding pet peeve?
Programmers that don’t read the manual or look at the help file and then say that a feature doesn’t work.
I use Hungarian Notation, but I am not strict about it. I prefer constants in all capital letters. I guess you’d consider my formatting similar to K&R.
I like my programs to be nicely formatted. In VB.NET 2012, I like using the the Edit | Advanced | Format Document. At General Mills, I once wrote a COBOL source reformatter in ALGOL. In it, I indented successive IF statement blocks and line continuations by four characters. It was a good learning opportunuty, too, since I used recursion to handle nested statements.
How did you get started programming?
In my last two years of high school, 1965–1966, a few of us were allowed into the IBM Test Center in downtown Minneapolis. This was the place where IBM customers could try out new computers. We were allowed to use the IBM 1130 and IBM 1620 to write Fortran IV programs. One day when we were there, the IBM employees were bringing in a bunch of boxes for a new computer - the legendary IBM 360.
After high school, I went to the University of Minnesota Institute of Technology. There was no such thing as Computer Science, MIS or Computer Engineering programs so I was in a Mathematics program. Working full time in a hospital kitchen and taking classes was overwhelming so I only did one quarter.
I then went to Programming Systems Institute for 18 weeks where I learned IBM 402, 407, 514, 519, 548, 088, 188 board wiring and IBM 1401 SPS and Autocoder programming.
After the vocational school, I was able to get an operator job at General Mills. After a little more than three months at General Mills, I got a draft notice and promptly volunteered for the Navy.
After boot camp in Great Lakes, IL, I was sent to the Data Processing Division of the Supply Department at Submarine Base New London, CT. The Navy said that my vocational school taught me as much if not more than the Navy “A” school, so I was assigned directly into a Navy Data Processing Technician billet.
In our division, we had some civilians and some military. The civilians did the application development and some other administrative functions. The sailors did operations. After a couple of months, I was moved from operations to work with the civilian programmers. I developed software mostly related to inventory control for all of the warehouses at the submarine base. For my work, I was awarded the Navy Achievement medal.
I got orders to go to an aircraft carrier and, a year later, orders to go to Viet Nam, but both times the submarine base leadership implored the Navy Bureau of Personnel to keep me at the submarine base. So, I ended up spending the rest of my Navy time at the submarine base.
After returning to General Mills in August, 1971, I started doing software development on a Univac 9300. Since then, as technology has changed, I have changed my skill set accordingly.
In retirement, I joined CodeProject. I have contributed one article and a couple of tips so far. I have answered a bunch of VB and SQL Server questions in the Quick Answers area.
When I need help on something that I haven’t done before, I search web sites for coding examples and functions. I also have friends that I can ask.
I like: Complete examples with explanations.
I dislike: Questions where it is clear the poster didn’t bother to do any research on their own.
What advice would you offer to an up-and-coming programmer?
When you need to use a new language feature, API or other function, write a little test program to experiment with it. Don’t just plop it in the middle of your application expecting it will work the first time. It is much easier to debug and learn when it is in a small isolated program.
Learn how to use the interactive debugger to look at variable values and the results returned from calls.
You get the best results from a support team (vendor, internal, or developer community) if you can provide them a small program that reproduces the problem.
Design your programs expecting they will change.
Anticipate your user’s future needs.
Write good comments in your programs. You will need them in a few months.