Techie Coder Dad Fullstack .NET Software Developer & Family Man

My Life, In Code

Hi there. I’m the Techie Coder Dad, sharing coding secrets in this time in history. I am a self taught programmer who enjoys self-learning and reflecting. In this first post, I’ll share with you my background in technology — my developer origin story.

Early adopter: computer games

It started back in the early 1980’s. I was just a kid at the time. My dad worked at the local high school. He taught “remedial English”. He heard about using these new computers, the Apple ][+. He thought they would motivate his students, so he successfully lobbied for the school to buy some. Turns out that the person most motivated by those fancy Apple computers was — my dad. He really stuck with it and developed our high school’s computer program and curriculum. Unlike many of my peers, I was exposed to computers at an early age. My dad wanted me to learn a little about computers, so he let me play games and experiment on them. Woo hoo!  

Pascal

Fast forward to the late 80’s when I was in high school. Like many teenagers, I went through a rebellious phase and avoided my dad’s Basic and C++ computer programming classes. I did, however, take the AP Computer Science in Pascal class because it boosted my GPA for college admissions — and because my dad didn’t teach it, ha! My confidence for programming came from this class. Not just because I enjoyed it, or the fact that I got an A and passed the AP exam with a good score — it was because I clearly remember occasionally doing better than the “computer nerds” who would constantly talk about programming. I left that class with the confidence that “I can do this!”  

Communication Skills (College)

Degrees earned:

  • B.S. Psychology
  • Multiple Subject Teaching Credential 

Even though I had confidence in my technology skills, I still had to try other things when I got to college. I briefly tried engineering and then shifted to a more people-focused degree. I graduated with a B.S. in Psychology, and then earned a certificate in Education. With all this, I matured and discovered a wonderful relationship with my computer loving dad. Ya! 

Visual Basic 6

Certifications earned while training for a career:

  • MCSD on Visual Basic 6 (Microsoft Certified Solution Developer)
  • MCP + SB (Microsoft Certified Professional + Site Building)

Finding work after college didn’t pan out the way I hoped. When I desperately needed to find a new career, I decided to return to that programming “thing” which I was so confident about in high school. I found a local tech vocational school and enrolled.  The only programming they offered was Microsoft Visual Basic 6.  Since their “teachers” were all focused on IT, I had to self-learn programming with their guided tutorials.  The school was a major waste of $4,000!  The thing that wasn’t a waste: it motivated me to learn valuable skills and pass enough certification tests to start looking for work.  I took some resumes to a career fair and landed my first software development job.   

Classic ASP, SQL Server, SDLC, Business Analysis, QA, ASP.NET, Scrum, Visual Studio

Certifications earned during my career:

  • MCSD.NET, Early Achiever (Microsoft Certified Solution Developer)
  • MCAD (Microsoft Certified Application Developer)
  • MCDBA (Microsoft Certified Database Administrator)
  • Certified Scrum Master

That first career job was at a local consulting firm.  I worked on a variety of projects, learned ASP, SQL Server, IIS, business analysis, and more.  Unfortunately, the consulting firm went out of business after a couple years.  I found another position at a local semi-governmental agency as a staff developer.  After a couple of years, I wanted an opportunity to learn .NET and work in a more challenging environment.  My dream came true! I was hired at Vertigo Software, a company that proudly built several best practices apps for Microsoft.  It was an invigorating experience!  Among other things, I worked on Pet Shop 4 (an article published in the MSDN which showcased ASP.NET 2.0 features) and the Digital Locker (part of the Windows OS). I felt like I contributed to something big and meaningful in technology. It felt like an exciting Silicon Valley kind of place!  

The company even bought our favorite cereal and allowed us to play video games. My girlfriend (now my wife) thought it was a dream job! Though the work was great, it took a toll: my commute was over an hour, in the car, each way. I took a break from my software career to explore real estate and be closer to home.  

Silverlight 

A funny thing happened. During this short phase, several of the “real estate investors” I met were very interested in my software background and kept pitching development projects to me. This was a clear sign to go back to my dev career. I dabbled a bit with Silverlight, just enough to make a functional game — and to later feel totally burned by Microsoft for abandoning this technology that I invested so much time to learn.  

Design Skills (Illustrator & Photoshop)

I also took advantage of this time off work to take courses at my local community college. My goal was to improve my artistic skills (I’m such an engineer). In one semester, I took 21 units of art and graphic design classes. I earned a 4.0 GPA while learning Adobe Illustrator & Photoshop, and learned a new way of looking at art and life. So glad to have explored that side of things!  

Objective-C

During the same time period, I married a loving and dynamic professor and public servant, who filled our lives with events and much more. We shared the language of education (remember I got a certificate in Education)! We also got our first iPhones. Seems like we used them for everything, ha! Our first child arrived and we stored children’s lullaby songs, took a million pictures and videos, and sent S.O.S. texts to other parents when possible. I picked up Objective-C and made a timer app and started another game. Since my wife had a great job, we decided we did not want child care and I would take care of our baby. My primary “job” became stay at home dad, while also supporting all the public events our family was involved in. I quickly learned that taking care of kids and being a public servant family is more than a full time job. I didn’t have enough spare time to seriously publish apps.  

MEAN stack 

Along with having a big life full of activity, we wanted a healthy lifestyle. So to provide healthy food choices for our family, I got really into gardening, permaculture, and sustainability. They are hobbies I pursue with my kids. We grew summer and winter vegetables in the garden, composted, added solar panels to the house, added a rainwater harvesting system, bicycled a lot, grew sprouts in the kitchen, organized a solar cooking club for a summer, and made several small lifestyle changes to reduce consumption, like using cloth napkins and wool dryer balls. I even organized a permaculture guild where we met monthly to discuss ideas to help people live “off grid” in the suburbs.  

By the time my second daughter was in preschool, I improved my JavaScript, learned Mongo and the Meteor full stack JS framework with a goal of making an app to help design food forests. However, like before, full-time parenting meant not enough time to commit to professional-level programming.  

ASP.NET Core

A few years later, my wife was invited to run for political office. I and a whole community went all in to support her. Felt like we used all my skills on the campaign. In addition to other roles, I handled her campaign’s needs for data analysis, social media, website presence, graphic design, and technology support. Thanks to many talented people’s help, she won by a landslide!  Yay! 

It was neat to notice how programmer skills can be used to win elections. The experience motivated me to build a political campaign app. I learned ASP.NET Core and started making an app full of “best practices”: EF Core, DDD, TDD with xUnit & MOQ, BDD with SpecFlow & Gherkin, CQRS-lite with Dapper for the reads, Feature Folders, Clean Architecture, etc.  

For the first time in 10 years, both the girls were in “full time school” — meaning that I had 4+ consecutive hours a day that I could devote to my career, woo hoo!  

Python, Django, Postgres DB, Fedora Linux, VS Code

The codebase was becoming something showy. However, I wanted to make it open source and bring other people onto the project. Also, the .NET “best practices” were pretty complicated and I wanted a more rapid dev experience. So I decided to switch to using technology that felt less corporate. I learned Python/Django, PostgreSQL for the DB, and used Fedora Linux as my OS with Visual Studio Code as my main IDE. After reading several books and porting my codebase, I saw that Django can get hard to work with due to its opinionated nature. Python did not feel faster to code in than .NET.

Back to ASP.NET Core 

Then the Covid-19 pandemic hit. The girls were home doing distance learning and my “free time” went back to full time daddy support. They were fortunate to have their very own personal IT and school support, oh and my wife too! A year later, the girls were becoming more independent and we were considering moving closer to family — which this will require buying a more expensive house. Seriously, I can see it is time for me to return to my career. That’s right!

After my last shot at building an app with Python, I saw that I could be more productive coding in .NET — by leaning on my prior professional experience. I also noticed that there are .NET jobs in my hometown. Sooooo, back to ASP.NET Core! Full circle. 

Reflections 

I’ve worked with various companies and projects through the years. Throughout, I’ve noticed that non-technical skills have always been valuable. Things like the ability to listen to others, when used as Business Analysis becomes a very valuable skill on any project. The ability to clearly write down their thoughts is called Documentation. I’ve always been a quick learner, especially with technology — which is an essential skill for a developer. Applying technology skills to a new project is communicated with Design Diagrams.  

Though technology is a rapidly changing field and there is always something new to learn, there are also threads of similarity between old and new technologies. At a basic level, programming languages consist of variables, control flow, and communication between different parts of the code. The fundamentals have remained the same, for example obvious things like buttons, textboxes, and database tables.   

May my dev blogging journey be helpful to others and even, perhaps, entertaining. Onward, yo!

Leave a comment

Your email address will not be published.