Category Archives: software-engineering

Type safety, undefined behaviour, and us

There appears to be a shift towards programming languages that improve safety by providing an expressive type system, automatic memory management, and no gaps in the specification that lead to “undefined behaviour”. If your program is consistent with the logic … Continue reading

Posted in software-engineering | Tagged | 1 Comment

On legitimacy and software engineering

More than 400,000 software engineers have lost their jobs in the last couple of years, I wouldn’t be surprised if it’s really significantly more than half a million as some won’t have been documented anywhere that the tracker project saw. … Continue reading

Posted in academia, software-engineering | Leave a comment

On association

My research touches on the professionalisation (or otherwise) of software engineering, and particularly the association (or not) of software engineers with a professional body, or with each other (or not) through a professional body. So what’s that about? In Engagement … Continue reading

Posted in academia, advancement of the self, Responsibility, software-engineering | Leave a comment

On Scarcity

It’s called scarcity, and we can’t wait to see what you do with it. Let’s start with the important bit. I think that over the last year, with acceleration toward the end of the year, I have heard of over … Continue reading

Posted in software-engineering | Leave a comment

More detail on software requirements

My talk at AppDevCon discussed the Requirements Trifecta but turned it into a Quadrinella: you need leadership vision, market feedback, and technical reality to all line up as listed in the trifecta, but I’ve since added a fourth component. You … Continue reading

Posted in software-engineering | Leave a comment

Even more on generalist software engineering

There is a difference between a generalist software engineer, and a polyglot programmer. What is that difference, and why did I smoosh the two together in yesterday’s post? A polyglot programmer is a programmer who can use, or maybe has … Continue reading

Posted in software-engineering | 1 Comment

On interviewing and generalist software engineers

After publishing podcast Episode 53: Specialism versus generality, Alan Francis raised a good point: This could be very timely as I ponder my life as a generalist who has struggled when asked to fit in a neat box career wise. … Continue reading

Posted in software-engineering | 3 Comments

The Requirements Trifecta

It’s hard to argue that any one approach to, well, anything in software is better or worse than any others, because very few people are collecting any data and even fewer are reporting what they’re trying. Worst is understanding how … Continue reading

Posted in software-engineering | Leave a comment

On or Between

The new way to model concurrency is with coroutines (1963), i.e. the async/await dance or (building upon) call-with-concurrent-continuation. The new new way is with actors (1973), and the old and busted ways are with threads (1966), and promises (1976). As … Continue reading

Posted in architecture of sorts, code-level, design, performance, software-engineering | Tagged | Leave a comment

Software design is refinement, not abstraction

James Koppel tells us that software engineers keep using the word “abstraction” and that he does not think it means what they think it means. I believe that he is correct, and that the confusion over the term abstraction comes … Continue reading

Posted in design, software-engineering | Tagged | Leave a comment