Practical vs Theoretical Agile Coaching

by Roisi Proven

The other day, the following tweet was shared by a friend of mine:

agile coaching

It put into words something that I’ve been struggling with for a while. As a Project Manager, I am always focused on the practical elements of the work I am doing. However, because Red Badger is a full-service agency, I also act as something more approaching an Agile coach. I help our clients work better within their organisation, so that they can subsequently achieve more with us.

As a result, I have attended coaching courses, and events attended more by Agile coaches than by people on the project side. After these events, even if I’ve learned something, I often end up feeling slightly unsettled and off-kilter. The theories and ideas that people were communicating were sound, but I was itching to know how they had been applied in a practical context, and that information never seemed to come.

Theory is just a beginning

Our priority at Red Badger is to make projects work as best they can so we can deliver a successful outcome. The theory is constantly evolving, and whilst knowing all the theory is sound, it is simply a jumping off point. For example, you can’t pass your driving test by only reading a book, but it’s an important part of the process.

When we engage with a client, delivery is everything. When we go in, we feel that the best way to introduce Agile into an organisation is to actually practice it. We take a full, cross-functional team, deliver a project quickly and to a high level of quality, and in the process show the true benefits of introducing Agile into an organisation (or, honestly, whatever method of delivery will work best for them). It’s very much a case of do as I do, not as I say.

The bigger the corporation, the more vital it is to show rather than tell. We have worked with several companies that have been going through “agile transformation” for months, or sometimes even years. They’ve read the books, they’ve had the lectures, but in the day to day they’re stuck with the old ways. It is natural to be risk averse when you’re responsible for £millions, so making a change that is so fundamental is almost impossible to achieve. There’s also a worry that if a way of working changes, jobs are at risk. When all you’re hearing is the theory, it can be difficult to see how you might fit into the new normal at your organisation. That’s where people like us come in.

Delivery is irrelevant?

This idea of learning by doing may seem like a no brainer, but I have heard some coaches state that delivery is irrelevant; that the theory of the process is all that needs to be discussed, and that it will answer all your questions. Just like in science, you don’t need to see something happen to know that it works (the sun controls the tides, right?).

When we go into a client, we do start as theorists. We poke and prod what they have, and put in an Agile framework that feels best for the situation. However, it isn’t until we start delivering that we discover what truly works for that specific client. A way of working that seemed like the gold standard on paper turns into a nightmare when used. So we use our failures productively and take small, incremental steps away from the theory until we have something that works for the situation and the client. This is the way that I’ve seen an “agile transformation” really start to succeed.

So for me, delivery is everything. Putting into practice the things I learn during lectures, learning from my mistakes and the outcomes is going to make me a better project manager. Theory can only get you so far.

Not All Agile Coaches

I may sound like I’m tarring all ‘Agile Coaches’ with the same brush. So I’d be remiss if I didn’t mention the fact that I’ve met some truly great coaches. Mike Cohn, for instance, provided the best Scrum training course I’ve ever attended. And of course there’s our very own Toqir Khalid, who’s come into project manage several very complex projects for Red Badger and managed to herd the largest of cats.

However, the things that these guys have in common, along with the other coaches worth their salt, is that every theory they taught was backed up with practical examples. The thing that made Cohn’s training so engaging was that every time someone asked a question, he offered a real-life situation for context.

The best Agile coaches have been there, done it. They already had failures that you haven’t encountered yet, and have found ways to improve. Those are the people who I want to learn from. The ones that are happy to fail, and eager to share the resolutions with others.

So, if you’re an Agile coach, be mindful that not all projects can be perfect, and that ‘failing fast’ should be encouraged. The best coaches I’ve come across understand this, and help educate us all in how to apply the theory to achieve success. So if you find yourself becoming a pure theorist, and hitting people with a word-constructed process stick, I’d strongly consider spending some time back on the ground. You might be pleasantly surprised to see what we’re managing to deliver, even if we’re not perfect.


React London Meetup August 2016

by Matt Phillips

Great beer, pizza and speakers can only mean one thing, another React London Meetup! This month we had three awesome speakers and the sweltering hot weather that can only be “enjoyed” once or twice a year in London.


Redux Middleware

Jonny Reeves – Improbable

First up we had the fantastically fast and clear talk by Jonny giving a great introduction into Redux, Redux Middleware, and how to implement your own tested Middleware.


Jonny gave an excellently executed demo of a counter app with a twist – an extra requirement that if a user selects add five times the app will have a side effect.

The Counter App was composed of:

  • View – a React Component that has two buttons, add and subtract, that when clicked dispatch an action to a reducer
  • Redux root store – the app’s root atom state management. When actions are dispatched they are consumed by the related reducer which updates state, triggering a re-render of the view
  • Redux Middleware – sits between the view layer and the reducers and intercepts actions before they hit the store. Once they’ve done their bit, they then pass the action object onto the next Middleware, and once all the middlewares have been consulted in order, the store reducers are reached. Redux Middleware are a fantastic choice for encapsulating side effects.

Jonny concluded this demo with examples of how to test your middleware using Mocha, Chai and SinonJS and how to design your middleware to be composable by injecting callbacks into the middleware allowing you to test your side-effect using spys.

You can check out Jonny’s slides here.

Re-writing a frontend with re-usable React Components via an API

