Goals of 2015 Summary

2015 goals written on a whiteboard

At the start of 2015, I wrote down some goals for 2015. Around half-way through the year, I revisited these goals with some thoughts on how well I’d done. Now 2015 is over, I want to reflect on what has been achieved and what hasn’t.

I also want to comment on the fact that I am discussing personal things here. A few years ago I was decided that I was going to keep this blog professional and pretty much dry of any thoughts or feelings on my personal life. I have moved away from that though, inspired by blogs such as Iain’s, where personal thoughts and feelings are mixed with technical observations. I would like to think that this isn’t a bad move; after all if potential employers come to look at this 5 years from now, and don’t like what I’ve done here, then I probably don’t want to work for them anyway. There is the argument that blogs should be ‘themed’ or targetted towards a particular subject to garner followers, and that too much sharing is possibly a bad thing. However, my current thoughts are that dry techncial info is boring, and I’d rather mix it with other things that are important to me.

Retrospective for 2015

With that said.. 2015 was an eventful year, some things were awesome, some not.

The “Not Awesome”

My mum started treatment for cancer, which is a non-curable kind, Myeloma. The treatment was a success and she is currently in remission for the time being, so that is a good thing, but how long she will stay in remission we do not know. Both my remaining grandparents also sadly passed away. I also split up with my girlfriend of 5 years, which was difficult and still haunts me to a certain degree.

The “Awesome”

The money that my parents were going to put towards the wedding of the ex-girlfriend, they gave to me so I could put a deposit down on a house. So in August I bought and moved into a house in Withington, which I am in the process of doing up. It is *incredibly* cheap to buy in Manchester compared to the south-east of England, where I’m originally from, where the dream of having my own 3 bed, semi-detached house would not be possible in any area with a reasonable number of IT jobs in short distance. I don’t drive, so the fact that the tram stop is 10 minutes walk away is great for getting to work.

I met my current girlfriend, Conny in May, and things seem to be going very well; she is even planning to move from Berlin to Manchester to live with me. This is obviously great, and I don’t know where I would be without her support.

Work

With all these things happening in my personal life, work took a secondary focus as I got things sorted. It also made me rethink what I wanted from my career. At the start of 2015 I had a new role, as Test Manager; the first level of technical management in my area at the BBC, and a big career move for me. Although I liked some aspects of the management role, I missed the technical challenges that had pretty much characterised the last 10 years of my career. There was not much direct coding, and I felt I was in danger of losing that aspect of my work. I took a 6 month attachment to R&D, which had me working in an extremely challenging technical role, on a HTML5 360 VR engine. In April when this attachment ends, I am looking to continue in a technical role of some description, and not return to pure management, at least for the meantime.

Goals of 2015 – How Did I Do?

Work Goals

  • Settle into my new role at the BBC as Test Manager – As I mentioned before I’ve taken a move towards another route in my career
  • Pushing for a place to be opened up in Platform Test to employ someone from the Extend Scheme – This was achieved, and Ben has joined the BBC on an Extend placement.

Creative Goals

Social Goals

Financial Goals

  • Saving more over the course of the year – Partly achieved. I have bought a house, so now I am in a quite a bit of debt, but the money I will be putting towards my mortgage will be money I am effectively ‘saving’ because it will be put into the value of the house.
  • Joining a pension scheme – Achieved.

Health Goals

  • Adopt a regular form of keeping fit – Partly achieved. I have now setup a return commute which involves walking past a gym that I’m a member of, so it is quite easy to go in there for 30 mins on the treadmill 2-3 times a week. I’ve just got to maintain the discipline.

Next Big Thing: Voice Control for Home Automation

Amazon-Echo-Main-Image

So, I have totally bought in to the home automation craze that is currently ‘the next big thing’ in the technology world in 2015. Apple has released iOS 9 with their HomeKit home automation framework, Google have the Nest series of smart devices, and there are numerous emerging competitors and hundreds of devices out there right now that will network together in your home.

