What I Can Do

The Big List of Skills

I have this list. It’s a big pile of words. Here:

C#, .NET, MS-SQL, REST APIs, JS, JS frameworks (D3, C3, Kendo, Knockout, Angular, jQuery, Require, FontAwesome), HTML, CSS, VS, VSO, Azure, git, Trello, kanban boards, agile planning, spreadsheets, word processing, raster graphics (GIMP, Paint.NET, ImageMagick), vector graphics (HTML SVG, Visio), Code 39, HL7, Raspberry Pi, Ubuntu Linux, Node, Powershell, bash/tcsh, Axure, rapid prototyping, usability testing, VB.NET, VBA, VBScript, JScript, WSH, Perl, PHP, SSRS, MS Access, Crystal Reports, COM, DCOM, XML/XSLT, BaseCamp, LeanKit, TFS, ADO.NET, TDD, Wireshark, Content Management (WordPress, Drupal, PHP Nuke, DNN, MediaWiki), ISAPI, Legacy IIS, C, C++, R, Maple, Apache, Unix, DOS, MacOS, VSS, SVN, TL;DR, right?

I sometimes put this in my resume as a single section, but what does this all mean? Learning about technology has occupied a large part of my life, so there are stories behind each of them. Please read through if you would like a better feel for how I came to be the developer that I am today.

1979-1998, Nerdy Kid

2 TOTAL = 0
3 FOR I=1 TO 999
4   IF I MOD 3 = 0 THEN
5        TOTAL = TOTAL + I
6    ELSE
7       IF I MOD 5 = 0 THEN
8          TOTAL = TOTAL + I
9       ENDIF
10   ENDIF

Our family’s Apple IIe was a hand-me-down piece of junk, but it was functional enough for me to learn the rudiments of AppleBasic. Knowing that you can teach a computer new tricks by typing commands is a powerful lesson. Around the same time, we also learned Logo (the “turtle game”) in school. (I’m happy to see my own kids learning to program in Scratch at this age now.)

I grew up with the command line. My first copy of Windows ran “on top” of MS-DOS rather than the other way around. Learning how to open a console and get a listing of files is usually one of the first things I like to learn about any new system. It just feels comfortable and familiar. I can get around passably in 99% of the computers I encounter. I don’t think I’ve ever encountered a BeOS computer, but if I sit down in front of any Windows, Mac, or Linux device, I can start writing and running some form of code in a matter of minutes.

My first “real language” was as a teenager. I picked up C from a “Teach Yourself” book in high school, which allowed me to skip the introductory programming course in my first semester of college.

1998-2005, CS Student

My first attempts at undergraduate education were in Chicago, at IIT. I was a Computer Information Systems student for one semester there, then went back home to take some core courses at Wayne State College in my hometown of Wayne, Nebraska. I ended up finishing the vast majority of my degree over the course of many years at UNL in Lincoln, Nebraska.

I learned to really love experimenting with new languages around this time. I picked up a habit of working through online “programming challenges” around this time, and used the Project Euler problem #1 (the iconic “Fizz-Buzz” problem) as my basis for learning dozens of popular (as well as obscure) languages, programs, and platforms.

	.globl main
	li   $t0, 0		# int counter = 0;
	li   $t1, 0		# int sum = 0;
	li   $t2, 3     	# int three = 3;
	li   $t3, 5     	# int five = 5;
	li   $t4, 1000		# int stop = 1000;
	addi $t0, 1		# while (++counter != stop)
	beq  $t0, $t4, end	# { 
	div  $t0, $t2		#  if (counter % three == 0)
	mfhi $t5		#  
	bne  $t5, $0, five	#  {
	add  $t1, $t1, $t0	#    sum += counter;
	b    while		#  }
five:				#  else
	div  $t0, $t3		#  if (counter % five == 0)
	mfhi $t5		#  
	bne  $t5, $0, while	#  {
	add  $t1, $t1, $t0	#    sum += counter;
	b    while		#  }
				# }
	li   $v0, 1		# print int
	move $a0, $t1		#
	syscall			#

For example, this is MIPS assembly for PE#1.

I also learned an important trick that I encourage any would-be programmers to keep in mind: almost any question you can answer with code, you can answer with a clever application of a basic spreadsheet program like MS Excel or OpenOffice Calc. Don’t underestimate spreadsheets and the people who become experts at using them.

I picked up on Perl and PHP heavily at this time, played at consulting for web development, and learned how to write basic queries and design relational tables in MySQL. This, more than any of the academics I went through in college, was of huge practical value in becoming a professional web-based systems programmer.