Chris McKenzie – Notonthehighstreet

Next up we had the very interesting talk by Chris on the troubles of incrementally migrating an existing system to React and how NOTHS achieved this through Toga – a CaaS (Components as a Service) system developed by Chris himself.


Chris began by describing the age old problem of being tied into a specific language and outdated tech (sorry jQuery!), and the struggles of code becoming stale and brittle due to changing architectures and opinions over time.

So what did they want to achieve at NOTHS?

  • Develop faster for the business
  • Make changes easier
  • Share code
  • More out of their tests (no longer is testing an afterthought)
  • Serving the browser efficiently

This led to Toga which serves universal components which are pre-rendered on the server and initialised on the client so that they can be instantly used with any web-app.

So how does it work? Toga runs as a service supplying your custom component library on request. These components should be considered as Top Level components which contain all of the business logic needed. When making a request for a component props can be supplied as a url query. Toga will return the component as pre-rendered HTML. It also returns the associated JS, CSS and Vendor bundles to the page containing only the required assets – serving the browser efficiently.

Toga has allowed NOTHS to deliver code with the most value to the business during this migration phase, providing quick feedback cycles and sharable code.

Cycle.js: a reactive framework

Luca Mezzalira – Massive Interactive

Finally we had Luca give us a persuasive introduction into an alternative architecture of Model-View-Intent with Reactive Programming concepts in Cycle.js, with his eye-catching and informative slides.


Luca began with an introduction into Reactive Programming versus Imperative Programming. He then gave us an explanation of the core tenants that make up Cycle.js:

  • Pure functions – a function that given the same input will always return the same output and not cause any side-effects
  • Drivers – functions that listen to sink streams (their input), perform imperative side effects and may return source streams (their output)
  • Components – reusable piece of the UI, except in Cycle.js they have a special property, any Cycle.js app can be reused as a component in a larger Cycle.js app.
  • Streams – Observables are lazy event streams which can emit zero or more events, and may or may not finish

Luca finished with a demo of a TFL live feed and an overview of the Model-View-Intent architecture that is implemented in Cycle.js. By using Observables to communicate, each layer is decoupled as it does not directly know where to send each event, rather the event is detected by being observed. This decoupling and the fact that Observables are just pure functions is very powerful when testing.

  • Model – this is where the state is stored
  • View – receives data from the model observable and prepares the Virtual DOM
  • Intent – interaction from the user that prepares the data for the Model
  • Renderer – the Virtual DOM is injected and rendered.

Thanks to Jonny, Chris and Luca for their great talks, Facebook for hosting and everyone that joined us! Did you know we’ve moved the home of the React London Meetup? Check it out! Be sure to keep an eye out for next month’s tickets as they are likely to sell out quickly.


Branding a castle for a weekend

by Sam Griffiths

This year for Red Badger’s sixth birthday we stayed at Schloss Beesenstedt, a castle 45 minutes from Leipzig in Germany.
We had our Company Day, setting the direction of travel for the next 12 months – and then we had a party. It was a magical and stunning setting. It was amazing!


Amy, Becca, Val and Saadia all did a huge amount of work to make this happen, including a site visit earlier in the year. As part of that they were able to give the design team a great brief on the feel they wanted to capture in the graphics for the event – and naturally enough this sprang from the very individual, esoteric, dramatic and gothic nature of the castle (Schloss).

We hit upon the phrase “gothic decadence” to sum up the feel we were aiming for. We then hunted for ways in which we could express that, looking in bookstores, online, finding samples, testing colours…

We started using a heavy blackletter font called Fette Gotisch – it’s pretty hard to read – and as such would be impossible to use on almost any other job! But functionality was taking a back seat to decadence!

We knew that our palette had to be dark and rich. And that’s something we wanted to run through our imagery too. The question was, what were we going to use…? We were pretty sure we wanted flowers… rich, decadent and fleeting *swoon*. In the end Froso dug out a book she’d picked up from the Riks Museum in Amsterdam – it featured an amazing still life of a vase of flowers with insects crawling over them and a snail in the corner. It was rich and beautiful, but also dark and a bit dangerous.

Then we really lucked out and found this. The Riks Museum have digitised a huge part of their collection and made it freely available. It’s a fantastic resource. And it meant we suddenly had access to a wealth of appropriate high-res imagery. We now had a palette of rich, gothic decadence to use across all the materials required.

As part of putting the materials together we realised that they should not appear to come from Red Badger but from the Hotel itself, helping to create a make believe world around the hotel for this one weekend. The booklet we created for all the guests has an introduction written by Armin, the lovely/crazy guy who owns the Schloss. And the logo on the back page is framed by the line “Prepared for [Red Badger] Leipzig 2016”.

In the end the Schloss itself was so atmospheric itself that our materials didn’t have to do a great deal more – just help amplify what was already there. This was heightened by flowers Amy sourced, that fitted the theme perfectly, and the Badgers themselves, especially during the gothic masked ball. Here are a few pics….







A blog article by Sam Griffiths, Froso Ellina and Nathalie Goepel


Emotions and sales are ruling your life!

by Nathalie Goepel


120 international speakers, 3000 participants and more than 900 companies – that’s the Fifteen Seconds Festival. For two days, the city of Graz in Austria was celebrating the digital thought leaders of tomorrow. All this with a special dedication to the topic of innovation.