For the uninitiated, a ‘virtual assistant’ is a cloud-connected voice processing system which you can ‘talk’ to. This is how a voice assistant essentially works:

1. You speak into the device. Your device will record what you’ve said, and send it to the cloud.
2. In the cloud, sophisticated and adaptive voice recognition software analyses what you’ve said and converts it into text.
3. The text command is run on a server somewhere, for example the command, ‘what is the weather today?’ will fetch the latest weather report for your area and summarise it.
4. The summarised report is converted into speech and streamed back to your device.

Apple have Siri, Microsoft have Cortana, Google has Google Now and Amazon have Alexa. These are all voice assistants which utilise the power of big data and machine learning over millions of requests to improve their own accurately.

The more people use virtual assistants, the better they get. Apple have been really pushing Siri, including it in the Apple Watch and most recently the new Apple TV. Not necessarily because it’s what people want *now*, but because they are banking on enough people using it so it snowballs into the lead, vastly improves in functionality, and becomes ubiquitous in the home, maybe 5-10 years down the line.

Apple’s Siri has reported a 40% reduction in errors recently, meaning only 5% of the words it processes, on average, are misread. This clearly can, and will, improve as more people use it.

The speech recognition capability in Siri now has a 5 percent word error rate, thanks to a 40 percent reduction on the part of Apple, Craig Federighi, Apple’s senior vice president of software engineering, said today at Apple’s 2015 Worldwide Developers Conference in San Francisco.

Amazon, meanwhile, has the ‘Alexa’ virtual assistant, which seems to have most use in home automation. Although Siri is linked in with Apple’s ‘HomeKit’ automation standard, HomeKit-enabled devices are only just now starting to be released, and reliability is currently a problem. Meanwhile, Google have concentrated on providing a small number of reliable devices in their Wi-Fi enabled ‘Nest’ series. Google’s Nest Thermostat has recently integrated Amazon’s Alexa virtual assistant to recognise speech commands such as ‘turn up the temperature to 20 degrees’.

What a lot of people are saying is the ‘killer app’ for virtual assistants is the handsfree speaker and microphone unit ‘Amazon Echo’. Amazon Echo is a small unit with a highly sensitive microphone and speaker, which sits in your living room and you can ‘talk’ to it, just like you would with Google Now or Apple’s Siri. The best thing about Amazon Echo is that it can talk to other smart home devices, such as the popular Phillips Hue lights, the Nest thermostat, various security cameras. It also integrates with the site IFTTT.com which is like a giant patchbay for smart devices, allowing you to connect them together and cause a state in one device to trigger an action.

So you can be sitting in your living room, and say ‘Dim all the lights in the house’ and Amazon Echo will do just that.

Unfortunately though, due to the fact that it uses Microsoft’s Bing search and doesn’t give you an option to choose a different search engine, it is not legal to sell the Amazon Echo in the UK due to a non-competition covering search engines in EU law. Therefore there is still an open gap in the market for this type of product, one which Apple’s HomeKit and Siri integration is racing to fill. However the closed nature of the HomeKit world means that it is likely that it won’t integrate with the non-Apple setup of Google Nest and others.

Introversion, Extroversion and the BBC Software Engineer

introvert

Whether you agree with Myers-Briggs personality profiling or not, like fellow BBC’er Ian Forrester I have found them a useful frame of reference from which to discuss my personality, because I see similarities between my perception of me, and the classification.

I took the Myers-Briggs personality profiling, and it has labelled me on several occasions an INTP:

INTPs are marked by a quiet, stoic, modest, and aloof exterior that masks strong creativity and enthusiasm for novel possibilities. Their weaknesses include poor organization, insensitivity to social niceties, and a tendency to get lost in abstractions. Keirsey referred to INTPs as Architects, one of the four types belonging to the temperament he called the Rationals

I – Introversion preferred to extraversion: INTPs tend to be quiet and reserved. They generally prefer interacting with a few close friends rather than a wide circle of acquaintances, and they expend energy in social situations (whereas extraverts gain energy).

