Wednesday, June 5, 2019

Sad moments

I find there are events that cause me to think about my relationship with my wife and family. In this case, I found out a little while back that a past coworker of mine lost his wife to cancer.  I was shocked and saddened.  

That in and of itself is enough to make you think of your own family but then he also shared his story of the previous few months before she passed.  In this case, the doctors indicated there wasn't much time so they made the most of it.

Roger blogged about some aspects of this


https://www.rlwhitcomb.info/

Specifically - check out the post: 

“Good” Days and “Bad” Days


I was encouraged by Roger, his wife and their love for each other and God.


Revelation 21:4 New International Version (NIV)

‘He will wipe every tear from their eyes. There will be no more death’[a]or mourning or crying or pain, for the old order of things has passed away.”

A life in Information Technology

I knew I wanted to work with computers at a pretty young age - around 11 or 12 years old.  My parents got us a pretty fancy computer and it was love at first byte.  Yes, initially I played games on it but it didn't take long before I wanted to know how those games worked - along with the computer overall.  It had a BASIC interpreter which I quickly figured out.  That was pretty neat for a while but eventually  that wasn't enough - it was pretty limiting and I really wanted to understand how things worked at a deeper level.  I was very fortunate that my family had the money to feed my need for computer knowledge and I was able to get the Assembler Language cartridge for the system.  I had a blast with that; I spent countless hours reading the manual and figuring out how to make the system do interesting things (along with many crashes). At one point, I started to write a game in Assembly Language but my parents asked if I minded if we gave the system to some cousins ("The Twins").  I didn't mind because I did want to do something nice for my cousins - but I was still a little bummed I wasn't able to complete writing the game.  

If you are trying to guess what the computer was - get your bets in now.  I should just hint that if you look at my post  regarding "My Bookcase - IT Related", you will find that I still have a couple on Assembly Language programming for it.

Ok, instead I'll spoil it - it was a Radio Shack Color Computer - initially with 16k memory which we upgraded to 64k later.  It had a 6809E microprocessor which was "accumulator based" versus "general purpose register based".  It may seem archaic now but it was pretty advanced at the time in some ways.  My biggest complaint with it was that saving programs to the tape deck wasn't always as reliable as I preferred.

Anyways, after giving up the computer my parents surprised me with a new computer that Christmas.  This time it was a more "serious" computer - running MS-DOS and sporting a huge amount of memory - "More than anyone will ever need". I'm sure someone will recognize that comment.  Initially I played some games on it as well and then I started to work with the BASIC interpreter that came with it.  And repeating history, I wanted to understand it better and do more with it.  This time I spent some saved-up money and bought the Microsoft QuickC 1.0 compiler.  That was pretty neat - again I spent countless hours learning C and figuring out how to work with Assembly Language on it as well.  By this time, I knew that when I went to college I wanted to study computers.

There is a bit of downside of all this "IT" at an early age though - I didn't play outside as much as I probably should have.  I didn't socialize with other kids as much as I probably should have.  I don't think it had a serious impact but if those days had the same level of technology as we do now then I wonder.  I see how hard it is for my own kids to disengage from their "toys" and you can see what I consider an obvious impact on kids overall now days.  Many have terrible social skills and can't spend more than a minute without checking their phones, etc.

Back to the program, so to speak..  college came around and I studied computer science - specifically "Computer Science - Theory and Analysis".  This was the major which included a little more on the engineering side - which allowed me to learn more about microprocessors, micro-architecture, memory systems, etc.  I really enjoyed learning what made things tick :). It wasn't an easy major and I tended to pick hard classes too.  I really enjoyed the compiler, data structures and a couple of the electrical engineering classes along with some others.  At one point, I had hoped to find a job writing compilers after college but that didn't pan out - I guess I needed more than just a "token" effort.  During college I spent countless more hours finding interesting software to (try to) compile and execute on my computer or on one of the computers at college - mostly VAX 11/780, 11/750, 8600  (each running VMS) and DEC Ultrix based systems. I enjoyed using the VAX systems - a little bit too much one semester when I burned through my allocated time while playing with recursive algorithms.  Fortunately, most of the UNIX based systems didn't use "CPU time accounting". 

A fun tidbit is that the OpenVMS operating system is still available and they are working to get it running on x86 based hardware.

I got through college and was tired of the snow in Michigan so I decided to move south (and found an IT job). Initially I was going to try for South Carolina but I blew the one good interview opportunity I had - I was SO nervous I could hardly talk.  That was with an insurance company, I think.  I still don't like interviewing but I am a little bit better now.  After that, I set a deadline to stop applying for southern jobs from up north. My several month deadline was reached and with a bit of trepidation in my heart I told my parents I had to search from down south.