I attended both days (16 and 17 June) to find out about current trends in marketing, sales and advertising. What are the hot topics right now? What do people in small and big business talk about?

Technology has already taken over our private and work lives. Everything is controlled, everything has an algorithm, but what is happening to the human being?

The overall theme of the talks was that it’s time to take back control and be user-centred again. Using emotions can help businesses to stand out and be successful again.

Here’s an overview of my personal highlights:

Nobody cares what you say.

Oracle’s Vice President Matthew Banks excited the audience from the beginning with his provocative and outgoing talk.


It’s quite simple: no one remembers what you say, no one is interested in what you say because no one remembers anything at all!
All that matters is how you make people feel. Think about it for a second, talking to your friends, do you actually know what they said? Well, maybe you’ll remember a few words but that’s about it. In the end we remember the emotion behind how they said things, how it made us feel and how it changed our relationship. In the end it’s all about feelings. As a human being nothing controls us more than emotions and relationships.

And this is what really matters for organisations too. If you want to stand out as a company today you need to invest in journey mapping. Invest in your user. It’s critical to learn the emotions of the modern buyer and what triggers their decisions.

It is important to understand your customer and to reconsider the customer relationship. Opinions and prejudices about products and brands control a customer’s behaviour. Therefore it’s necessary to apply a positive change to detach them from those opinions and tensions by involving the customer with the following process:

  • Create Initial Map
  • Evaluate
  • Explore
  • Brainstorm and create a new customer experience.

This is a brilliant and simple technique for focusing on the inside in. It’s a quick way to bring to life what matters the most to the customers, when and where to deliver a special experience and how to tell the right story.

Where is the romance? Rules for creating romantic emotions in business

In contrast to the provocative Matthew Banks, Tim Leberecht – the bestselling author and founder of Leberecht & Partners – was all about romance.


We live in an disenchanted era of big data and quantification in all areas of life. We live in a world of algorithms. More than ever we are in deep need to rediscover romance, beauty and serendipity in business. It’s time for a new romantic era. Let’s fall back in love with our work and our life by designing products and experiences with an emotional and purpose-driven benefit.

But how do you become a business romantic? There are three rules of enchantment to follow:

Find the big in the small:
Algorithms are not everything, people strive to break out of the norm. The small and unexpected moments in life are what make the difference, not the big gestures.

Keep the mystique:
Secrecy and mystery make experiences meaningful again. Romantic is what is mysterious and does not last. It’s about the special moments. For example, take the experience company Secret Cinema, the movie itself almost doesn’t matter, it’s the unforeseeable details of the experience that catches attention and excitement. It’s all about making the familiar strange again!

Suffer (a little):
Real passion can only be developed with a bit of suffering. Business romantics require customers and colleagues to make a bit of effort themselves. Ikea has perfected the art of frustration, it’s an exercise and sacrifice to buy and build the furniture. Customers have to experience frustration, they have to want your product desperately, it’s like a love relationship aiming for the product. Like a real romance!

You are in sales. Get over it!


The next talk sales pitch was by Steli Efti the founder and CEO of Close.io. As one of the biggest sales people in the world he knows that sales has a bad reputation. And yes, the truth is no one wants to be in sales. No one ever said “When I grow up I want to be a salesperson”.

Well, the fact is if you are a human being, you’re always selling. Everything you do in your daily routine, in your career and your private life is selling whether it is in order to get a better job or selling yourself to the opposite sex. You’re always selling!
You can’t just change the world by only proposing ideas but you can change the world by convincing other people to take action. Sales means nothing else than being result-driven in your communications. The only questions are: What am I selling today? & how can I become better at it? You need to educate and sell them on the idea about why this makes everyone’s career and life better. You can’t just tell people “Sales is important.” You need to educate people. You need to pitch it to people again and again. Highlight the behaviour you want other people to replicate.

Start selling! Just do it and truly care about it! Sell yourself, a belief, a thought; just make sure you have convinced yourself first.

A happy team is a productive team

In the end it’s all about happiness. Isn’t it? Nico Rose, Senior HR Director at Bertelsmann and responsible for thousands of people definitely believes in it.
Culture is the secret to every company’s success. At Red Badger we strongly agree with this. Positive psychology can contribute a lot to make companies more valuable in terms of productivity, success and profitability.


To treat your staff well first means you have to invest a lot. Investing in time, facilities and staff. However in the long term a happy workplace equals more cash.

So what’s the point of spreading positive emotions such as satisfaction, excitement, or happiness?You want to know why? Well, there’re a lot of reasons.

  • Happy employees are less often sick. Why? Because positive emotions act like a protective element for the psychological immune system.
  • A happy staff also stays longer in your company. This saves you time from teaching new starters the ropes and you’ll need less personnel marketing as happy people also use word to mouth more actively.
  • Happy employees trust you more easily and are more likely to help other team members.

You see it’s very simple. If we are anxious or stressed, we withdraw. Positive emotions, however let us grow and are infectious. They help us expand our thinking and acting and drive a sustainable learning experience. They are the breeding ground for creativity and they drive us to think outside the box.

