Last Updated: March 2018
I'm a British computer programmer in his late 20s that's probably best-known for writing tutorials in Linux Format magazine and winning a fancy prize from the Royal Television Society. You can see more about my career to date on LinkedIn.
I originally started this blog in 2007 as an assignment for a sixth form college module. It's gone through various incarnations and still continues to this day.
See this blog post. In short, I disagree with their business practices and don't enjoy using it.
I went through two accounts between February 2008 and July 2017 but I no longer have one. Anyone claiming to be me on that site therefore is an imposter.
If you want an incentive to stop using Facebook yourself, here's a great article about how the company is abusing you for profit and ruining online journalism in the process.
I've created a new placeholder account for @bobstechsite.
I've actually used the site in one form or another since January 2009, but I've grown progressively more annoyed with the direction the service seems to have taken.
The site's algorithms seem to be geared towards making me angry all the time and I'm fed up with having to tip-toe around random angry egg profiles and spam-bots. The mobile app's constant prompts for attention and weird non-chronological shuffling of tweets in my news stream didn't help either.
The last straw for me late last year was when Twitter responded to criticism that it doesn't apply its own rules consistently by supplying two contradictory explanations for it and then adding more rules they probably won't apply consistently either. Given the well-documented consequences of their past negligence I didn't feel this was good enough.
I've created a placeholder account mostly to promote content on this blog, the podcast and cool stuff I'm planning to do for YouTube. I won't be using it the same way I use Mastodon.
If you like it, keep an eye out for the Qt client I'm planning to write for it called "Mastodome". The latest details at the time I wrote this FAQs page are on this blog post.
What excites me about this particular social network is that from the ground up it discourages "gamification", mass broadcasts, outrage culture, spam bots and one central authority chasing profits being able to decide which rules count for which accounts. It also encourages people to see more than just a feed of accounts they follow and helps everyone be their more authentic selves.
Don't get me wrong, it's not perfect. I think there needs to be a way for people to migrate their account between servers and a way to retrieve your account if a mod bans you. But the principle of a federated network built on free software is a good one, and it's fast developing its own rival community and identity.
If you find this site interesting, you can follow me via @[email protected].
I used to use Skype, but no longer. Richard Stallman makes a good case for why we shouldn't be using it, but the main turn-offs for me were its half-hearted support for GNU/Linux and the fact it forces you to have a Microsoft account. (This shouldn't be confused with "Skype for Enterprise", which is really a re-branded version of Lync. I use this on company-owned machines if my employer requires me to)
As for Google Hangouts, it sounds like it might be on the way out anyway. But I also don't like the idea of forcing people to create a Google account just to talk to me.
I am however on GNU Ring. You can install a client for this decentralised and fully-free VoIP service on Windows, Mac, GNU/Linux, Android and iOS so in theory there's no technical barrier to people talking to me.
My XMPP address is bobbyjmoss[at]member.fsf.org. (You can send emails to this address too!)
I have also been known to use IRC on occasion. Normally I'm on freenode as fsf/member/bobstechsite and run the #bobstechsite and #mastodome channels.
Yes, absolutely! My main laptop usually runs some variation of Ubuntu 16.04 LTS.
For my day job I develop Java middleware that runs on GNU/Linux boxes in the cloud. After work I tinker with old computers and Raspberry Pis (among other things, like writing for Linux Format magazine and hosting my own Ghost blog).
In November 2017 I also joined the Free Software Foundation as an associate member. It seemed about time, given I've spent over a decade benefiting from free software and open source technologies!
Finally, when it comes to smartphones I'm running Android 7.0 on an old Umidigi Max (although I mostly use F-Droid and am very selective about which apps I install). I expect to replace this device with a Purism Librem 5 some time in early 2019.
My initial contact with this operating system was running a live copy of Mandriva 2005 from a cover disc stuck to the front of a magazine called Personal Computer World. The teen-aged me ran the live CD on the family desktop to tinker and experiment, but I don't remember doing anything productive with it.
The first version of GNU/Linux I was brave enough to commit to hard disk as part of a dual-boot setup was Ubuntu 7.04 "Feisty Fawn" in July 2007. This mostly happened because the good laptop my parents bought me to celebrate the GCSE results I'd just achieved wouldn't run Vista Home Basic properly.
The first distro I installed in a solo-boot configuration was Ubuntu 7.10 "Gutsy Gibbon". I played games on an XBOX 360 console and did VB.NET programming on the Windows XP desktops in my sixth form college, so it wasn't a problem for me to use it as my main OS at home. My only complaint at the time was the fact I had to uninstall pulseaudio and hack the alsa driver to get my laptop's soundcard to work, but I think that was fixed (for me at least!) in 8.04 "Hardy Heron".
Around 2009-2012 I remember jumping between Ubuntu and Fedora as my main distro of choice. I also vaguely remember tinkering with OpenSUSE and Mint for a while in 2013. However for the last 5 years I've largely stuck to using the long term support versions of Ubuntu for native installs.
Nope, although I do know how to! In fact, I've written about them before for Linux Format magazine.
Mostly I'd say it's a combination of laziness and a lack of patience. I don't want to have to define my entire system up-front or spend more time maintaining the operating environment every time there's an update than actually doing productive work.
If you use either of those systems and love them then that's fantastic. But I'd rather just install Ubuntu (or similar) as a base system and customise it as I go.
As mentioned before I normally stick to LTS (long term support) versions of Ubuntu. The reason I was happy to use Unity as a desktop environment is because I'm not a fan of Gnome Shell. In fact, whenever I've spent any time using Gnome 3 I often revert to fallback mode to make it less annoying.
I am currently trying out different desktops like MATE, XFCE and KDE. In the worst case I could just stick with 16.04 until I find something better as it'll be supported with security updates until 2023 anyway. I's gotten used to using Unity, and I'm disappointed it's now disappearing.
I should stress though that I'm not particularly partisan about this. I was pretty much forced to learn how to use it at work because it's the de facto standard tool now when you SSH into a server or VPS to edit config files.
There's no shame in using Nano or gedit. If they work for you then keep using them!
Around 2005 I started using Mozilla Firefox, and aside from the occasional blip where I spent some time with Opera I've largely stuck with it.
When my trust was shaken in them in December 2017 I spent some time with GNU IceCat (a fully-free fork of Mozilla Firefox).
I have also been known to use the Tor browser at times too.
The right one for the job! I think a good software engineer should be able to adapt to the requirement and tailor their use of tools and languages accordingly.
If I had to pick one "favourite", it would be Python. I like the fact it runs on everything, has a vast number of supporting libraries and usually leads to clean & readable code. It's also a great learning language for new programmers because there's a low barrier to entry and they can get something working before their enthusiams starts to wane.
However, there are other languages I quite like. While VB.NET was the first language I ever learned it was C++ (my 2nd language) that inspired me to become a computer programmer. Its enforced structure and conventions really appeal to my sensibilities as an autistic person. I haven't had much cause to use it recently, but I'd relish the chance to spend time coding with it again.
I guess Java and C# ought to be listed too. Writing enterprise middleware systems with those languages and their related tools has turned out to be my primary "meal ticket" for the last 5 years.
When it comes to web development I still like using PHP. The code can get unwieldy and quite messy if you don't keep a check on it, but I like the fact you can achieve so much with so little code.
Finally, I'm one of those odd people that actually likes Pascal and its clear deliniation between variable assignments and comparisons. But no one really uses that anymore and it makes me sad.
So, to list the current "flavour of the month" languages the technology industry is getting excited about at the moment: Scala, Kotlin, NodeJS, Go & Rust.
I think Scala will carve out a niche for enterprise microservices, AI and big data analysis. I doubt it will usurp Java as a general purpose language, but it's worth learning.
I like the idea behind Kotlin, but I think it's going to be an "also-ran" language. It's geared towards Android app development, but there are so many mobile app development platforms already and the interesting stuff is happening in the cloud now. I think it could have a limited shelf-life.
While it might be mixed into some Java codebases in coming years (in the same way Groovy has been because of Grails apps) I don't think it'll ever replace Java. Instead I believe the good ideas Kotlin brings to the table will be incorporated into future versions of Java in coming years.
I really like Go as a language. It's got a shallow learning curve, a decent-enough garbage collector, offers really nice shortcuts for C programmers and makes concurrency operations much easier. I hope it starts to see some wider adoption across IDEs and development tools.
Rust on the other hand is doesn't particularly appeal to me. It's often pushed by its evangelists as "a replacement for C++" (I've heard that one before!), there's a surprisingly high learning curve and the language designers seem to be working on the assumption that programmers are idiots that need protecting from themselves. I also suspect the oft-cited speed improvements in Firefox Quantum mostly emerged as a result of replacing legacy code, not Mozilla's arbitrary decision to use this language.
At work I have to use Outlook (boo!) but at home I use Evolution mail.
In fact, this is probably the longest standing technology choice I've made. I started using Evolution in 2007 when I first began using GNU/Linux and have continued to do so since.
It's always one of the first pieces of software I setup on a fresh Ubuntu install, and I'm genuinely interested to know why they chose to start pre-installing Mozilla Thunderbird instead. While I do use it on Windows, I wouldn't say it's any better than Evolution!
I bought http://bobbymoss.com for an obscene amount of money off a domain squatter a few years ago. Thankfully the other extensions for this vanity domain were a lot cheaper to acquire, and they all redirect to this Ghost blog.
Also for the 10 year anniversary of this blog I produced a modern remake of the 2007 site and made it available via
Finally I'm working on a Gopher version of this blog. I'll add a link to it in this answer once that particular joke project ready.