Programming Articles

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

So Long, “beforeEach”? New Testing Pattern in JavaScript

Tests in TypeScript or JavaScript often run setup code inside hooks like “beforeEach”: Developers must take care to get the setup correct, especially in large or nested test suites. Many scopes (“describe”, “beforeEach”, “it”) read and mutate the test fixtures. The setup must reset the fixtures before each test. Test authors must be careful to […]
Read Full Post

The AI Coding Revolution: Why Your Development Team Needs to Invest Now or Risk Being Left Behind

 A developer’s perspective on mastering AI coding tools for competitive advantage The software development landscape has undergone more transformation in the past year than in the previous decade combined. As AI coding tools evolve from novelty to necessity, development teams face a critical decision: invest heavily in learning these tools now, or watch competitors pull […]
Read Full Post
Example screenshot of a factorio blueprint

Learning AI Optimization w/ Factorio 2: Modelling

What is this project? If you have not yet read the introduction, you can find it here. The abridged version is is: My goal is to create a system for determining the “best” possible Factorio factories based on footprint and cost to build. Modelling? So, one of the key things for making a maze solver, […]
Read Full Post
Factorio logo

Learning AI Optimization w/ Factorio 1/x

Who am I? My name is Keith Hanson, I graduated from Rose-Hulman with a degree in Software Engineering in 2021. In my time since graduation I worked extensively with infrastructure as code and on backend systems. Notably what you won’t find in my project background is anything to do with AI. I took 1 course […]
Read Full Post
ai generated graphic showing a cartoon developer working on a computer with music notes in the air and doc above that shows an agile flow

Vibe Coding Is the Purest Form of Agile (And That’s the Problem)

Vibe coding absolutely nails the values of Agile, and quietly violates the mechanisms that make Agile work. Vibe coding might be the purest form of Agile we’ve ever seen. No standups, no tickets, no backlog grooming, just chaos and bliss. It nails the Agile values: working software, responding to change, and individuals over process. The […]
Read Full Post
developer working at computer

Why Vibe Coding Fails – and How Signal Coding Fixes It

AI is an amplifier for whatever signal we humans provide. Garbage in, garbage out. Signal in, software out. – Robert Herbig, in the thing you’re currently reading If you haven’t heard of vibe coding, it’s an interesting concept: you prompt an AI agent to do all the coding and focus on fast iterations. Minimize time […]
Read Full Post
picture of a schoolboy with Lee's face excited about a thing

Terraform: Creatine for Your AI-Assistant

I love software engineering because it lets me create new things every single day. As a programmer, I get to conjure novel solutions to problems I’ve never encountered before – manipulating chaos is my jam. For months, I stubbornly resisted tools like Cursor, Cline and Windsurf. Why? Because I’m passionate about programming and worried these […]
Read Full Post

Dodging Merge Conflicts in git

This article was originally posted on my personal blog under the same title, “Dodging Merge Conflicts in git.” Introduction Of all the source control management systems that have ever been created, git is certainly one of them. You’ve probably used it, and been burned by a particularly complicated merge conflict. Resolving merge conflicts can be […]
Read Full Post

(Mostly) Useless Lessons From Doing Math With TypeScript Types

You can interact with the source code for this article using the TypeScript playground. Throughout my experience using TypeScript, I have constantly been finding new features in the type system that I had no idea existed. At some point, I discovered that the type system was turing complete! (If we ignore the infinite memory requirement) […]
Read Full Post