I packed up my car and a few belongings along with a bit of cash that my parents gave me and headed for Durham, NC - the Research Triangle Park (RTP) area was a good area for technology jobs.  Back then it was wild and exciting being on my own.  I didn't have any real plan for the most part and just went with the flow.  I ended up renting half of a duplex with a leaky roof and a "see the ground below" type floor.  For $200/month I had all the mice I could poison along with a wild bamboo forest-like backyard. I built a bookcase with some of that bamboo and toted it around from place to place for a number of years.  I also had a somewhat strange neighbor lady who was home bound and had "the worker" people bring her vodka to dull her problems. I quickly found a job through a temp agency working at Northern Telecom (NT) - doing operations work initially.  This was ok for a while - I was working 2nd and 3rd shifts and starting to think about what I wanted to do longer term and how to get there. I had hoped that the temp agency job might allow me to get in as an employee of Northern Telecom but that never happened.  After a while, I ended up at a different temp agency again working for NT but this time in their lab - patching telecom switch software.  Not an exciting job and not the grand "programming" position I was hoping for.  I did some automation work to help reduce the manual labor while there but it wasn't much and was hampered by tooling issues.  At NT, I did get experience on different hardware at least.  I had a tiny bit of exposure to their mainframe but most of my time I worked with their HP 3000 MP/E systems, some other UNIX systems and some of the various telecom switches.

After a while, I started getting pretty tired of working 2nd and 3rd shifts and not having the "real" programming job I wanted.  I probably could have looked more places (probably not near RTP) but I just got a bit down over the way things were working out.  Around this time, I thought about trying to find something in Michigan again - I hadn't seen my parents all that often or the rest of my family.  I ended up finding out that a job was available where my aunt worked - it was a "PC Programmer" position.  When I put in my notice, my NT supervisor offered me a whopping job offer.  It was $50k a year patching live telecom switches (no longer a lab environment).  Even though that was a huge pay increase from my $12/hr temp job I felt it was a dead end from a career standpoint.  

I ended up getting the PC Programmer job at Merillat Industries. My grandparents lived about 20 minutes from Merillat and they were going to spend the winter in Florida about then so they offered to let me house sit and take my time finding an apartment.  I thought that was a pretty neat setup.  My Aunt lived across the street though and later she described the kitchen as often "a shamble of dirty dishes".  It didn't seem that bad at the time.  Now, there was one big oddity about my grandparents cottage on the lake - when you do laundry, you have to put the drain hose into a drain hole in the floor otherwise.. well, lets just say I was thankful that my aunt and uncle had a spare fan or two..  Loved them more than ever right then. As for the job, it was "ok" - working on an order entry / cabinet configurator system written in MS QuickBasic. It had seen its day - as the amount of data increased, the method of getting around out-of-memory errors was to convert various large lists containing string types over to numerical types where possible.  Yes, that was how it was done for quite a while.  I could not convince them to move the system to run on Windows (vs MS-DOS alone) and support  more current hardware but I eventually convinced them that I could rework the system in C++.  I did that from scratch and it didn't take a terribly long time with the Watcom C++ compiler.  It was much more memory efficient and a faster interface.  Still not fancy by any means though.  Of course, if I got hit by a bus or ..  I eventually decided that I had reached the peak of what I could do there and I was really hating the winters in Michigan again.  After you fall enough times when older (relatively speaking), the excitement you had as a kid playing in the snow wears off. And of course, I am in my early 20's in a town of around 10-15k people in farm country - I was getting a bit bored and didn't like having to drive 1-2 hours to larger cities. I did enjoy being relatively close to my family though.

Regardless, I ended up with a job at Circuit City in the Richmond, VA area. This time I was working on a merchandising app that had a ton of interesting technology. I worked with -  C++, Oracle, Sybase, ObjectStore DB, NT4 and ClearCase.  This was a huge opportunity for me.  I did enjoy it for a good while - until odd decisions the company was making started to become more apparent.  As we got farther into the development of the application, some major oversights started to come up - I would ask questions and the responses were "It wasn't written into our contract.".  Ugh, ok?.?  Around this time, the DivX group in Circuit City was operating and I decided to go there in the hopes of finding a better long term position.  The pay was an ok base + opportunity for stock when/if they went public.  I was there a very short time before realizing that even though they were operating at a crazy pace - it wasn't work that moved them forward.  Many business issues were obvious and it was just a matter of time before the other shoe fell. I learned a lot about office politics while at Circuit City and DivX. 