Developing aspects such as creativity, commitment, joy and self-fulfillment can increase the company’s value. Creating a workplace where your staff can flourish has a huge impact on people’s psychology and in the end their working attitude. Working for a company like Red Badger shows me and my teammates everyday how much of a difference it can make. I feel good coming to the Badger office every day. Why? Because it’s a relaxed environment where I feel comfortable chatting to my colleagues about life and work. This is why we’re more creative and productive at the end of the day; happy people are more productive, motivated and creative. Sometimes it’s just that simple!



I learned a lot during those two days and created a simple conclusion for myself. I will use the gained insights to make sure I focus on the users and create special and emotional experiences for them.

So I came to two key messages:

Learning 1:
Get outside your comfort zone. You don’t have to like it. Just get over yourself. See it as a valuable opportunity to train yourself.

Learning 2: It doesn’t matter what you say or do but what feelings you are evoking in people. Only those feelings will be remembered.


Emotions are replacing machines and technology. We need to focus on the human beings and their experiences to stand out of the crowd and be successful.
Be provocative, different and surprise with the unexpected and you will win people’s hearts. Fifteen seconds took this to its heart and created a magical festival. They connected the right people at the right place and time in a relaxed and intimate atmosphere. A place created like an inspiring playground to unleash and motivate networking filled with inspiration, all kinds of activities and not to forget amazing drinks and food. Simply an unforgettable emotional event..


Photo credit: Fifteen Seconds


WE HIRED A GERMAN CASTLE! ( AKA the best summer party ever)

by Amy Crimmens

Last month all the Badgers plus a whole heap of our friends and partners headed off to Leipzig to spend the weekend IN A CASTLE.

Red Badger is quite well known for throwing pretty fantastic parties (last year we took everyone to a private island) but I think last weekend was our best yet. We have resorted to writing a collaborative blog as after looking through the fantastic photos we have realised many of us have a missing hour here and there; so here are some of our favourite bits….

London > Leipzig, Joe Dollar-Smirnov

It was that time of year. The Badgers were ready. The annual summer party was upon us and in preparation we had packed our bags, booked our tickets and made arrangements to convene in one of the various trains heading to Standsted airport on that Thursday afternoon.

Badgers, distributed around Central London put down their tools, let down their hair and embarked on a journey to the mystical place that had been slowly revealed from a series of teasers earlier in the year.

The holiday had started.

Champagne toasts on the train, cheering and laughing and last minute panics, checking to see if everything was packed.

By the time we got to the airport the Badgers were united with their beloved plus ones for double the fun. Meeting and greeting new faces and old. Distributed teams, across bars in departures. Long queues. Very long queues. Then the next long queue to check in to our flight.

Looking up and down the line every other person was a Badger. The plane took off, more drink, some sleep then land.

A slightly lethargic but excited group gathered in arrivals led our fabulous crowd control expert. One by one she called off the names from her list. Organisation like this does not come easy. Herding cats.

“Half of you in that coach, half of you in that coach”

And off we went.

1 hour later the hi-tech luxury coaches pulled up to a mysterious location in a quiet village.

150 tired but excited, ready to go again, yet some hungover people all disembarked. It was 11pm at night.

BOOOOOM and a fireball of red hot flames shoots into the sky. Some duck and cover, some cheer. Everyone is amazed. Again, BOOOOOOOOM. Another fireball. A dragon is spitting excited fireballs into the air and then above the din the sound of the founding Badgers and the rest of the welcome party can be heard shouting, laughing and enticing these coach loads into the Castle.

This is where the real fun begins.

The Gothic Masked Ball, Valentina Soricaro

Finally the long awaited evening comes….I had been preparing my outfit for months and I was so curious to see how everyone else looked like. And I was not disappointed!



Despite being the only known “goth” in the company, everybody had made a massive effort and when I walked  down the castle stairs to meet at the Champagne Reception accompanied by a String Quartett, my eyes were overwhelmed with lots of black, darkness, mystery, fascinating masks and beautiful smart dresses.

group blog

The evening continued  with a great dinner and when we entered  the hall, everything was  decorated in the classiest way and there were beautiful flowers and candles all around, thanks to the work of our 3 amazing colleagues Amy, Saadia and Becca. I am sure I wasn’t the only one feeling like I got the time machine back to the 12th century.  The food was fantastic and we soon were drowning in rivers of delicious wine from the castle vineyards. After the dinner the merry Badgers met on the dancefloor to set free their inner ballerinas at the rythm of Trikosaki music (a band hired just for the occasion) and not long after down in the basement for some Techno courtesy of our founder Cain and other amazing Djs!


Remembering it now, I get a weird feeling of nostalgia and euphoria at the same time. Being in that decadent beautiful place, all dressed up, all having fun, all sharing our life outside of work, all being happy,  truly made it a special and unforgettable evening (despite some blurs given by the wine…). Most of the Badgers made it through the end of the night and I retired in my room at the early hours of the morning, with smudged make up and the happiest smile on my face!

The day After…., Harri Adams

I would love to tell you about our visit to the vineyard on Saturday, but sadly I was still dancing with a bottle of prosecco clutched in my hand when many badgers were getting up for breakfast. Safe to say, when I eventually went to bed, I was out for a good few hours. When I eventually emerged (around 5pm) I was feeling fresh and ready to do it all again!

