My name is Jake Walter and I am a Civil Engineer with a specialty in software development. This site is the starting page for a homelab that I am currently building. The idea is to provide a diary of my objectives, reasoning, and plans for the system I am setting up at home. This will help me track why I did things and, hopefully, not keep repeating the same mistakes. It is also helping me to learn Jekyll, a static site generator created by Github.
Civil Engineer
My main title at work is Civil Engineer. I help public agencies figure out how to allocate funding to maintenance project, optimize their maintenance processes, design asset evaluation programs, and manage the large amount of data that is used as the basis of many multi-million dollar budgets.
What makes you so civil?
I’ve heard this joke before.
What does a Civil Engineer do?
Engineering is split into a number of different major disciplines but it can be divided into four major areas:
- Macro engineering: Things you can see and touch - roads and machines
- Micro engineering: Things you can’t see but know exist - electricity
- Chemical engineering: Using chemistry to achieve some goal - making gasoline, for example
- System engineering: Working with processes and things that do not result in physical products
Macro engineering can be roughly divided up into two parts:
- Mechanical engineering: Things that are supposed to move (cars, machines, airplanes)
- Civil engineering: Things that are supposed to remain still (roads, bridges, pipelines)
Of course, each major discipline has a bunch of specialties. For civil engineers this includes structural, geotechnical, and environmental engineering.
What is your specialty?
I am a transportation engineer. That is, I deal with the infrastructure that gets you from your home to work, school, or commercial area. I also deal with companies that move cargo using roads, rail, and air. My typical client is a public works agency or state department of transportation.
Of course this isn’t terribly specific. Transportation covers a lot of topics. My specialty within transportation is infrastructure asset management. I help agencies with limited money determine where to spend their money because they never have enough to address all their needs.
Software Developer
How do I achieve these goals? An infrastructure asset management project is usually a very data driven field. We collect data from our clients and supplement that data with our own through field testing and the use of public datasets. What does that require? Software, IT skills, and data analysis skills.
To meet my project requirements, I have spent the last 25 years focused on software development to further my engineering work. This includes both doing the development work myself and working with a team (either as another developer or a project manager/product owner) to meet project goals.
What tools do you use?
It depends on the client, but I have been working in the Microsoft ecosystem for a very long time with the exception of a quick 2 year foray into Linux. This means that these days, while I am comfortable with C and C++, I am primarily a .NET developer. Specific tools I use day to day include:
- VB.NET (I have been using VB since 3.0)
- C# (I switched to C# several years ago and only do VB when required)
- ASP.NET MVC for web development. I have used it just for backend work and for frontend development as required
- HTML, CSS, and Javascript
As for development practices, I use Object Oriented Development and Unit Testing as two of my basic development approaches. I try and use Test Driven Development as well when I can.
For team projects, we are currently using Azure DevOps.
What else can you do in the software world?
I like to think of myself as a generalist. Often, I am making minor revisions to existing software when I implement a system for a specific client. This means I have to be able to do things in cloud services (I do a lot of work in Azure) or I have to maintain and install software on internal client machines.
Also, I mentioned earlier that infrastructure asset management is a data driven field. This means quite a bit of data analysis work. I have to have decent skills in the database realm including SQL Server administration and data queries. This includes standard SQL queries, the use of Excel for basic analysis, and the use of LINQ in C# for more advanced work. I know a little Python as well, but I tend to use LINQ as I am more comfortable with it.