Is this bad news for me? Introversion can be seen as a negative in today’s hyper-communicative world, especially for a team-based work environment. However I don’t think it need be a problem in an organisation that prioritises abstract thinking and creativity, because introverts are often very strong in both. The technology and R&D side of the BBC, I would argue, is such an organisation.

I know a few people from Imperial College London, one of the top universities in the world for Computer Science (and Science Technology Engineering and Medicine in general) and have found it full of technically gifted introverts. Now, I didn’t go to Imperial myself, but it does seem that there is a correlation between introversion and high amounts of technical ability. I have found this also with a lot of software engineers that I have worked with.

I am not saying necessarily that all good software engineers are extreme introverts, in fact I would say that this is untrue in a number of cases. This is because Agile software engineering often uses techniques such as pair programming from Extreme Programming, and it helps to have extroversion when dealing with hyper-social practices such as programming as a pair every day all day (which I have done, and found it very draining).

In fact, I have noticed that technical ability is less important than your ability to work in a team at the BBC. I generally have fairly good social skills and tend to like introverts so I personally have not had a problem with dealing with people who were very introverted but were technically quite brilliant. However it was clear that these types of people just didn’t seem to fit in quite as well in BBC teams with high collaboration aspects. I think this may be down to cultural fit rather than something we can extrapolate over all software engineering organisations.

512eTxcGW6L._SX379_BO1,204,203,200_

Indeed, aside from my anecdotal evidence, in the book ‘Making Software’ Jo E. Hannay analyses the academic research on what type of personality programmers have, and what effect this has on their work. She writes;

We found that programmers deviated from a reference group in that they are lower on Extraversion, lower on Emotional Stability, and higher on Openness to Experience [Hannay et al. 2010]. See also [Moore 1991], [Smith 1989], [Woodruff 1979], [Capretz 2003], and [Turley and Bieman 1995] for related results. Programmers are also more homogeneous than the population as a whole; that is, programmers vary less in personality than do people in general.

So programmers tend to be introverts. Not really hugely suprising is it? However, she also notes:

We investigated .. in the context of 198 professional programmers pair programming over one day [Hannay et al. 2010]. We found that personality was a weak predictor of pair programming performance. Even crude measures of expertise, task complexity, and even the country in which the programmers where employed had greater predictive power than personality. The study also included an analysis of personality on individual programming and whether the effect on performance of pairing up had anything to do with personality. Again, expertise and task complexity are stronger predictors than personality.

Therefore an introverted personality is a poor predictor of pair programming performance across the industry. She goes on to say:

In ethnographic studies focusing on personality issues and disruption in software engineering team collaboration, it was found that disruption is bad, but lack of debate (which is a mild form of disruption) is worse [Karn and Cowling 2006], [Karn and Cowling 2005]. It is argued that pairs or teams with personalities that are too alike will lead to lack of debate. This finds empirical confirmation in [Williams et al. 2006] and [Walle and Hannay 2009]. In particular, differences in Extraversion has the largest effect: pairs whose peers have different levels of Extraversion collaborate more intensely (that is, engage in more discussion) than those with more similar levels.

She is saying that a pair of extroverted and introverted personalities collaborate more strongly than a homogenous pair. To me, this is good evidence that introversion and extroversion have their place in modern software development teams across the industry, and both types of personality should be culturally valued for collaboration, not just extroverts, even at hyper-collaborative organisations such as the BBC.

Completed Eurorack

modular

I’ve finished my 6U Eurorack case. It took me 9 months to build, buying a couple of modules a month.

Goals

I wanted to make a self-contained dual voice synthesizer that would interface with my 2x Doepfer Dark Energy MK1s and my Microbrute, on a budget. I also wanted to add some random sound generation features.

I chose to make the synthesizer out of Doepfer modules because they are easy to find cheap second-hand, and also because they are well-engineered. (If they’re good enough for Kraftwerk, who am I to complain?)

