David Inman

Senior Software Engineer

David is a Senior Software Engineer. Since joining SEP in 2007, he has brought invaluable expertise to client projects across multiple industries, typically focusing on medical device communications and mobile. Currently, he is working on a .NET MAUI application.

He attended Purdue University, earning a degree in Computer Science.

David Inman

Posts by David

Programming | 9 min read

Object-Oriented and Functional Programming

Object-Oriented programming has the perception as being the traditional and industry standard paradigm of programming for software engineering projects. Meanwhile, Functional programming has the perception as being either the new hotness, the non-traditional, or the academic standard paradigm of programming (depending of course on the blog post, person, or book that you’re encountering). But what […]

Programming | 11 min read

On using non-traditional programming languages

One of the more rewarding aspects to programming as an intellectual hobby is discovering new programming languages. The more exotic or novel or opinionated the language the greater the opportunity to learn something new that can be leveraged for more efficient and capable problem solving in the future. However, the down side is that once […]

Programming | 9 min read

Best Reasons for Learning F#

Unit Measurement Types The Mars Climate Orbiter met an unfortunate fate in 1999 when it unintentionally crashed into the surface of Mars. The cause? Misinterpreting the unit of measurement. This is hardly an isolated incident. Many software projects of non-trivial size struggle with a good solution for dealing with the cognitive overhead of keeping track […]

Sandbox | 2 min read

Code Analysis: Methods

We’ve already gone through a lot of different programming language constructs, however we haven’t really talked about a very highly used feature.  How do we think about methods using these diagrams. So there’s a lot we could talk about methods in general, but I want to avoid any specific digression into what object oriented and […]

Sandbox | 4 min read

Code Analysis: Exceptions

void Function() { try { RunOtherFunction(); } catch { Log.Error( "Problem" ); } } void RunOtherFunction() { if ( a_okay() ) { OtherFunction(); } else { throw new Exception( "Error" ); } } Exceptions are a thing that we tend to use for signaling error conditions such that the error will be dealt with in […]

Sandbox | 2 min read

Code Analysis: Global State

Global mutable state by itself can make a program harder to work with because instead of  having a call tree that’s simply a tree structure, you end up with more of a graph structure.  Any given point in the program that interacts with the global state can be effected by any other point in the […]