BigFont Blog
  • Home
  • About
  • Bibliography (Work)

software-development

A collection of 19 posts

Task: On a dark night, use a flashlight to find a diamond ring that fell into a pothole on a road that has several potholes.
software-development

Task: On a dark night, use a flashlight to find a diamond ring that fell into a pothole on a road that has several potholes.

This is an analogy about trying to find a specific bug in a codebase that has multiple bugs. It is 1 am in the morning on a moonless night. A very important person

  • Shaun Luttin
    Shaun Luttin
1 min read
Handling the perpetual problem re: time spent improving code quality vs time spent creating new features... in a way that fosters career satisfaction and engagement.
soft-skills

Handling the perpetual problem re: time spent improving code quality vs time spent creating new features... in a way that fosters career satisfaction and engagement.

A change of perspective is worth 80 IQ points. ~ Alan KayRecently I was faced with a familiar situation at work. As I saw it, my team was pulling me off a bug fix

  • Shaun Luttin
    Shaun Luttin
3 min read
When using TypeScript and streams in NodeJS, use the stream.Stream type until there is reason to use a wider type.
typescript

When using TypeScript and streams in NodeJS, use the stream.Stream type until there is reason to use a wider type.

It's easy to build a big ball of mud when working with technology we do not understand. Two years into a project, we found ourselves converting among typed arrays, streams, and buffers, without

  • Shaun Luttin
    Shaun Luttin
1 min read
software-development

Parse jest --json test output with jq

The following example installs jq, saves the jest test output to a JSON file, parses the JSON with jq, and then selects only the fullName of tests with a status of "failed&

  • Shaun Luttin
    Shaun Luttin
1 min read
Some points and quotes in favor of trunk-based development taken from books, blogs, blikis from industry experts.
software-development

Some points and quotes in favor of trunk-based development taken from books, blogs, blikis from industry experts.

This is a list of points in support of trunk-based development and its related practices. Continuous Delivery includes using Trunk-based Development and Continuous Integration. (Forsgren, 2018). Continuous Delivery “predicts lower change failure rates,

  • Shaun Luttin
    Shaun Luttin
2 min read
At what point does a professional software developer need to say "no" instead of continuing to do what the client requires?
software-development

At what point does a professional software developer need to say "no" instead of continuing to do what the client requires?

What does it mean to be a professional software developer? Does part of it mean putting one's job at risk by eventually saying no to anti-patterns that cause burnout? I am interested in

  • Shaun Luttin
    Shaun Luttin
4 min read
A short guide on a code commenting style, written by someone who is skeptical of its value, is terrible at writing that style of code comments, and despite that, is willing to learn how to write them the way a team has elected to write them.
software-development

A short guide on a code commenting style, written by someone who is skeptical of its value, is terrible at writing that style of code comments, and despite that, is willing to learn how to write them the way a team has elected to write them.

I tend not to read code comments and only to write them if something is unusual. As a result, I am terrible at writing a certain style of code comments. (The unrelated image

  • Shaun Luttin
    Shaun Luttin
1 min read
software-development

Hypermedia as the Engine of Application State (HATEOAS)

Is there an existing specification for describing (in computer readable form) the preconditions necessary for an API endpoint to succeed? E.g. for a /cancel-invoice/12345, the precondition is that the invoice exists

  • Shaun Luttin
    Shaun Luttin
1 min read
A spreadsheet with a priority queue might be the least expensive and most effective way to build software rapidly.
agile

A spreadsheet with a priority queue might be the least expensive and most effective way to build software rapidly.

My software teams have used Basecamp, GitHub, JIRA, PivotalTracker, Trello, and a spreadsheet for project management. The most efficient team was the one that used the spreadsheet as a simple priority queue. Whenever

  • Shaun Luttin
    Shaun Luttin
1 min read
typescript

filter undefined and null values from an array while still satisfying TypeScript's strict null checks.

In strict mode, TypeScript makes it illegal to assign an array of type (T | undefined) to an array of type T[]. This prevents bugs by preventing us from dotting into (de-referencing) an undefined

  • Shaun Luttin
    Shaun Luttin
1 min read
software-development

Notes on Joel Spolsky's blog post on character encodings

[An encoded] string only makes sense when we know what encoding it uses; otherwise, we cannot interpret it correctly.First, what does it mean to encode/decode a string? Encoding converts the abstraction

  • Shaun Luttin
    Shaun Luttin
2 min read
programming

"Pair documenting" might produce higher quality documentation.

Over the past two days I spent about 8 hours writing documentation. Was the documentation worth it? Will anyone ever read it? If they do, will it help? When is documentation done? Have

  • Shaun Luttin
    Shaun Luttin
1 min read
typescript

TypeScript constructor parameters with public, private, and protected

A class constructor can automatically create and initialize class properties by using parameter property declarations. public class Foo { constructor(public bar: string, private baz: number, protected qux: boolean) {} } That is the equivalent of

  • Shaun Luttin
    Shaun Luttin
1 min read
git

Finding (searching for) things with Git

Search file name git ls-files '<pathspec>' git log '<pathspec>' git rev-list --all -- '<pathspec>' Search file content git log -S '&

  • Shaun Luttin
    Shaun Luttin
1 min read
Architecting Large Scale Software Systems
software-development

Architecting Large Scale Software Systems

Image by janeb13 at https://pixabay.com/en/europa-sailboat-fs-senator-brockes-1185800/ These are notes on architecting large scale systems. (Is architecting even a word?) The notes came out of a series of recent conversations with

  • Shaun Luttin
    Shaun Luttin
3 min read
software-development

Software Testing Strategies and Canonical Names

Note: This is a continuation of a previous post here: http://www.muddlingthru.ca/types-of-software-testing Using canonical test strategies and industry standard names helps because it: facilitates team communication, eases developer on-boarding, and

  • Shaun Luttin
    Shaun Luttin
1 min read
classic-mistakes

The classic mistake of keeping a throwaway prototype

In chapter 28 of Rapid Development, McConnel (2014) calls the "throwaway prototype" a software development best practice; he also warns that keeping the throwaway prototype is a classic software development mistake.

  • Shaun Luttin
    Shaun Luttin
1 min read
How to name boolean returning functions and methods?
software-development

How to name boolean returning functions and methods?

Introduction This blog post is about how to choose a coding style for boolean returning functions. It represents about 2 hours of research. tl;dr Since there are sound reasons for several options,

  • Shaun Luttin
    Shaun Luttin
3 min read
Some Career-Related Ultimate Goals for 2017
goal-setting

Some Career-Related Ultimate Goals for 2017

An ultimate goal is a goal that is not necessarily achievable; it is rather a compass north point: where do we want to be, eventually? Writing down ultimate goals has an almost magical

  • Shaun Luttin
    Shaun Luttin
2 min read
BigFont Blog © 2022
Latest Posts Ghost