eurorack

Oscillators and Sound Generation

  1. 2x standard Doepfer A-110-1 VCOs with pulse-width modulation. I am no expert, but find these oscillators sound good enough for the money.
  2. A-118 Random Noise module, which outputs white and coloured noise. This has been useful for adding noise to a patch, as well as feeding the random noise generator through the quantizer and S&H modules for interesting random effects.

LFOs and Envelopes

  1. A-143-3 Quad LFO, which has been very useful in modulating my external gear, such as my Microbrute and Doepfer Dark Energy synths. I find it’s a good utility module to just patch something up for modulation, even though I rarely find myself using all 4 LFOs at once.
  2. A-145 LFO – I actually find myself wishing this was a VCLFO so that I could make midi-synced LFO sweeps, and might replace it with one eventually. I like the reset feature though.
  3. 2x A-140 ADSR – Standard envelopes, I bought two so I can modulate the VCA and filter separately at the same time, as is standard in synthesizers.

Mixers and VCAs

  1. A-132-3 Dual VCA – Another standard module, this is particularly useful as it has two VCAs, so I can feed each oscillator into its own separate VCA. I would like another one of these so I could amplify the output of the noise module separately from the VCOs.
  2. 2x A-138 Exponential Mixers – I have two so I can mix multiple waveforms from the VCOs with the white noise output from my noise generator module. The mixer in the bottom right corner of the case has rubber no-slip knobs, and I use it for the main output from my synth.

Quantizer and S&H

  1. A-156 Dual Quantizer – This is a really fun module which I use with LFOs, envelopes and my noise generator to make musical sounds from non-musical sources. I think it will come into its own when I get the Make Noise Maths module, which is on my ‘next steps’ list.
  2. A-148 Dual Sample & Hold – This is a module I haven’t quite grasped the utility of yet, I currently use it wired up to filters and a LFO for S&H filter effects.

Filters

I love filters.. so I got quite a few!

  1. A-120 VCF1 Low Pass Filter (Moog style) – The standard moogy filter, nothing wrong with it. I like the sound but mostly use it for filter sweeps.
  2. A-127 Triple Voltage Controlled Resonance Filter with Breakout Box – This is the key element of my setup. It allows for some really nice multiple filter chaining effects. I have the top filter set to ‘Low Pass’ mode, and the second and third filters set to ‘Band pass’ mode. Since I already have a LP filter in the Moog style A-120 I may change this back so it becomes a triple BP filter, which is the default. You can make some really nice patches with the inbuilt LFOs modulating the filter sweeps, but usually I will wire it up to my Quad LFO for modulation. As a unit, it is really good at making vowel-like sounds for eerie ‘almost human voice’ effects. The breakout box, which I haven’t soldered in yet, so haven’t actually used, will expand the possibilities of the unit even more, allowing me to put separate filers on each oscillator, for example. Love this module.
  3. A-106-1 Xtreme Filter – I haven’t used this much yet, but I just had to have the MS-20 style LP/HP filter in my case, and this filter ticks all the boxes.

MIDI Interface and Multiples

  1. Kenton Pro Solo MIDI-to-CV interface – I use this with my computer, allowing me to send CV for the oscillators through the Intelligel Buff Mult. It has clock out and a bunch of different features, such as portamento and even a LFO.
  2. Intelligel ‘Buff Mult’ – My only non-Doepfer module. This is a buffered multiplier, meant to make sure that fast pitch changes are duplicated correctly over the oscillators. I also wire up my Doepfer Dark Energy Mk1s to this, so I can have 4 oscillators playing at once.
  3. A180-1 Multipler – Just a standard multiplier which I use because I don’t use stackable cables (can’t afford them).

Things I’d like to Learn More About

