This might be a weird article.

A few years ago I saw the terrific movie “Arrival” and it changed how I look at language. A little later, I encountered F# for the first time and it changed the way I look at programming languages.

In this article I’m going to walk you through the basics of some of the theories touched upon in Arrival and then pivot into the role of language in programming. …

This article is part of the C# Advent Series check it out for more articles from others in the community

I love C#. I’ve been working with the language since 2001 and still view C# as my favorite and primary programming language, despite growing to love many other languages as well since then. However, this year has been eye-opening for me as I’ve gotten a glimpse into how others learn programming and the problems C# has with new developers.

This year I left software engineering and became an instructor at Tech Elevator, a full-stack C# and Java bootcamp. I am now responsible for teaching others programming via teaching them C#, SQL, and JavaScript among other technologies. …

I’ve been living a lie. For 20 years of professional software development, I had convinced myself that I didn’t enjoy database development.

I was wrong.

It turned out that I was getting stuck on the repetitive nature of database code and query generation, instead of the core problems we solve when building database applications.

In this article I’ll discuss why I hated working with databases as a C# developer, and the tools and libraries I found that proved me wrong.

What’s Wrong with Database Development?

It’s not that I thought databases weren’t important — they are critically important to the majority of professional software applications. …

Starting a new job can be exciting, intimidating, and frustrating. The first few weeks can set the tone for how you are perceived in the organization as well as your opportunities to succeed in your new role. Here are my thoughts on how to start strong at your new job.

I’ve been around long enough to recognize how vital it is to take the first few weeks seriously and have a solid plan for getting yourself up to speed.

Image for post
Image for post
Photo by Christina @ on Unsplash

So, in no particular order, let’s talk about the things that I find are the most helpful to keep in mind when changing jobs. …

Image for post
Image for post

How an Open Source implementation of Silverlight aims to use Web Assembly to Compete with Blazor and Modern JavaScript Frameworks

OpenSilver has recently made its presence known and announced that Silverlight, like disco, is in fact not dead and is still more relevant than ever — albiet in a fairly changed form.

As a former Silverlight developer and XAML specialist, let me lay out for you what Silverlight was, how OpenSilver is different, and my initial take on whether this matters (and who it might matter to).

XAML and The Foundation of Silverlight

If you’re like many new developers I speak with, you may not be familiar with Silverlight or even XAML, so let me set the stage for you.

Back in 2006 Microsoft released .NET Framework 3.0, including a new desktop technology called Windows Presentation Foundation (WPF). WPF was (and is) an extremely powerful way to build and customize desktop user interfaces. It addressed many of the issues with Windows Forms and aimed to build a user interface technology centered around something called XAML. …

Let me show you how creative use of TypeScript’s discriminated unions, type aliases, and functions can give you a greater degree of flexibility in your own code.

I’m going to do this by illustrating how these techniques addressed a problem that I was trying to solve and then talk about some additional ideas on how these techniques can be applied.

The Problem I’m Solving

I’m building a text-based game for a few talks I’ll be giving this spring. …

Techniques I used to move from Management to Teaching

Career changes are huge, but you don’t have to go into them blind. In this article I’ll discuss some strategies I’ve used recently to evaluate a change in careers, figure out if you might like the change, find ways to safely practice and grow the skills you’d need, and then finally potentially make that leap in changing your career.

Why am I writing this? For the first time in 14 years my primary job will no longer revolve around writing code. …

Exploring Generalization and Specialization in Developer Careers

Recently a younger developer I respect expressed a somewhat common concern. In essence, their concern was that they were finding themselves doing a little bit of everything and not specializing enough. They were specifically concerned that nobody would want to hire them without a key specialization.

They also mentioned the idea of a “T-shaped” developer who has a wide breadth of experience but a specific area that they are deeply skilled in.

Image for post
Image for post

Keep in mind that this was a new developer who had recently graduated from a bootcamp and that specializing early on can be both hard and limiting.

This is a common concern for new developers and so, in this article, I’ll explore the pros of cons of generalizing, specializing, being a so-called T-shaped developer, as well as introducing the term “comb-shaped” which I believe is a more accurate picture of a developer career. …

Building a Representational Sentence Graph in JavaScript

In this article I’ll show you how to use the Compromise JavaScript library to interpret user input and translate it to a hierarchical sentence graph.

I’ll be using Compromise to interpret player input in an Angular interactive fiction game, but you can use Compromise for many different things including:

  • Analyzing text for places, names, and companies
  • Building a context-sensitive help system
  • Transforming sentences based on tenses and other language rules

Learning Objectives

In this article we’ll cover:

  • What compromise is
  • How you can use compromise to analyze sentences
  • Making inferences about sentence structure based on compromise

Note: this article is an updated and more narrowly scoped version of an older article I wrote on Compromise. This information works with modern versions of Angular as well as modern versions of Compromise.

Supporting Web A11y Standards in Angular

Let’s talk about building accessible Angular applications. Why? Because Angular apps are awesome, but the amazing things Angular lets you do are a net negative unless you can build an app that everyone can use.

Accessibility (sometimes abbreviated as “a11y”) refers to designing software in such a way that it can be used by all users, regardless of any disabilities they may have.

While I’m not an accessibility expert, I can help you get started with accessibility in general and, more specifically, how to follow accessibility practices in Angular.

Accessibility 101

Before we get into auditing your applications for accessibility issues, let’s look at some common violations. …


Matt Eland

After over three decades of software engineering, Matt put away his mechanical keyboard and made teaching his primary job as he looks to help others grow.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store