I’m a JUST EATer!

Hey guys, just wanted to drop a quick note to let you know that I have recently joined JUST EAT as a Principle Engineer, since some of you have been asking on LinkedIn and at conferences.

For those of you based in UK and Europe you might have heard of us – we are the leaders in the online food delivery space, and have been expanding rapidly in the last couple of years. In fact, we’re still actively looking for talented .Net developers to join us, and if you have experience with Xamarin then we definitely wanna hear from you! Check out our jobs page.

As a company, JUST EAT is very technology focused and amongst many perks everyone is entitled to a budget of £1000 + 5 days for training/conferences a year. And we also host many meetup events in our office near City Thameslink.

Keep an eye on our tech blog and github repo to see what we’re up to. A few of us will also be attending BuildStuff this week so feel free to come talk to us. I’ll be giving a new talk on 7 Ineffective Coding Habits Many F# Programmers Don’t Have, as well as an introductory talk on Elm (with plenty of live coding), so hope to see you in Vilnius!

Upcoming speaking engagements

Hey guys,

Just a quick note to say that I’ll be speaking at a number of user groups and conferences in the next few weeks, hope to see you at one of these events!

 

Oct 12    LDN Functionals #2 – F# in the Real World

Oct 24    Lambda.World – F# in the Real World

Oct 27    OSCON Amsterdam – Modelling game economy with Neo4j

Nov 12    F#unctional Londoners – 7 ineffective coding habits many F# programmers don’t have

Nov 18    BuildStuff – 7 ineffective coding habits many F# programmers don’t have

Nov 20    BuildStuff – My adventure with Elm

Win a ticket to OSCON Amsterdam!

As I mentioned several weeks ago, OSCON is coming to Europe for the first time ever and will be held in Amsterdam on 26th and 27th of October.

image

Some pretty cool tech com­pa­nies will be there – GitHub, DataS­tax, Google, Thought­Works, Pay­Pal, Heroku and Spo­tify to name a few! I will be talk­ing about “Mod­el­ling Game Econ­omy with Neo4j” there. And as a build-up to the main conference I’ll also be doing a webcast on Elm on Sep 15th.

 

The good folks at O’Reilly has been very kind to offer a FREE ticket to OSCON (worth €855 + 21% VAT) to one lucky reader of this blog!

To enter, just submit a comment below and tell us what is your favourite open source project. I’ll pick a random commenter as the winner in about two weeks time and announce it on this blog.

 

To get things started, my favourite open source project at the moment is a tie between Paket and FAKE, many thanks to Steffen for starting both projects!

My picks from OSCON keynotes

So OSCON came and went, and whilst I haven’t seen the recording for any of the sessions, the keynotes (and a bunch of interviews) are available on YouTube.

Unlike most conferences, the OSCON keynotes are really short (average 10-15 mins each) and having watched all the published keynote sessions here are my top picks.

 

Simon Wardley – Situation Normal, Everything Must Change

I’m a big fan of Simon’s work on value chain mapping, and his OSCON 2014 keynote was one of the most memorable talks for me last year.

swardley_13

Simon started by pointing out the lack of situational awareness on the part of enterprise IT. Enterprise IT lives in a low situational awareness environment that relies on backward causality and verbal reasoning (or story telling), and has no position or movement.

Whereas high-level situational awareness environments (e.g. military combat) are context specific, you have positions and movements and usually employ some form of visual reasoning.

swardley_14

Military actions are driven by your situational awareness of the where and why, but in Business we have a tyranny of actions.

swardley_15

and this is where Simon’s value chain mapping comes in. With maps, you can add positions to your components based on the values they provide, as well as movement as they evolve from the unchartered world (chaotic, uncertain, unpredictable, etc.) to become industrialized.

swardley_16

In terms of methodology, there’s no one size that fits all.

Agil, XP and Scrum are very good on the left side (the unchartered world), particularly when you want to reduce the cost of change.

On the right side, as things become industrialized, you want to reduce the cost of deviation and Six Sigma is good.

In the middle where you want to build a product, lean is particularly strong.

swardley_17