Some things I have been meaning to investigate in my own time, but haven’t, because life just gets in the way.

  1. Maths
  2. – It might surprise a few people that, as a software developer, I never took maths to A-level. I picked up a bit of maths in my CS degree, but I never really got a firm grounding in it. This has prevented me from understanding and coding advanced stuff in game development, understanding audio to a decent level, and generally doing things in which I consider the more interesting fields of computing.

  3. Music Theory
  4. – I have been getting better at playing the piano/keyboard by ear, but I have never fully learned to read music, and I would like to.

  5. Electronics
  6. – I would love to be able to build simple DIY synthesiser module kits for my Eurorack setup. I imagine I’d have to start on something small though.

It would be great if I could take courses in these subjects, via the OU or something similar. I just have to find the time.

Goals for the Year 2015 – Midway Update

Winding Road

Now that I am midway through the year, I thought I’d revisit the goals I set myself at the start of the year, to see what has changed.

Career Goals

  • Settle into my new role at the BBC as Test Manager – I suppose this has not been achieved. I will have more updates soon (hopefully) but a change of direction is likely to happen.
  • Pushing for a place to be opened up in Platform Test to employ someone from the Extend Scheme – This has been achieved, and someone will be joining Platform Test from the Extend scheme in October, I’m happy to say.

Creative Goals

  • Get better at music production – This has been achieved. I have been working with my friend I will call ‘G’, which has massively improved my production skills. I have posted music that I see as much better to Soundcloud.

Social Goals

  • Getting married – Well.. things didn’t work out with that. But I have a new girlfriend who will hopefully be moving to live with me, so things seem to be recovering there.
  • Making friends with more people that share the same interests – Partly achieved. G is a good example of someone that I have met through looking for friends with the same interest.

Financial Goals

  • Saving more over the course of the year – Partly achieved. I have bought a house, so now I am in a quite a bit of debt, but the money I will be putting towards my mortgage will be money I am effectively ‘saving’ because it will be put into the value of the house.
  • Joining a pension scheme – Achieved.

Health Goals

  • Adopt a regular form of keeping fit – Not achieved. I have a gym even closer to where I live, 5 minutes walk, so hopefully I will use it more soon. It is difficult for me, as the medication I’m on makes me feel tired all the time, but they do say that exercise improves energy levels.

Conclusion

Although I’ve achieved the majority of my goals, I haven’t achieved two of the major goals – around my job and around exercise, which are both things I need to work on. There is still time left this year to make a difference in these areas.

Open Source! Device API and Device API-Android on Github

Two Ruby gems that I contributed to from my days in the BBC’s TITAN (Test Tools and Infrastructure) team, have been open-sourced. So finally I can say that I have made proper open-source contributions. The gems are for making automating of Android phones via Android Calabash easier, and are used in a lot of the mobile testing we do at the BBC. Here they are:

https://github.com/bbc/device_api
https://github.com/bbc/device_api-android

Here is my Github profile, which doesn’t look very active on the surface, but I have been contributing to repositories which remain private at the moment, so my history is not visible.

Instruments That I Use

I have a lot of different instruments, both hardware and software, for making music, but here is what I use the most at the moment:

Piano
I have an actual electric piano but I don’t use the onboard sound engine, preferring to use it as a midi controller for a software piano sound. Recently I bought Ableton Live Full Suite, before I was using the ‘Grand Piano’ sound from the default install. Now there is a whole ‘Piano’ Ableton Live pack, and that seems to offer much more realistic piano sounds.

Drums
Lately I’ve been using the Sonic Charge’s Microtonic for drums, because I have been making more dance-orientated music. I find the drums really good, and they’re already fully processed with effects so you can just slot them into the mix. I also have been using the built-in Ableton 909 kit sound a lot, but might move away from that as I don’t like the sound compared to Microtonic. At some point in the future I will probably get my Nord Drum hardware drum synth out, but for now I can’t find the power supply so it’s not working.

Synth
I have been using my modular and semi-modular synthesizer as a main bassline synth, with some sounds from Ableton over the top. I have used the Access Virus synth quite a bit for synth duty, and it has some great presets for evolving arps.

Modular Progress

Specs

eurorack