By this point, there were some interesting tan lines (award for best suntan undoubtedly goes to Jon Yardley’s sock-marked ankles), some jolly wine faces, and all sorts of stories about the weird things that had be found in the castle the night before. Sombreros, bottom halves of mannequins, giant bathtubs, creepy portraits, strange metal sculptures, furry-walled rooms… And that’s just for starters.

We sat by the pool in the evening sunshine, drinking more prosecco and smothering each other in glitter, growing more ravenous by the second. As soon as the BBQ was ready, we scampered up to the ballroom and enjoyed a feast of german sausages, burgers, halloumi and a variety of salads, all washed down with many more alcoholic beverages. I’m sure you’re starting to see a pattern here…

IMG_2354 (1)

An hour or so later, and we heard there was a surprise waiting for us all by the pool. Electric with excitement, we gathered outside, just as the first of the fireworks lit up the night sky. What a spectacle! A truly special and memorable moment for us all – sparklers in hand, or in Federico’s case, a flare in hand.


Afterwards, feeling on a high, we all headed back to explore more of the castle. I found myself an hour or so later in the Liebe room, a room with fur walls hung with many naked pictures. I chose not to think too carefully about what those walls had seen. Towards the end of the night, about 20 of us ended up sat around the huge dining table chatting and listening to music. The venue couldn’t have been better suited to us and it was fantastic to share this experience with so many like-minded, fun people – it’s sometimes easy to forget they’re our colleagues.

Huge hats off to Saadia, Amy, Val, Becca & Nathalie for all their hard work – without which either the party would never have happened, or we’d all still be there.

The Castle, Becca Evans

I think it is fair to say the castle itself was EPIC. I remember when we first went over in June to do a recce – there had been a rave for about 300 people the weekend before, the place was a tip, people were literally still crawling out of it – but even in its state of complete chaos we were still blown away.

It took 3 hours for Armin to give the complete tour of it (albeit we were stopping every 20 minutes to refill our wine glasses) and at the end of it all i thought was the Badger’s are going to bloody LOVE this!

As soon as everyone arrived on the Thursday evening (much to Dave’s dismay…) they spread like wildfire – for such a huge place we really managed to make our mark. From the main dining room, to the balcony, to the weird Liebe room (I still haven’t worked out what that room is actually used for although i think i have a good idea…) there were Badger’s everywhere – it was the perfect setting.


I think the best thing about the castle was how versatile it was. On the evening of the Masquerade Ball everything was done to perfection – the chandelier staircase leading down to the champagne reception looked like it was built for royalty and the main dining hall that we ate in was equally as grand…. Fast forward 6 hours and you would find half the badgers had made their way down to the underground caves where the after party had begun. Things were a lot less fancy down there – it was dark and there was a smell that I would like to forget – but no one seemed bothered – they just wanted to carry on the party..

It really did cater for everything we wanted  – An evening to begin with decorum and to end in debauchery…


I think the main reason for the weekend being such a success was because of Armin (the owner of the castle). For those of you that met him, you will agree he is a unique character – his answer to pretty much anything to both men and women is “just take your clothes off”. Throughout our trip he was on hand to make sure everything was going to plan and that we had everything we needed, e.g. 20 extra bottles of Cava at 9am by the pool – it was there without fail.


(Armin with his brilliant yellow trousers)

The castle really was a magical place but it was the people that made it special. Now that we have been back a couple of weeks and just about recovered – who is ready for round two? I am.

Back to me again ( Amy)…

It may sound like it was one big party, and it was, but we also spent a day thinking about what we want to achieve over the next 12 months and came up with some great ideas. Spending time away together is also a great opportunity to build memories as a team and remind ourselves what fantastic people we work with. I think we’ll be talking about this trip for a long time to come!

There are heaps more great photos from our trip here. If you’d like to join our brilliant team check out or vacancies here and get in touch!


React London Meetup July 2016

by Melissa Marshall

Summer is finally (somewhat) here! With it came our July React London meetup where several hundred React enthusiasts traded the heat for pizza, beer and three stellar talks (which you can watch here).

Draft.js in the Real World


Red Badger’s very own Kadi Kraman kicked the night off with a run down of her experience using Draft.js – a fantastically flexible rich text editor – on a real-world project. She gave us an overview of how the plugin works and how she and her team integrated it into a custom built CMS. To link the plugin to the rest of the application, she built a Draft.js to Markdown converter which is now handily open-sourced. Since a custom CMS is a common project request, it’s awesome that their team has made implementing this editor easier in the future.

To wrap up, Kadi ran us through the pros and cons of using Draft.js. It has a very active and supportive community and excellent documentation. It also works well with Redux-Form and is insanely customisable. However, she found that all that flexibility can make implementing an editor quite challenging and gives the plugin a steep learning curve. The verdict: “Would I use it again? Maybe.”

BBC Sport and React

Screen Shot 2016-08-05 at 10.08.52

Next up was Ben Lambert from BBC Sport to talk about his experience using React and Node to handle the BBC’s ridiculous traffic needs (1.2 million web socket connections on a single page!). To support server side rendering and non-JS experiences, BBC Sport have moved from Angular to React with a new internal architecture that includes an internal API-endpoint-to-React-component transformation engine called Morph.

