Employment History
(revese chronological)
Full stack developer, from UI to DB and everything in between. Started by writing custom software in .NET, primarily e-commerce.
Evolved over time to contributing features and fixes to e-commerce platform AspDotNetStorefront and Vortx's Editions - verticals targeted at specific industries written on top of AspDotNetStorefront. Primary focus on integrations and implementing service based architecture for legacy refactors and new features.
Tools: Visual Studio, Visual Studio Code, git, GitHub, Azure Dev Ops, SVN, Tortoise, Beyond Compare, SSMS, Co-Pilot (other LLMs), Firefox (with Developer Tools), Postman/Insomnia, Seq, Docker, Octopus Deploy, TeamCity, Notepad++, Selenium, IIS, MultiCommander, Teams, typical office software.
Technology: .NET (.NET Core), C#, WCF, ADO.NET, ASP.NET MVC, EF (EF Core), JavaScript, jQuery, SQL, LINQ, LINQ to SQL, LINQ to Entities, Dapper, HTML, CSS, LESS, Powershell, JSON, XSLT/XPATH, Serilog, Javascript framework du jour.
Project A, Inc., Software Developer, leadership Dena and Jim Teece (1996-2006).
General purpose software developer. Primary developed websites, but desktop applications as well.
Tools: TextPad, IIS, SSMS, CVS, Access, Norton Commander, Netscape Navigator, IE, office software.
Technology: Classic .ASP, JavaScript, HTML, CSS, VBScript, SQL, Visual Basic.
Started out performing office tasks, but moved on to helping support development of GRASP, their multi-media programming language.
Tools: Mr. Ed, Norton Commander, Paradox, CompuServe.
Technology: C, GRASP.
Freelancing, with Doug Zeffer.
Created software for a recipe kiosk for use in grocery stores.
University of Oregon Camp Adventure, Camp Counselor, leadership Dr. Christopher Edgington, with Laurie Schaaf.
Developed and implemented a "Computer Camp" for children of service members and employees of Yongsan Garrison in Seoul, South Korea.
Photo & Sound, Clerk.
Mass assembled computers, deployed and networked them on site.
Montgomery Ward, Data Entry & Customer Service Clerk, leadership Walt Danowski.
Data entry and credit approval.
The Journey
I am a second generation computer programmer. My father started programming mainframes in 1966, through to retirement, for the banking and shipping industries. He programmed in assembly language and COBOL, and could read core dumps like it was English. My sister was also a programmer and taught programming as well.
My first job was as a Credit Approval Clerk at Montgomery Ward, working thirty plus hours a week while I was in high school. I was the first male Credit Approval Clerk at the Hillsboro branch. While not on the phone we did data entry, and through this I became a proficient touch typist and gained a lifetime love of mechanical keyboards.
Early on I wasn't interested in computers and programming. Fresh from graduating from Benson Polytechnic I enrolled at Portland State University as an engineering student. But after one term I decided the program wasn't for me and switched to English with an emphasis on writing. I won a few creative writing scholarships, and when my best friend Mike Masat told me he wanted to go to University of Oregon, I used the money to go with him.
Montgomery Ward was kind enough to transfer me to a position at their Eugene branch where I worked the customer service desk. As is frequently said, everyone should work with the general public at least once, and I paid my dues and gained some wisdom. I even had someone take a swing at me over the counter.
While I was meandering through getting an English degree, working and going to school in opposing amounts based on my savings, my roommate at the time purchased a Mitac 8088 PC. He had no idea what to do with it, and neither did I, but I could take a crack at getting it figured out. It only took a day before I was hooked (it took longer to get the PC setup). Eventually I got Princeton Graphics and Lotus 1-2-3 installed, and even wrote a simple menuing system so you didn't need to use DOS commands to run programs and navigate.
Soon I was utterly fascinated by computers and software, and I wanted my own PC. I sold a good portion of my comic and stamp collections and bought an IBM PS/2 Model 30 286, for $1800, with a 12" monochrome monitor and a Model M keyboard. They keyboard was worth it alone. I still have it.
I spent hours tinkering, neglecting my studies, learning the ins and outs of PCs. I got a dot matrix printer and started using Microsoft Word to write my English papers, as well as becoming an editor for others. I subscribed to various computer magazines and became the "computer guy" of our group. Eventually I was setting up and maintaining the computers for most of my friends.
My girlfriend, Laurie, graduated and was about to go on six months of practicum overseas. I had little interest in college anymore, so when she left I moved back to Portland and got a job at Photo & Sound. There I helped mass assemble PCs for various large corporations, deploy them on site, and network them. These corporations frequently had us install software for them, and I became exposed to various software development tools and languages. I purchased one myself,
REXX, and got the Cowlishaw book as well. I was enthralled all over again. I soon started writing little utility programs to improve my job productivity as well as just to tinker. I started to think I wanted to be a professional programmer, and set that as my goal.
When Laurie came back we lived in Portland for awhile, but then we got an opportunity through her department head at University of Oregon to help run summer camps on military bases through a program called Camp Adventure. Laurie and I were tasked with developing a computer camp, the first Camp Adventure would offer. We worked up a program and that summer left for Yongsan Garrison in Seoul, South Korea. It was an great experience and I loved Korea and its people. After Yongsan there was a one week camp in Hong Kong as well.
We had an opportunity to travel when the camps were over and Laurie and I chose to explore Hong Kong, Thailand, Malaysia, and Singapore. Before we left I purchased a book on programming in C. Along with Len Deighton novels I picked on up the road it was my travel reading for the entire trip. By the time we got home I had a working knowledge of C.
Back in the United States we decided to move to Laurie's home town, Ashland. There I began studying programming in earnest on my own time, mostly using Borland Turbo C.
I was fortunate to be hired at Paul Mace Software as a clerk. Initially I performed office tasks, but after showing aptitude, I was given the company's Paradox database to manage. In a few weeks I had improved the various business applications and increased database performance. Paul Mace's primary product was GRASP, a scripting language for working with graphics and making presentations, and eventually I helped develop some of the support applications for GRASP, primarily in C, as well as providing support to developers on CompuServe. Paul and Kathleen were exceptionally helpful in providing me opportunities to grow and learn, and their lead developer, Max Templeton, provided me insightful and patient instruction. I am indebted to them for the later success I experienced.
Around this time I purchased a copy Borland Delphi, creating my own productivity applications for use at home and work. Delphi was by far my favorite development tool. The IDE and GUI builder were excellent, flexible, and easy to use, and Object Pascal was much better than the other languages I used on a daily basis.
A couple of my friends, Jim and Dena Teece, ran a software development company, Project A, and Jim convinced me to join their team. Project A gave me the opportunity to work full time as a programmer. I flourished there, learning various new technologies, and working with some of the most capable co-workers I have known, many of whom became my friends. I also started working with this new nifty thing called "the Internet." We developed web sites using Classic ASP and Visual Basic, backed by Microsoft SQL Server, and Project A's website creation system became Site-in-Box, which is still in use to this day. I had other duties, such as tech support for Jeffnet, helping maintain desktop applications written in Access, and whatever else might be needing doing, including onsite deployment of computers and software. Jim and Dena provided an environment for growth, and I learned much at Project A.
One of my friends from Project A, Josh Belden, had since moved on to another company, Vortx, and was working in Microsoft's new technology, .NET. .NET seemed like the future for Microsoft focused shops, and I wanted to work with it myself, seeing it as an opportunity to further my development as a programmer. After carefully ruminating on it I decided to apply at Vortx and was accepted. Leaving Project A after ten years was the hardest professional decision I ever made.
At Vortx they definitely swam in the deep end of the pool. I entered into the most intensive program of self-study since my early days. I delved into C# and .NET, and applied the lessons learned from McConnell's
Code Complete and
Rapid Development. I had always enjoyed reading programming books,
Bentley's Programming Pearls, Hunt and Thomas'
The Pragmatic Programmer, Brooks'
The Mythical Man Month, and many others, and at Vortx those methods and concepts got put to use. Soon I was fairly proficient in C#, and found it to be my favorite programming language, supplanting Delphi. My co-workers, and particularly Lead Developer Josh Belden, were immensely helpful.
Early on at Vortx we had the need to develop an e-commerce website, but our current e-commerce offering was deprecated, so I was asked to research and choose a new platform. I came upon an e-commerce website package called AspDotNetStorefront, and other than it was a mouthful it seemed good. It was targeted at developers, built on .NET, and included a lot of features we needed. Little did I know at the time that Vortx would expand its use of AspDotNetStorefront to become the primary focus of the company, and then eventually Vortx would purchase AspDotNetStorefront.
After aquiring AspDotNetStorefront we discovered that the code-base had seriously deteriorated and required some immediate triage to expunge the most serious bugs. Our early releases were about getting AspDotNetStorefront solid. AspDotNetStorefront was written in .NET Web Forms, and through the championing of Scott Friend, a few years later we moved the front end to ASP.NET MVC. This rewrite allowed for later success with our Editions. ASP.NET MVC, with C#, have become my all-time favorite development technologies, particularly now with the advent of .NET Core.
Through the years at Vortx I've progressed, as Vortx has progressed, from developing custom one-off solutions to maintaining Editions - verticals specific to an industry. Of the development staff I was the last to move to the Editions, as I had an aptitude for being able to deliver a diverse number of solutions with varied technology which lends itself to the challenges of custom development. I have also developed a number of integrations for AspDotNetStorefront and our Editions. Usually these integrations are based on exploratory work I have done on my own time that I then bring to Vortx to polish.
Now eighteen years later I work across the full stack, from the database up through to the UI, adding features and fixes to AspDotNetStorefront and our Editions.
Vortx maintains exceptionally high coding standards, I believe much higher than the industry at large. This was the result of prolonged effort by our Lead Developer Josh Belden and our Lead Architect Jason Addington. Josh and Jason are no longer at Vortx, but the culture they instilled lives on in the quality of code I create and deliver, and I am thankful for the high standards they set.