If you take a large scale project, rather than having a one-size-fits-all methodology, you can employ different methodologies based on where that component is in its evolution. For developers, this is no different to the arguments for polyglot programming, or polyglot persistence, because no single language or database is good for all the problems we have to solve.

Why should the way we work be any different?

swardley_18

By overlapping the value chain maps for different areas of the business you can start to identify overlaps within the organization, and a snippet from his most recent post shed some horrifying light on the amount of duplication that exists:

…To date, the worst example I know of duplication is one large global company that has 380 customised versions of the same ERP system doing exactly the same process…

The US air force discovered that, as people came up with new ideas they tend to add features to that idea and made it better (and more complex); they then added even more features and made the idea so complex it’s completely useless to anyone, and that’s approximately where they shipped it. (for regular readers of this blog, you would probably have read about this obsession of features many times before)

So Lt. Col. Dan Ward came up with FIST (Fast, Inexpensive, Simple and Tiny), which in his own words:

…FIST stands for Fast, Inexpensive, Simple and Tiny. It’s a term I use to describe a particular approach to acquisitions and system development. As you might guess, it involves using a small team of talented people, a tight budget, a short schedule and adhering to a particular set of principles and practices…

in other words, small is beautiful, and it’s a theme that we have seen repeatedly – be it microservices, or Amazon’s two-pizza teams, etc.

And as you impose constraints on the teams – tight budget, short schedule – you encourage creativity and innovation from the teams (something that Kevlin Henney also talked about at length during his Joy of Coding closing keynote).

 

However, even with small teams, you still have this problem that things need to evolve. Fortunately we have a solution to that too, in what is known as the three party system where you have:

  • pioneers – who are good at exploring the unchartered world
  • settlers – who are good at taking half-baked ideas and make useful products for others
  • town planners – who are good at taking a product and industrialising it into commodity and utility

swardley_20

Once you have a map, you can also start to play games and anticipate change. Or better yet, you can manipulate the map.

You can accelerate the pace of evolution by using open practices – open source, open API, etc. Or you can slow the process down by using patents, or FUD.

The key thing is that, once you have a map, you can see where things are moving and visually reason about why you should attack one component over another. And that’s how you can turn business into situational awareness first, and actions after.

As things move from product to commodity, they enable a new generation of services to spawn up (wonder), but they also cause death to organizations stuck behind the inertia barrier (death).swardley_21

This is a pattern that Simon calls War, Peace and Wonder, and is identifiable through weak signal detection and see roughly when these changes will likely happen.

swardley_22

Simon finished this brilliant session with three lessons:

  1. if you’re a start up, have no fear for large corporates because they suck at situational awareness;
  2. the future is awesome, and pioneers have already moved into the space of open hardware and open biology;
  3. open source itself is changing, we have new people coming in as new settlers

 

I hope you enjoyed Simon’s talk, his blog has much more information and goes into each of these topics in a greater deal of detail. If you follow him on Twitter (@swardley) he also post regular titbits of wisdom, which I have started to collect.

 

James Pearce – How Facebook Open Sources at Scale

…We use in production what we open source, and we open source only what we use in production…

– James Pearce

Nuff said 

 

Martin Fowler – Making Architecture Matter

I don’t like the term “software architecture” as it summons up these images of some senior person in an organization who’s setting rules and standards on how software should be written but having actually written any software for maybe 10 or 20 years. These architects, Joel Spolsky use the term “architecture astronauts”, often cause a lot of problems in software projects. So the whole term “architect” and “architecture” has a kinda nasty taste to it.

– Martin Fowler

For me, the key points from this talk are:

  • the notion that architects shouldn’t code is wrong (or, don’t be an ivory tower architect!)
  • architecture is really the shared understanding of the system’s design amongst its expert developers
    • architecture diagrams are just (often imperfect) representations of this shared understanding
    • as software projects grow, what matters the most is for you to ensure a good shared understanding between people leading the project
  • architecture is also the decisions that you wish you could get right early
    • your concern is therefore the decisions that are hard to change, e.g. the programming language
  • combining the two definitions above, and you can think of architecture as the “important things that I need to always keep in my head whilst I’m working on the system”
  • when confronted with requests for more features over quality, don’t make the moral argument of craftsmanship
    • when it comes to a battle between craftsmanship and economics, economics always wins
  • a common fallacy is to think that software quality is something that can be traded off for cost (like you do with cars or cellphones)
  • software has both external (visible to users) as well as internal (good modularity, etc.) and architecture is about internal quality
    • what matters with internal quality is the long term picture
    • well maintained code base gives you a platform to build upon and can make future development easier and faster
    • poorly maintained code base makes it harder and harder for you to make changes to
    • this is why architecture matters!

 