BBC Sport pages are heavily data-driven which means components full of async data-fetching calls. Ben and his team used Relay and GraphQL’s principles of containers (aka higher-order components) to abstract this data-fetching logic out of their components and make their code cleaner and more reliable. In one of the most impressive and bug-free live coding demos I’ve ever seen, Ben built a quick demo of a container that you can check out on Github. Can’t wait to hear more from the BBC Sport team about web sockets and their transformation engine!

React, GraphQL and Relay in Practice

Last but not least, Fabio Santos from YLD gave us some insight into using GraphQL and Relay in production. Fabio outlined some unusual tips for optimising your React code, including inlining your CSS styles in your HTML to get a full render on one request, making your code isomorphic for more performant server-side renders and dealing with third-party libraries.

Fabio Santos presenting at React London July

To illustrate his point better, Fabio showed us the most hilariously high-level infrastructure diagram of all time. What the green dots stand for, I still don’t know! He followed up with an explanation of how they use GraphQL and deal with its various oddities. Despite some weirdnesses, Fabio gave GraphQL a thumbs up as a powerful but not over-the-top query tool. In contrast, Relay was judged to be doing too much and not well enough – perhaps released before it was really stable and ready. In contrast to Kadi’s experience with Draft.js, Fabio saw Relay as a totally magic box that does all the work for you but loses so much in the way of flexibility and performance in the process.

We’d love to see you at the next React London meetup in August – you can track the event and get tickets when they’re out at react.london. Hope to see you there!


TL;DR: you’re not a unicorn anymore

by Hanna Cevik

Living in the technical community in Shoreditch, I’m overexposed to web geekery in comparison to those who don’t work in tech but because I don’t code for a living, much of it still passes me by. The questionable grammar – “internet all the things!!!!!”, deliberate misspelling – “WAT” and the like provides a closed community in which developers speak to each other in shorthand – and those who don’t get it, aren’t welcome.

I asked my dev mates, they confirm:

“typing is slow.”

Quicker, quicker!

The desire to speed conversations up has fed a subculture of speaking in shorthand since the earliest days of the internet – when speed, specifically connection speed, was definitely a limitation. Even the reddit about the first internet meme is predictably full of memes, some so dense I can only sense their presence, rather than identify them. Many of them rely on other geek subcultures like gaming or sci-fi, e.g. “it’s a trap” is from Star Wars.

Language is a magical thing – it adapts to suit the purpose and situation you find yourself in. At Red Badger we try not to use buzzwords or popular terms in our job ads because they’ve become cliched and overused. Examples include calling UX Designers “unicorns” or engineers “rockstar developers”. When I just asked our Community Manager to remind me of some of these, she said

“they make me feel a bit sick”.

No longer cool

When you work in a fast-moving industry like technology, it’s really important to stay up to date both as a developer and in support roles like marketing and talent. If you use the wrong terms or use terms wrongly, you will very quickly drop off people’s cool lists. In fact, there’s a term for doing just what I am doing right now: “FellowKids”.


How do you do, Fellow Kids?

This says it all – something that starts off as a compliment designed to change perceptions of roles becomes a twee or worse, sycophantic banality. By trying to be cool, you are the furthest you can be from cool.

Adapt to survive

The power of language, especially English, has long been it’s flexibility and willingness to adopt non-standard version of itself; adaptations become mainstream or locally/ culturally -specific informalities become universally recognised. In the era of global communication, this happens in subcultures that exist digitally as well as geographically.

The interesting counterpoint to all this is the accuracy required to write code. Misspellings and failure to apply rules renders code useless, so the need for accurate typing, clear concept of meaning and remembering to finish what you’ve started is a key skill of engineers.

Using the wrong terms when you’re talking from outside of the subculture, you run the risk of boring your audience faster than getting your message across. If you try to speak their language and get it wrong, you’ll lose their attention almost immediately, and permanently.

Pretty Lean

All of this lines up with Agile/ Lean methodology.

  • Cut the waste: don’t type more than you need to to be understood. Coders have rarely been the problem in getting web projects off the ground – it’s usually the bureaucracy and business processes that slow things down.
  • Constant adaptation: the favoured meme adapts over time as a measure of its own success. When it’s no longer relevant, it stops getting used.
  • Self-organising teams are the most efficient: don’t waste time listening to people who don’t have the tools to understand the whole situation… as software engineers might say: “MANAGERS”.

Agile is a bit of a leap of faith if you aren’t used to it. Lots of the organisations we work with start off uncertain how it will work for them. Agile done right is a powerful tool. It changes cultures, working practices, outcomes and profitability. It works. But, like being part of a subculture – you’ve got to go all in.

TL;DR – if you aren’t willing to commit fully, don’t try to run with the unicorns.

not a unicorn

Haters gonna hate


Screen Printing workshop

by Tania Pasia

The benefits of creative activities have been the focus of several studies over the years proving that engaging in creative activities has multiple benefits to our mental health and physical wellbeing. When these activities take place within a social setting the gains grow substantially, not only on an individual level but also on a collective one. Hobbies, side projects, workshops are few great ways to get involved in the creative process and relish the associated benefits.

Here at Red Badger we have a number of internal team building practices, one of them being our ‘Social Budget’ – a Red Badger initiative to support badgers socialise outside work. This initiative gives us the opportunity to hang out and participate in creative activities. One of the activities that got ‘sponsored’ by it was a Screen Printing workshop we did a while ago. The experience was brilliant; one I couldn’t but write about for those of you who’ d like to give it a go.