I picked up my first professional job around this time at a banking software place named Automated Systems, Inc (ASIweb.com). I learned a lot about professional development practices, and that sustained me as I switched over to the healthcare industry for the next decade.

2005-2015, Healthcare Software Systems

I had the good fortune to work for people I really respected at Nebraska Heart Hospital (NHH/NHI) and Columbus Regional Health (CRH). Working for the healthcare industry really helped me connect my day-to-day activities with the value it brought to the end-users. Seeing forms, assessments, studies, calculators, and integration tools being used in the patient care documentation pathways made me feel warm inside. Most programming jobs have little to do with individual care, and it resonated with me. So I spent a decade working first at Nebraska Heart, and then for Columbus as a remote software consultant.

At Nebraska Heart, our IT department was lean and hungry for challenges. I thrived in that environment as budgets were often tight and creative solutions were encouraged. (Many of my strengths lie in seeing the boundaries of a problem rather than getting caught too quickly in minutiae.) I helped to develop and RFID-linked tracking system for paper medical charts while they were undergoing scanning and abstraction for implementation of electronic medical records (EMR). I kept updated the internal ticketing systems used by a handful of service departments, managed a sizable resource-to-group mapping system for login scripts, maintained a document scanning kiosk application, and built numerous individual integrations between disparate systems at the hospital and institute. It was a blast having such a variety of things to focus on.

I kept the flames burning for this same kind of work when I transitioned to a consulting role for Columbus Regional Health in Columbus GA. There I repeated my performance of building and maintaining the internal ticketing system, and built a variety of reports, documentation delivery/ETL, and system integrations. I really enjoyed the camaraderie of the IT department at both facilities. Good people all around. It was hard to leave, but it was definitely time to work locally again. I also felt that having been a programmer/analyst may have put me at a slight disadvantage in career potential as a programmer. Managing software environments is treated very differently in healthcare-centered places than in places where the technology takes a more central role. So I left the comfort of healthcare and have been searching for a new niche ever since.

2015-Present, Software Professional

I served a brief stint at Nelnet Business Services in Lincoln, NE. I did learn quite a bit about managing source control with git, Slack-integrated build notifications with TFS/VSO, and it was a friendly environment. I had a lot to learn about the day-to-day operations of a professional software environment. Sadly, I did not stay there for long enough to find out more.

Around this time I met Steph (we are now married), and she lived in Omaha. We had a whirlwind romance and I moved in with her despite having a house in the Lincoln area. I loathe the LNK/OMA commute, so I wished NBS fond farewell and found local work in Omaha at one of my all-time favorite companies, Farm Credit Services of America (FCS America).

Farm Credit Services of America is an outstanding place to work in Omaha, and I highly recommend it to anyone looking for a home as a developer. The culture is top-notch and they take excellence very seriously. I felt like I was able to meaningfully contribute fairly quickly, working on a number of complex integration questions with a third-party database application, providing deep QA on related non-database integration for the same app, and acting as a main point of contact for changes to a document conversion utility. This was all mostly SQL and C# with a little Angular thrown in at the end for good measure. I was happy to see that any concerns I had were taken seriously right away, and I feel like I could have stayed much longer but for the second episode of Clay Hates Commuting.

At this time, I was dropping my kids off at school in Lincoln, climbing in the car at 6am, dropping them off at their mother’s house at 7am, and driving back to work in Omaha by 8am. I would do it all in reverse in the evening. Leaving Lincoln for Omaha was not quite the cake walk I had hoped for. I was also having troubles selling my house in Bennet, all the while paying rent with Steph and mortgage on the vacant house. It was too much to handle. Luckily when we married in December of 2015, we had a conversation about how to handle all of these things and wound up moving in together at Bennet. Now all of our children attend a single school six blocks away and the only complication remaining was that I was again faced … with a LNK/OMA commute. :\

I began to look for Lincoln employment, and found that a friend of a friend was looking to start a healthcare analytics company. Wow! But sadly, it was in Omaha. So I was inclined to pass, but we instead worked out a deal for telecommuting, and I began scaffolding out the framework that would become their reporting and data-collection application for their start-up. And here I have been since 2015, pounding away at feature after feature, report after report, ever since. I’ve learned a ton about Azure, solidified my love of C#, SQL, and Javascript, and I have a newfound respect for entrepreneurs who can manage to take an idea and build a company out of it.