Raffi Krikorian – Hacking Conway’s Law

Conway’s law has been a trendy topic at conferences this past 12 months, and everyone is basically singing the same tune – apply Conway’s law in reverse and organize your communication structure to fit the software you want to build.

 

OSCON is coming to Europe!

At long last, we’ll see a version of OSCON in Europe this year, on 26th-28th October in Amsterdam. Some pretty cool tech companies will be represented there – GitHub, DataStax, Google, ThoughtWorks, PayPal, Heroku and Spotify to name a few, and of course, our very own Gamesys 

I will giving a talk on the work I did with Neo4j a while back, which you can read all about in this post.

p.s. Rachel Reese (of Jet) is coming over from the US and talking about building reactive service with F#!

 

Links

Tokyo Experience Report

Quite a few people have asked me about my trip to Tokyo recently and to see some pictures, so here’s a completely non-technical post about my experience there! Hopefully this will help your planning if you’re looking to visit Japan in the near future.

 

Airports

There are two international airports for Tokyo – Narita and Haneda. Narita is about 1hr 30mins from Tokyo city centre by train whilst Haneda is about 30 mins away.

We stayed in Shimbashi, which is one direct train journey away from both airports. It’s also very close to a number of notable attractions such as the Imperial Palace, Tokyo Tower and Tsukiji Fish Market.

There are also coaches that can take you directly to a number of hotels in Tokyo including Park Hotel Tokyo where we stayed.

image

We had a good view of the Tokyo Tower from our room and it’s quite a sight at night.

 

Wifi

There aren’t many public Wifi spots (though you can find them in Starbucks and other cafes), but you can rent a mobile wifi egg at both Narita and Haneda airport for about £7-£8 a day. You get really good speed with these and they work on the underground as well.

 

Tokyo F# user group

On the day I arrived I actually met up with the Tokyo F# user group and gave a talk on F# at Gamesys. Big thanks to Yukitos for setting it up and the guys for attending!

If any of you F# folks find a chance to visit Japan you should definitely hook up with these guys too, they showed off some interesting stuff they’ve been working on.

I was too jet-lagged and brain-dead that it didn’t even occur to me to get a snap with the group  I had just travelled back to London from Polyconf; journeyed across London from Luton to Heathrow; then took a 16hr flight to Tokyo with a 2hr stop in Germany; I was barely functioning by the time I got to the meetup.

In hindsight I should have met the guys maybe a day later so I’m in better shape and am able to join them for a beer or two afterwards.

 

Food

The food in Tokyo was not as expensive as we imagined, you can get a bowl of ramen for around 800 yen (about £4) although sushi tends to be relatively expensive.

While you’re here you should definitely try the ramen, be warned though, they are very rich in flavour and a wee bit salty for my taste, especially the miso flavoured ones.

Pretty much every restaurant we tried was good, many of them are tiny though, so there might only be standing room.

Don’t forget to ask for a non-smoking seat!

Not all restaurants have a non-smoking areas but it doesn’t hurt to ask. It’s not a pleasant experience to be sandwiched between two groups of chain-smoking Japanese men whilst you’re trying to enjoy your meal…

If you go in the summer, it’s also worth trying out the Buckwheat noodle which is usually served cold with a bowl of soup or soy sauce to eat it with. In 30 degrees heat, this is surprisingly refreshing!

image

And then there’s the bento/set meals that you tend to get at lunch time. Again, these are really affordable and generally good quality and just enough for one person.

image

We didn’t see any small food stands on the street (like in Seoul and Taiwan) but then again, you’re never more than a few mins walk from a restaurant, so finding a place to eat is never an issue in Tokyo.

 

Tsukiji Fish Market

If you go to Tsukiji fish market really early (say, 6am) then you can see the salmon auctions. It wasn’t our thing so we just explored the nearby restaurants for some fresh seafood for lunch and boy they didn’t disappoint! 

