I have been working at Seabrook Station for 32+ years.  I started when it was still under construction in March of 1985.  I was hired as an application developer.  Our systems were on an IBM mainframe located in Manchester, NH.  I thought the job would become static after the plant went online, but I was wrong.  Actually working there has allowed me to work with all kinds of technology as the years moved on.

I setup the first set of networked PC’s on site.  It was used for word processing using Ethernet, a 3Com server, IBM AT computers, and WordPerfect (DOS).  I then setup the next network using Ethernet and a Novell server.  The site moved to Token Ring as OS2 began to become available, only to switch back to Ethernet about 10 years later.

One of my duties was to be the system administrator of our CAD system which was based on a VAX.  It was an Intergraph 250.  Since I was already responsible for our VAX, I also inherited the project management system (VAX 780) and our VAX cluster which we used for word processing.

I was part of a team setting up a PC LAN for a pilot group that would decide if we used Windows 3.1 or OS/2 on the desktop.  Windows 3.1 won on the desktop and we used OS/2 for the server.  As we moved to a client server environment and some apps moved to the browser our need for the IBM mainframe lessened until we actually were able to retire it about 10 years ago.  Around 1998 we moved from OS/2 to Windows NT for our PC servers.

Our environment has also changed as our owners changed.  Public Service of NH originally was the majority owner until they sold to Northeast Utilities.  In 2002 we were sold to Florida Power & Light.  The group I work with now is responsible for several fleet wide nuclear applications.  Since 2002 the fleet has expanded from 3 nuclear sites (2 in Florida, 1 in NH) to 5 sites by adding one in Iowa and one in Wisconsin.

Our current application development function can best be described as being the glue between various vendor applications.  Either to provide functionality that is missing, working around problems with the application, or interfacing between applications.  That has been pretty much the theme for my 32 years at Seabrook Station.  Having to constantly learn different technologies has been one reason that I have enjoyed my time there.

The development road has been just as diverse.  The first thing I did at Seabrook was resolve problems with Cobol programs that couldn’t handle the amount of data they were being asked to process as the plant was recovering from a construction shutdown.  They kept getting SOC 7’s and I had to modify them to be able to deal with large amounts of data.

After that I switched to working on CICS Act 1 based purchasing system that we installed on our mainframe and had to customize.  After about a year I moved to our “Information Center” and worked with PC’s because of my past experience.  I then started working in dBase and Turbo Pascal on the PC.  I even taught a dBase class at one point.  As I started to work more on the VAX systems I started working with VMS DCL and doing VMS C programming.

I started Windows programming with Version 2, but really didn’t get going until version 3.0 using Borland C.   I actually used Windows 1 briefly in 1986.  As soon as Visual Basic came out I recognized the productivity gains from using it and then using C or C++ to write DLL’s as needed.   When VB 3.0 came out I stopped working in C++ for UI completely.

At one point I was responsible for getting our Windows 3.1 workstations (served from the network) up and running.  I was responsible for the logon script and some utilities used during the logon process.  I had to create a utility to manage our TCP licenses (we could only have 250 concurrent users) and to allow our users to select the screen resolution as they started up Windows.  I wrote those using C++ and Visual Basic for DOS (anyone remember that).  Our environment allowed users to roam and the screen resolution selection app needed to recognize what was available on that workstation and present a list of options when the user logged on.  This was in the early 90’s and I think Microsoft was ahead of itself by allowing the network install and we took advantage of it to provide a roaming ability for our users.  This mindset is still with us today and our users expect it.  Our parent company still does not support the level of roaming that we had for almost 20 years.

I have explored .NET since it was beta and for years found no compelling reason to switch to it from VB 6.  In order for me to switch  it needed to be more productive.   What has happened is that my toolset has gotten fragmented and there has been no solution since VB 6 that provides the ease of use and productivity of VB 6.  As VB 6 has gotten old I have moved to PowerBasic as my go to language when I need to get things done and one off throw away projects.  The complete development environment for it, I use FireFly as the IDE, works off of a USB drive.  The EXE’s it creates work without requiring any special runtime or install.

I started learning Java in 1997.  I tried to see if it could become my one language for web, desktop, and console.   It couldn’t and it’s design of trying to isolate you from the physical device went against what I needed.  I put it away and didn’t use it much until 2008 when I started supporting an interface to our Project Management software.

For .NET languages I have settled on C#, it is easier for me to flip between Java and C#.   For larger standalone desktop applications I use C# and for web I use Java. I am now doing Java and C# for development, using languages like Python, Powershell, Perl, and VBScript for scripting, and PowerBasic when things need to get done right now or it needs to run without any dependencies.

Between 2010 and 2012 I have moved to using Mac’s as my personal workstations and servers. While my job involves Windows, Linux, and AIX, my personal setup is Mac based. I run Parallels to run Windows in a VM. When working from home I run Windows in a VM to do all my Windows stuff from within that VM. MacOS and Parallels actually makes it quite easy to integrate that environment with MacOS running each Windows application as it’s own window on my Mac desktop.

I am still looking for a language that lets me do all of the things that I need to do, but I still haven’t found it. C# is close, but I kind of wish that I could use Swift.