I have finished filling the top half of my Eurorack case, see above. Here is a list of modules:

Next Moves:

  • Get a logarithmic mixer module A-138b for mixing the output of the noise + two VCOs into the filter, and to free up some of my ZED-10 mixer channels for other things
  • Got another A-140 ADSR module but no cable, going to get a cable and put it into the bottom left corner of the lower section.

Usage

synths

My (mostly) Doepfer Eurorack is hooked up to my Microbrute, 2x Doepfer Dark Energy MK1s and my ZED-10 recording mixer.

The Microbrute acts as a pitch and gate out keyboard controller for all the synths and a semi-modular synthesiser in its own right with its patchbay.

The Doepfer Dark Energys are complete synth voices with a fair amount of input/outputs for modulation. They are hooked up to the pitch and gate out from the Microbrute via the Buff Mult and the Multiples on the Eurorack.

One configuration that I often use when composing music, is wire the Eurorack, the Dark Energys and the Microbrute into the ZED-10 mixer, tune each so they all play together, and create one massive analogue 5-osc synth mono voice which is great for devastating basslines, and I can modulate with the LFOs and envelopes in the system. I can then program a sequence into the Microbrute and transpose it when I play notes down on the Microbrute keyboard, or control it via the USB IN from Ableton.

Another configuration which I find interesting is patching the output of the Noise Generator/Random through the Quantizer. This results in random musical notes played by the oscilator, and you can create interesting pattern or arpeggios created solely by the Euroack without human input. I like the idea of generative music, and will be buying more modules to create more interesting computer generated randomness and music.

Modular Synthesizers

I am putting together a small modular synthesiser setup. Modular synthesizers are synthesizers composed of small individual modules, which are wired up to create a circuit for producing sound. They were very popular in the 1970s, with big bands such as Emmerson, Lake and Palmer, Kraftwerk and Jean Michael Jarre all owning big modular setups:

Keith Emerson's Modular Synthesiser

Modular synthesisers have had a resurgence in recent years with modern versions becoming available. One producer of modular synthesiser modules is Doepfer, a German company who’s modular synthesizer standard ‘Eurorack’ has become very popular recently. I have decided to build a small Eurorack modular, here it is so far:

IMG_0161

The blank plates are spaces for modules that I haven’t bought yet, I am slowly accumulating them. I have currently been wiring my modular setup to my ‘semi-modular’ synths. They include the Microbrute, and 2x Dark Energy MK1s synths, shown below:

IMG_0162

A semi-modular synth is a similar to a standard synthesizer, where all the synthesizer functions are self-contained in one case e.g. they are not just lots of modules. A semi-modular synth will work in its own right, without any additional wiring required. However, a semi-modular synth also has inputs which allow you to optionally wire up the semi-modular synth to other modules and semi-modular synths. So, it allows you to make one big sound processing circuit with all your synths wired together. Which is what I’ve been doing:

IMG_0160

So, not quite Keith Emerson, but it’s a start! But why would you do this, I hear you ask. What possible reason would you have for wiring up synthesisers in this manner? Well:

  • It expands the creative potential of your synthesizers. Instead of just having a few ways of creating sounds, you now have a lot more. Modular synthesisers have been used heavily in EA Games ‘The Sims 3’ for sound effects. Oscar-winning ‘The Social Network’ soundtrack by Trent Reznor uses modular synthesizers heavily, and more.
  • It allows you to build a synthesizer exactly the way you want to, with all the features you wanted for the type of music you make.
  • You end up learning a LOT about synthesis and how synthesizers are made, which can feed in to better sound design in the future, not to mention if you have an interest in electronics and music technology, this is a great way to learn.
  • If you are inspired musically by the technical side of music technology, (and a lot of producers such as Deadmau5 are) then it gives you another creative workflow to experiment with.
  • It’s fun. Wiring up things experimentally and creating sounds you never could have predicted would happen. The combinations are so exponential that you usually have no idea what will happen, and it’s almost like the machine created sounds just for you.