A friend from my Circuit City team had left and gone to Platinum Technology which had a Richmond office.  He informed me of an opening and I interviewed there for a position in the Enterprise DBA tools group.  This was initially a DB and C/C++ position which was a good fit for my background at that point.  I got the job and worked on a number of different applications across a number of databases and platforms. I also got to do a bit of parsing work which I also enjoyed back in college - this time using ANTLR.  I worked with a number of databases - DB/2 (mainframe & LUW), Sybase, SQLServer, Oracle, a bit of Informix and Ingres (the DB almost no one even knows of).  A good bit of the work I did involved translating between UI actions for DB operations, intermediate representations of those actions and concrete SQL/DDL implementing those actions. The tools were all meant to simplify the lives of DBAs.  

Things changed though when Computer Associates acquired Platinum Technology.  This was my first experience with that process.  It was also the first time I had to endure rounds of layoffs.  I got through the layoffs (maybe by a flip of a coin - not sure) but things never went back to a good "normal".  I did end up working on a portal which integrated a number of the products into a web accessible system.  This was my first experience dealing with onshore vs offshore type staffing too.  Offshore did the UI development and I and others integrated the C/C++ backend apps into the Java based portal.  It was interesting to debug the JNI calls that were resulting in segfaults - debugger technology has improved over the years and I don't see much JNI work anymore which is probably good.  When the government started to hand out indictments to a number of C-level type management people, I finally decided to leave.  I just couldn't justify staying there any longer. I had been with them for a good while by this time though.

I interviewed with the VCCS (Virginia Community College System) and initially didn't get the job.  A few weeks after that, I got a call back and they offered me a position.  This was a big change - now I get to "know the customer" a bit and am involved in all aspects of things.  This was a place where I would end up wearing a multitude of hats - devops and full-stack might not have been popular terms when I started there but defines much of what went on.  I got to:

  • reverse engineer internet facing systems (Online Admissions)
  • work with various combinations of design/implement/debug/support/deploy internet facing systems (Online Admissions, VA Education Wizard, etc)
  • help design/develop/support an identity management system/integrations(MS FIM, etc)
  •  help with tuning those and other commercial products (Blackboard).  
  • deal with security issues - hacking, etc.
  • etc
I worked with awesome DBAs, network folks, PeopleSoft developers/operations/analyst, security people and many others. Now, in 2019, I recognize just how much the VCCS IT staff has accomplished with a relatively limited budget and staff size when compared to my recent employers. No organization is perfect but the people working at the VCCS can be proud of how well they are supporting the students.  I miss the relationships from this job.

Here I worked with mostly Java and Oracle as the core technologies but also used PeopleSoft, MS FIM, MS AD, VMWare, JavaScript, Tomcat, various integration technologies and a ton of other open source technologies to meet the demands of the 350k+ community college students along with the K12 students related to the VA Education Wizard.

Around the 10 year mark, my family and I (ok, really wife and I) decided to make a change.  I was feeling it was time to get out of my comfort zone a bit again (not quite like my early 20's though but close). We had talked about moving to Florida at various times - my parents had been doing the snow bird thing by moving between Michigan and Florida for a number of years and they eventually went full time in Florida.  For many years, we only saw my family a couple times per year.  My wife's family was around Richmond though.  This was a tough choice but we finally decided to make the leap.  The condensed conversation was something like this:
Wife: Honey, it is about 2 weeks before school starts in Florida. A while back you mentioned wanting to move there - were you serious?
 Me: Yes, I would. It would be nice being closer to my family for a while.
Wife: Should we do it now? We might be able to get the kids into the school at the start of the year. 
Me: Ok, let's do it.  Here is the plan; find an apartment and you and the kids move down now and I will work on selling the house and finding a job. Once I find a job, I'll come down and hopefully the house will sell shortly after. If I can't find a job then we'll consider it a long vacation for all of you and move you back up. 
Wife: How should we go about telling the kids?  
Me: Hm, they are in Florida already with Gma and Gpa.  I guess we call them and just ask them whether they want to come back home first or stay there and wait for us.
Wife: You know they may not take it well.
Me: I know.  One will take it better than the other but which way it goes isn't clear.
Wife: Shall we call them?
Me: I guess.. do you want to tell them?
Wife: No, go ahead and do the honors.
Me: Hm, thanks.
Wife: No problem.
Ring ring ring..
Me: Hi kids.  We got some news.  So, how are you liking Florida?
Kids: Great!
Me: That's good, we decided to move down there.  
Kids: Silence....  silence..
Me: so, since you are there you have the option of staying and waiting for us or you can come back and get your belongings and say some goodbyes. Let us know which option you want.
Kids: Your serious?  .. the break down began..
So that is what we did.  My wife found an apartment and we got the kids into the schools - nothing like getting signed up 1-3 days before school starts and moving into an apartment the week before.  I made a few trips with various belongings and finally got the house on the market. 

A couple of months went by and I ended up with the opportunity to work for either a telecom company or a company that dealt with large money transfers.  I had never heard of the "money place" before and knew no one there.  The father of someone my daughter knew worked for the telecom in Virginia and liked it.  I prayed on that one but didn't wait long before flipping a coin.  I felt I needed to get to Florida because everyone was desperately missing me.  

When I interviewed with the telecom, I only phone interviewed - the manager was in Ohio.  I really liked him though - we talked for a long while on technology and such and really hit it off.  I didn't ask some key questions though. I decided to take the telecom job and it was ok.  Before my first day, I didn't know that NONE of my team was in the Tampa area.  My team was spread over multiple countries and continents and I only knew 1 person - a person my manager worked with before who was asked to show me around for a few days.  That person ended up on vacation after day 1 and I ended up having to "make friends" immediately so someone would be willing to let me in since I wouldn't have a badge for a few days.. badge was "in the mail" and it turned out that it went to Ohio where my manager was instead of Tampa to me.. Arg..  Not off to a good start.  There were a lot of hurdles at the telecom but I did learn a lot.  Mainly, I learned a bunch about AWS and Cloud Foundry and to a lesser degree about the Neo4j graph database.  I implemented a number of "microservices"  that mostly involved Oracle and worked with Jira. We used some "agile like" practices.  Lots of technology but more barriers to getting things done than I could have imagined - tech debt from too many acquisitions for the most part.  I was really hating the fact that I was going into an office where I really knew no one and didn't really work that closely with anyone there.  Once the telecom announced "voluntary separation" packages - I didn't feel very confident in our org (which didn't seem to be making much money) so I decided to leave on my own terms instead of waiting to be part of a market flood of developers if they decided to do actual layoffs later or sell the org (which I found out later had almost happened before).

