Welcome to our continuing series of Code Project interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Jeffrey Fritz, a software-as-a-service developer in the education market.
Who are you?
My name is Jeffrey Fritz. Colleagues call me Jeff, my friends simply call me ‘Fritz’. I am a Product Lead Developer for Frontline Technologies in the Philadelphia, PA, suburbs. We make large scale Software-as-a-Service applications for the K–12 education market. Our flagship product, Aesop®, manages the absence of a teacher and the automatic replacement with the right-skilled substitute and is used by more than 3,000 school districts (including about 2 million teachers & subs).
What do you do?
In the past, I’ve worked for pharmaceutical companies, financial startups, marketing companies, a dot-com or two, and even a cable network. I’ve built websites, ETL tools, mini-CRM applications, and now I work on high-performance, multi-tenant web applications. You can find materials about some of my current products at the Frontline K–12 Administration site.
What is your development environment?
My twitter nickname is csharpfritz, so I would be lying if I didn’t list .NET and C# at the top of my current toolbox. I’m using Visual Studio 2010 right now and starting to transition to VS2012 with the beta’s recent release. I use JustCode from Telerik at home and JetBrains Resharper at the office.
Over the last 9 months I’ve adopted the practice of Continuous Testing and I highly recommend the NCrunch automated testing tool.
My development machine at home (and on the road when I am presenting to user groups) is an Alienware m17xR2 with an Intel i7 820QM, 8GB RAM and 1TB of drive space in a Raid 0 config. Currently, the laptop has Win7 x64 installed with several VirtualBox VMs available running Win2008R2 and Win8 RP.
My workspace at home has an extra 19" widescreen display that I use, as I am a display real-estate junkie. More on that to come…
My development machine at the office is a Dell Precision T7400 with 2 quad-core Xeon processors and 500GB of 7200rpm drive space. 8GB of RAM are on board, with 2 video cards driving 4 19-inch displays in a 4x1 configuration.
I use TeamCity to build and test my projects, and have been known to configure TeamCity to build, test, and deploy a project before starting Visual Studio and executing an initial “File - New Project” command.
Git is my preferred SCM, and I primarily use BitBucket to host code. I am an AccuRev certified engineer, but I find their offering to not benefit the hobbyist or open-source coder in the same versatile ways as Git.
I am spending a bit of time in the CQRS architecture space, and have been working on constructing a Win8 app or two that would consume read-services using this architecture.
What is your coding pet peeve?
I am never happy with code that is significantly complex, and does not have some type of automated test to go with it. I believe that to be a sloppy practice, and provides zero value to the next developer that needs to read your code.
I’m a PascalCase coder, and I always write my private variables with a leading underscore. Hungarian notation had its place, but I’m not a fan of such an explicit name/type binding.
How did you get started programming?
I got started programming with my father’s Commodore 64 in the ’80s.
In 4th grade I started learning to program the LOGO turtle, and my 4th grade teacher (Mr. U) let me loose at programming that simple language. He really gave me the confidence to share my programming knowledge with others who were interested.
Over the last month or two, I’ve started to ramp up a speaking schedule with INETA.
I cannot state it more strongly, that the best way to improve your coding is to read other people’s code. I’ve read lots of articles on The Code Project, StackOverflow, GitHub, and plenty of other blogs and source repositories to learn more about how people work with their code.
Offline, the interactions with the people in my local Philly.Net community have been nothing but inspiring. We have a vibrant technical community in the Philadelphia area that is full of really intelligent people. Group meetings with Philly.Net or any other local technical community group really brings out some interesting perspectives and always makes me want to be a better developer.
At times it seems that we can line ourselves up like the Hatfields and the McCoys along programming language or OS boundaries. Do we really want the Windows developers at odds with the Unix developers? Do the Ruby developers have to be at odds with the Java devs?
I am an avid Twitter user, posting regularly under the ‘csharpfritz’ nickname. I think most forums end up devolving into a flame war, and have never really been a fan of that format. I do have accounts on GitHub and BitBucket, and I am actively using GitHub to manage my Qunit-Metro open-source project
What advice would you offer to an up-and-coming programmer?
Read other people’s code. Find a few people who write blogs or open source projects and get involved in watching how they write code. We don’t have a real ‘internship program’ in the software industry to teach you how to craft your code, and this is the best way to watch and learn from some of the more senior folks.