Here we are, the RB ladies proudly holding our artwork


Few words about Screen Printing – Background

According to Google:


Historically, screen printing was a form of stencilling that first appeared in China. It was largely introduced to Western Europe around the late 18th century but did not gain large acceptance or use until silk mesh was more available for trade from the east and a profitable outlet for the medium discovered.

Andy Warhol is among the pop artists that popularised screen printing as an artistic technique. One of his most famous paintings is Marylin Diptych shown below. This publicity photograph is from the 1953 film Niagara and Warhol made more than 20 silkscreen paintings of Marilyn Monroe based on the same photo.


What to expect from the workshop at Print Club London

The day kicks off with a warm welcome, a cup of tea and cookies. Your friendly instructor will briefly talk about the screen printing technique and what you will be doing on the day. You will hand over your artwork to a technician (images that you have saved on a .jpeg, .pdf, .psd) to edit in Photoshop and get the design ready for your screen.

Aprons are provided. I would highly recommend wearing them -how many times do you get the chance to look like a crazy scientist?-. Once you wear them you are ready for action.

This is where the magic happens. Ready? Go!

You will all gather in the Dark room to coat your screen with a light sensitive emulsion.

1_Applying emulsion

Once this is done you will leave the screen to dry. After a while you will join your instructor in another dark room with a massive exposure unit to expose your artwork to the screen.

2_Exposure unit

You will place your image facing up and put the screen on top of it, turn on the vacuum until the blanket is tout and start the exposure timer. A couple of minutes later the image will be exposed to your screen. Worry not! your screen will look the same, i.e. blank; you will be able to see the image on your screen only after you’ve rinsed the excess emulsion away!

3_Rinsing the excess emulsion

You will then let it dry outside -if weather permits- and head over for lunch.

4_Leaving them out to dry

–Lunch Break: Time for some yummy food around the area–

By the time you are back from lunch your screen will be dry. At this point you will have to use the tape and apply it to its edges to cover any pinholes you might spot on the screen.

5_Applying tape to the edges and pinholes

Now you are ready to go. Off to the print bench!

6_Print bench

Important step here is to attach the screen to the print bench and secure it to a fixed spot. You will then want to register the paper on the bench to ensure the image will be printed on the centre of your canvas. To do this you line up a scrap paper to the print and with a masking tape mark the spots where the canvas paper will be located (called registration marks).

You will choose a colour (or 2!) and apply a generous amount of paint across the width of the screen.

7_Applying a generous amount of ink

What you want to do next is cover the whole image with paint; you will do this by gently moving the ink upwards using the squeegee (a move called “Flooding”). Once the image is covered, you will push the squeegee downwards at a 60% angle. Make sure you apply enough pressure to ensure the ink is pushed through the mesh.

Ta da! Your print is ready! Remove it from the table and leave it to dry on the rack provided. You can carry on with the same process of Flooding and Printing as many times as you like (we had up to 6 official copies), with as many inks as you want!

When all printing is done, you will wash off the screen with high pressure water (yeap, it’s fun!)

8_Washing off the screens

Once you are done with the cleaning, your instructor will hand over your artwork.

Mission accomplished. Off you go to show off and gift a few copies to your amigos.

Fun Facts

  • You get to dress like a crazy scientist
  • You play with water and paints
  • You will go home with 6 ‘ownmade’ designs you will be proud of 🙂

And because as Badgers we are fans of communicating ideas through visuals, here is a beautiful illustration of the process described above.


Fancy being part of our team and join us for some fun stuff? Check out our job openings here and get in touch.


Functional Programming for the Web – July 2016

by Marcel Cutts

Another month, another fantastic meetup! This time we were treated to a lesson in combining music with Elm by the exceptional John Watson, and given a whistle stop tour of functional web language design by the phenomenal Bodil Stokke.

Audio in Elm – John Watson

John led us on an audio journey using one of the hottest languages around – Elm! He demonstrated what’s available with today’s browser Web Audio APIs, how we can use soundfonts to produce different flavours of noise, and taught us the ABC musical notation structure – a way of describing music that fits well with traditional genres.

With the clever Elm Combine in hand, we were shown how swiftly and elegantly we can write our own parser for the ABC musical notation and get something playing in our browser pretty quick!

John also talked about the practicalities of writing an Audio API library for Elm, the restrictions libraries have, why they exist, and what you can do to overcome these challenges.

We were treated to a demo of all this in action with some live music – check out his talk in the video below and have a listen for yourself!

There were plenty of juicy Elm tips and approaches shown – visit his Elm project on GitHub for some beautiful and pragmatic code.

A Realist’s Guide to Language Design – Bodil Stokke

Bodil grabbed our hands and took us through the fields of functional programming languages to teach us that there is no single best language, no silver bullet for every situation. Luckily, she provided the tools to let us make our own decision about which languages suit us and our projects.

After a fun introduction reminiscent of Gary Bernhardt’s famously charming ’Wat’ talk, Bodil asked us to think about some key aspects of language design, and if we were to make our own, what are the kind of things we should be thinking about?

  • What are you trying to achieve?
  • Who and for whom are you trying to achieve it for?
  • What level of abstraction is right?