A recruiter with my now current employer (an analytics/data type company) had touched base with me a few times and finally convinced me to interview with them.  Have I mentioned I really don't like interviews - I'll have to post my thoughts on current interview practices some time.  Anyways, there were a few issues with timing for some of my interview panel so I ended up coming back a couple times along with a phone interview.  For the in-person interview, I met one of the VP's and really liked him - reminded me of someone I worked with at the VCCS; very smart and well spoken. It sounded like many things were in the midst of change and there would be opportunity to do both development and architecture work so I was happy with that.  They were in the early stages of migrating to the cloud as well.  My only real concern was distance - it was about a 1 hr drive during the interviews.  I had asked the recruiter about telecommuting but I never heard back.  I didn't feel too concerned since many places here seem fond of telecommuting.  I did get the job.  During the first 6 months, I spent a good amount of time finding a place to fit into the team.  When I joined, the team was trying to get a release deployed that had taken a year of effort.  They were also under orders to implement a significant amount of testing. The corporate culture is way different than anywhere else I've worked - they try hard to give it a family feel.  They like get-togethers after work and often enjoy lunches together.  There were down moments though - a couple VP's were let go and both were very smart and very nice to work with; both will be missed. As for Technology, there is a lot going on.  Converting from on-premise to cloud solutions creates a lot of opportunities and challenges.  From an opportunity standpoint, I've learned significantly more about Kubernetes(+ AWS EKS), Docker, AWS Redshift data warehouse, AWS ECS, Terraform and service meshes.  There is other stuff too but these standout at the moment. On the challenge side, we are finding that not every technology lives up to its hype - every major technology needs testing to verify it's up to the task. This isn't unexpected in general although there are things that I thought should work better than they do right now.  Technology doesn't stand still though so we will see what tomorrow brings.


Proverbs 16:3 New International Version (NIV)

Commit to the Lord whatever you do,
    and he will establish your plans.

Where are your roots?

Ok, the title of this is a bit misleading.. hope you forgive me on that one.

So the home owners on our street back in the mid/late eighties had the option to either have city sewer installed or to use a septic tank and drain field.  They chose to stick with septic tanks and drain fields - which millions of people still use without significant problems for many years.  Unfortunately, the time is up on our drain field - we started to get backups on occasion.  Being that our drain field sits (sat) between 2 good sized oak trees - it comes as no surprise that the septic people say we have root issues as the root of our issues :)  I'm still hoping to find someone that does drain field hydro-jetting and that it takes care of our issues.




My main fear at the moment is that we will end up killing the other oak out front.  I'll be very bummed if that happens.  If we get the drain field hydro-jetted, I think the tree will be ok. If we have to replace the drain field I don't see anyway of avoiding killing it.  It is within a couple feet of the driveway on one side and the drain field lines start about 10' off the other side.   I'm partly tempted to go ahead and plant another shade tree now but it will just cause us (or someone) the same issues later.  

I find the verse below quite true but I'm often unsuccessful at applying it.

- Scott


Matthew 6:34 New International Version (NIV)


34 Therefore do not worry about tomorrow, for tomorrow will worry about itself. Each day has enough trouble of its own.