image

Many of the restaurants have similar dishes – mainly rice with sashimi/fish roe/etc., but prices can differ by up to 20~25%.

Some places claim to have no-tax, but what they really mean is that the prices on the menu do not include tax, but they still charge you ~7% tax on the final bill.

In the outer market, there are also lots of small food stands where you can buy grilled seafood/fresh oyster/etc., there was even a shop that sells king crab legs (though it’s one of the more expensive things you’ll find there).

Oh, and this place gets really really busy on weekends so avoid going there on Saturdays and Sundays if you can!

 

Ghibli Museum

We really wanted to visit the Ghibli museum just outside of Tokyo, having grown up with so many of its classic anime – My Neighbor Totoro, Porco Rosso, Nausicaa of the Valley of the Wind, Princess Mononoke and Spirited Away to name a few.

Much to our surprise, it was completely booked out for the month of July… Word of advice, book online before you travel if you wanna stand a chance of getting in.

It’s a minor consolation that there’s a big wall clock near our hotel that’s modelled after Howl’s Moving Castle and it “comes alive” at several specific times a day.

 

Tokyo Tower

This is Japan’s answer to the Eiffel Tower, and I’m sorry to say that it’s a fairly weak answer at that – the view is just not comparable to the Eiffel Tower unfortunately. image

 

Meijin Shrine

A short walk from Yoyogi station is the Meijin Shrine, which is situated right next to the National Park. The whole area is covered with these great big trees and extremely well preserved.

image

image

Once inside, you can buy charms as well as a wooden board to write down your wishes.

image

The souvenir shop also sells quite a few variety of locally produced tea in different forms – tea leaves, tea bags as well as powder. I’ve never tried making tea from powder before but it’s really convenient and you can also make cold/ice tea from them too. Now that I’ve had a taste, I wish I had bought a few more bags of them at the time.

If you find green tea’s flavour a little too strong, you might wanna try the roasted brown rice tea which has a milder flavour but still has that nice aroma that green tea has – yeah, I love my tea! 

 

Sanjo Shrine

Compared to the Meijin Shrine, the Sanjo Shrine feels much more touristy – a long stretch of road leading to the shrine is lined with endless souvenir shops and food stands.

I didn’t enjoy it very much (but I still couldn’t help myself and bought some snacks and souvenirs along the way, oh the shame…), as it was crowded and feels very commercialized.

image

image

 

Nekorobi

Cat cafes are a big thing all over Asia, and we had to visit them whilst we’re here. We went to two cat cafes near Ikebukuro station, and Nekorobi is the oldest and most famous one in Tokyo (or so the hotel staff tells us).

Nekorobi costs 1000 yen (roughly £5) for the first hour (drinks are included) and is basically the size of an apartment.

We got there early (around lunch time when it opens) and managed to enjoy some quality time with the cats before other people started to show up.

image

image

image

The cats, as they do, spend most of their time sleeping and ignoring us.  They’re very approachable though and didn’t mind us petting them at all. However, they didn’t fancy playing, except for this little cutie whom took a real liking to us!

 

Nekono iru kyukeisho Nikukyu (299)

This place is big, and with lots of cats sleeping and wondering around. There are lots of manga and books on the shelves (all in Japanese unfortunately) and most people there are just chilling out, drinking free coffee and reading.

image

image

image

image

image

It’s slightly more expensive compared to Nekorobi – 200 yen (£1) per 10 mins + extra if you want drinks as well. If you pay another 500 yen (around £3) you can also have the honour of feeding the cats treats and watch them swamp all around you!

 

Overall Impression

We really enjoyed our time there, Tokyo is a lovely city, everything is very clean and tidy. The trains are always on time, clean and well air-conditioned (I hadn’t realise how dirty the London underground trains are until I got back and noticed the stark contrast).

Language can be a barrier, many people in the shops didn’t speak English but we managed to get by with Chinese (it was the same when we were in Seoul as well, a side-effect of the growing middle-class in China I suppose)

 

And as if to welcome me back to my familiar surroundings, on the journey back home we saw this in the tube station. Yup, I’m definitely home!

image