She emphasised  that a good programming language should ideally feel like you’re having a conversation with your compiler.

Bodil then whizzed through examples in Elm, PureScript, and JS extensions to highlight their similarities, differences and what those could mean to you.

Elm is extremely browser focused, letting you get on your feet very quickly if your goal is a web application. It forces you to use a very specific type system that allows it to serve you immensely helpful error messages, automatically ensure package are where they’re meant to be and delivers solid confidence in development.

However, Bodil demonstrated that even uglified, Elm took up 108kb of space, and Elm on the server is a bit of a wish at the moment! Using foreign JS outside of the Elm space can also be a pain, and relies on the use of ports.

PureScript has a more generic type system, allowing you to reach a higher level of abstraction than Elm. However this more complex, powerful type system means there’s a loss in simplicity, the error messages aren’t as helpful, and you may need to reference a site like Pursuit for occasional guidance.

Interoperating with JavaScript is much easier than Elm’s approach through PureScripts Foreign Function Interface. Even better, you can manage these foreign functions and packages easily through trusty old Bower.

JS Extensions
Through the use of libraries like Flow, it’s possible to gain some of the positives of type systems without committing to a whole new language. This is fantastic news for legacy projects that want to gradually improve rather than commit to the risky gambit of a full re-write.

Which one is right for you? Bodil stressed that each has a different purpose, and we should take what we’ve learnt to assess what we need, what effort we have available, and the future.

Watch her talk and give us your thoughts!


That’s all! Thanks to everyone who came along, our gracious speakers, and to Skills Matter for hosting.

See you all next month!

If you aren’t already a member of the Functional Programming for the Web meetup you can join here. See you at our next event!



by Anna Doubkova

When starting our last project, we had long discussions about immutability of our state. Using spread operator or Object.assign in reducers didn’t quite cover our requirements. As crazy as we sometimes are, we decided for various reasons not to use ImmutableJS like most people do – instead, we went with mori. Combining reducers with redux’s combineReducers wouldn’t work in our case as it only works with plain JS objects. We looked around for a solution that we could use instead, something similar to redux-immutable. After a while, it became obvious that if we really want to use mori in our redux app, we’d need to write our own solution – and that’s how redux-mori was born.

Tl;dr: Redux-mori is a very slim library that allows using mori’s immutable data structures for state (and action) objects in a redux app.


It’s a little bit less nonsensical than this – promise.


I mean do we even have to explain this?


I think it’s fair to stop for a while before getting on with our project to explain why and how we use mori – and what it actually is.

We can learn from mori docs that it is “A library for using ClojureScript’s persistent data structures and supporting API from the comfort of vanilla JavaScript.” Couldn’t describe it better myself.

A few examples would probably make it clearer than a whole article on the topic. Let’s see how it actually looks when used in our apps?

1. When we get data from our server, we convert it immediately to a hashMap.


2. We then pass this data into our reducer using an appropriate action.

3. Finally, to use our state in components, we change clojure data into plain JS data at the last possible moment.


In the examples above, we’ve pretty much exhausted all mori functions and structures we use in our app. Mori has much more to offer though, and I’d really encourage you to have a good look at their docs to learn more cool stuff.


We decided to go for mori for a lot of more or less “emotional” reasons. First of all, we’re quite into functional programming and Clojure here at Red Badger. We like immutability and pure functions and aren’t that keen on objects.

Another reason we wanted to dodge ImmutableJS is the API. After using it on a few previous projects, some coders on our team were quite tired of the object-oriented, slightly over-complicated way of accessing and creating data structures.

Last but not least – with every project, we strive to learn more, to explore various options, and have fun. When we spotted something few people have done before, we wanted to get out there and try it out.

Using mori

You could have noticed that so far, we haven’t really used redux-mori in our examples. We really don’t need it for that much at the end of the day; we just need to re-write a few redux functions to work with a different data structure.

1. In your root reducer:

2. To create your store:

This way both your state and actions will be clojure data. When logged into the console using redux-logger, they will be automatically translated back into plain JS objects so it’s easily readable when debugging.

Why we like it

Doing things this way seems to be working out for us pretty well. Here’s list of pros:

  • It’s immutable
  • It’s functional
  • It’s readable
  • It’s reliable
  • It makes sense as a part of our workflow


Using it with other redux “extensions” such as redux-saga and redux-form can be tricky (same worked for redux-logger until we wrote our wrapper). These libraries typically expect you to have state as plain JS object and often doesn’t allow you to modify data structure of your app at all.

In order to make it work with redux-saga, we decided not to use createStore from ‘redux-mori’ in our current project. It works fine with redux-thunk however and we’re planning to extend either our project or submit a PR to redux-saga so that we can “go mori” all the way.

When trying to find a work-around for redux-form, Erik Rasmussen pointed out that redux-form support ImmutableJS already but not other data formats. There’s a “hack” of sorts that you can use though so even this problem has a solution.


Even if you’re not as adventurous (or mad) as we are and you want to stick to solutions well proven by others, I’d encourage you to give this a try. If you have any problems with making it work, feel free to get in touch on twitter.

We welcome any comments, issues, discussions, and pull requests.

And to conclude with – have fun, writing in a functional way is sexy 😉