SEP Blog
We’re curious people by nature. And we love to teach others what we’ve learned. So explore our blog to gain fresh insights from our expertise in areas ranging from culture to AI.
SEP Wins TechPoint’s 2025 Exceptional Employer Mira Award
SEP Recognized as Indiana’s Top Tech Employer, Winning TechPoint’s Prestigious Mira Award Westfield, Indiana – SEP has been named Exceptional Employer by TechPoint at the 26th annual Mira Awards. This award recognizes companies that are developing talent through skills-based hiring…
Read Full Post
Customizing a UISegmentedControl If you have spent any time developing an iOS app, you have probably realized that customizing UI elements in Swift can be hard. There is either a checkbox that does what you want, or it takes hours of research and trial and error to get something just the way you want it. […]
Read Full Post
Problem Analysis: High Dimensional Spaces
Previously we were discussing our how you probably want your valid input blob to be a metric space. Let’s move on to another aspect that can make a problem difficult to work with. This can apply to either the valid input blob (I) or the output blob (II). We want our blobs to be low dimensional […]
Read Full Post
Problem Analysis: Blob Structure Examples
The previous blog post gave us our first aspect to look for in a problem, meaningful structure in our valid input blob. Let’s look at some concrete examples. The important thing about a metric space is that you are able to create some sort of distance function. However, this isn’t the only thing that we are […]
Read Full Post
Problem Analysis: Blob Structure
The previous blog was just an introduction to the problem analysis technique that I want to talk about. And to review, the definition of problem that I’m going with is: Aspects of a situation that makes understanding its behavior difficult. This blog entry is going to talk about the first aspect of a situation that […]
Read Full Post
Problem Analysis: Introduction
Before we can measure how difficult a code base is for software engineers to work with, we have to also have a method to measure how difficult problems are for people to work with. This gets a little bit difficult because the idea of a “problem” can get very philosophical and we want something a […]
Read Full Post
Objective Code Quality Blog Series
I’m proposing a method for tracking how difficult it is for software engineers to work with code. Preexisting methods such as code smells, cyclomatic complexity, best practices, test coverage, etc seem to work okay for a course grained approach for determining how difficult a code base may be to work with, but I don’t feel […]
Read Full Post

Security in the Age of the Internet of Things
Originally published on my personal blog. The Internet of Things is big. No, really big. No, even bigger than that. How big? My colleague Brad Boyer explains it better than I could (and handily defines the thing part of IoT, too). Go read it – I’ll wait. Welcome back! Security is hard. No, really hard. […]
Read Full Post

Refactoring JavaScript – a play in three acts
“the JavaScript Code” by Dmitry Baranovskiy is licensed under CC BY 2.0 Originally published on my personal blog. Act 1, the setup Once upon a time, there was a JavaScript codebase. This codebase used the function expression syntax: const returnTheNumberOne = () => 1; For reasons that aren’t relevant to this blog post, I needed […]
Read Full Post

Strategies for IoT Edge Devices in Noisy Channels.
As Internet of Things technologies mature, there is more focus on aggregation of disparate information. Edge devices provide the rich data streams on which those techniques are based. While low level design of an edge device or its wireless protocol may not be foremost in a developers mind, a basic knowledge of techniques employed can […]
Read Full Post