Need help with software development? I’m available for hire.

Paul Mucur /pɔːl 'mʌdʒəʳ/

Tales from a software development consultant.

Weeknotes 6
Christmas films, participating in democracy and things a true Englishman will never countenance.
Weeknotes 5
The unexpected joy of baby cinema, doing everything wrong and our daily multiplayer crossword routine.
Weeknotes 4
Struggling with structured data, Christmas puddings, the joy of repairing things and everything being a trade-off.
Weeknotes 3
Writing, solving logic puzzles and the Bake Off we deserve.
Scripting Photos for macOS with JavaScript
Automatically editing photo metadata for iCloud Photos using JavaScript for Automation.
Using a Raspberry Pi for Time Machine
How to share a disk with Samba and Avahi on a Raspberry Pi for use with macOS backups.
Weeknotes 2
Fixing dates on old videos in Photos, using a Raspberry Pi for Time Machine and the right tool for the job.
Weeknotes 1
Dadding, baking, TV and being a paranormal insurance investigator.
2018 Yearnotes
Reflecting on the past year, both personally and professionally.
Cross-Compiling Rust for a Raspberry Pi on Travis CI
How to compile binaries from a Rust project that will run on a Raspberry Pi using Travis CI.
What Is a “Successful” Software Development Team?
Thoughts on the difficulty of gauging and improving the success of development teams following Scale Summit 2016.
Data Structures as Functions (or, Implementing Set#to_proc and Hash#to_proc in Ruby)
Experimenting with using hashes and sets as functions in Ruby.
A Summit for Scaling
A summary of my time at 2014’s Scale Summit: a performance and scalability unconference.
Implementing if in Ruby
Using multiple blocks in Ruby to implement Smalltalk-style control flow.
Testing Vim Plugins on Travis CI with RSpec and Vimrunner
How to continuously integrate and test-drive Vim plugin development with the Vimrunner gem.
Naming Dynamically Created iframes
Working around issues with setting iframe names in Internet Explorer.
Managing Web Application Servers with Puppet
A transcript of my August 2011 LRUG presentation regarding configuration management and Puppet.
Combining and Compressing Disqus’ and Google Analytics’ JavaScript
A step-by-step refactoring of Disqus’ and Google Analytics’ JavaScript.
Passing Blocks in Ruby Without &block
Using yield and Proc.new to avoid unnecessary Proc object creation in Ruby.