dimanche 19 mars 2017

Intelligence, an adventure of complexity

This article is a reflection on "Intelligence" development through its history which I try to project into the future. It is inspired to a large extent by the exceptional geneticist, philosopher and humanist Albert Jacquard, in a context of Artificial Intelligence (AI) rise and an extremely sick society (inequality, neo-fascism, terrorism..).

Intelligence is evolving complexity. Complexity is when simple elements interact with each other, and surprise you with the outcome. According to Wikipedia, Complex is composed of the Latin words com (meaning: "together") and plex (meaning: woven) characterizing a system with many parts where those parts interact with each other in multiple ways, culminating in a higher order of emergence greater than the sum of its parts. If you take two inanimate Silex stones, and you scrub them together, they produce sparks!


In the first phase of complexity evolution, a long period of 13,8 billion years, hazard (i.e. randomness) is the king. The word Hazard is derived from Andalusian Arabic Azahr, which means dice.
  • After the Big Bang, quantic perturbations created some irregularities in the big homogeneous soup that was our baby universe.
  • With the help of four fundamental forces (gravitation, weak, electromagnetic, strong) more and more complex structures were emerging: neutrons and protons, then atoms like helium and carbon, then molecules, then stars and planets.
  • One of these planets, the earth appeared 4.5 billion years ago and it was quite special because it had ocean and atmosphere, two protecting layers from dangerous and fatal cosmic rays. These layers preserved emerging complexity on earth from rapid destruction, and prepared them for next evolution.
  • 500 million years later, an amazing thing happened. The appearance of DNA molecules codified genetic information and gave it the possibility of duplicating itself, or as we now say, creating a backup of its data! That preserved it for next complexity evolution: formation of cells and bacteria, the first form of life. 
  • Another revolution happened 900 million years ago, which was sexual procreation instead of replication. In this paradigm, 2 genetic pools are mixed to produce a completely new and unique organism, instead of just replicating the same existing genome.
  • The last decisive natural hazard was a deformation in primate brain that happened a couple of million years ago. Indeed, a kind of hypertrophy that exploded the number of neurons up to 100 billion!!
With that last master piece of natural selection and randomness, the universe gave us the physical potential to go even beyond. Nevertheless, that "beyond" was from now on in the hands of humans, not nature anymore.

Some anthropologists say that the first step of moving out from animal state was when our ancestors got rid of jealousy. In fact, less male competition during mating seasons gave more place for group solidarity which is more robust against the uncertainty of nature. We are now ready for the next level of complexity: Society. Society is the crucial factory that transform our physical potential to a human being by developing our conscious. Thanks to other's "you" when addressing me, I become an "I", I become aware of my own existence, and that changes everything. Another important achievement of society is transmitting knowledge representation, in other words preserving acquired complexity, the same as DNA did to our genetic information. From that moment human never stopped conscious conquest of more and more knowledge, explore new fields, ask new questions, and control nature.

What is the next step in the adventure of complexity? All eyes are now fixed on Artificial Intelligence. I recommend reading this article series for an excellent introduction to AI. In a nutshell, AI mimics human brain by creating software-based meshed neurons (Neural Network) that trigger an output according to the input. For example the input is an image, and the output is 1 if it's an image of a bird, and 0 otherwise. In order to have an intelligent Neural Network, we need to train it, i.e. give it thousands of images and make sure it adapts itself until it makes the correct bird identification. Neural Network creates knowledge representation through training.

AI, NN are all old concepts to some extent, but gained a lot of traction recently thanks to cloud computing and big data. Indeed, training a NN requires a lot of computing power, and a huge amount of organized data. Today, our brain has 10 000 more computational power than the biggest known NN, and is very efficient energetically. With our abstract though, we don't need big data to learn, a couple of bird images are enough to identify the concept of a bird. It is the result of billions of years of training:
  • Visual perception: 540 million years of data
  • Bipedal movement: 230 million years of data
  • Abstract thought: 100 thousand years of data
AI is an important breakthrough for humanity in its relation with intelligence and complexity, though big questions are yet to be answered. One of them is about machines becoming conscious of them selves, just like what happened to us.
For me the next step of complexity is elsewhere. It's the common intelligence, the "com" (together) in complexity. Even though humanity made exponential progress, but it sill fails major challenges such as stopping wars, financial crisis, famine... The most flagrant one is climate change, which threaten our whole existence, but we are rushing into the tragedy just like the novel "Chronicle of a Death Foretold" of Marquez. Like homo became conscious of itself, we humans we must become conscious of "ourselves" as a whole and be masters of our destiny. On this idea Jesus Christ and Karl Marx agreed together:  "When you are united, I  (the superhuman) will be among you" - JC, "We do not find the essence of humanity in each human, but in the human community."- KM. The revolutions of the last centuries are somehow this next level of complexity trying to emerge.

jeudi 2 mars 2017

Video streaming security

How can I protect my OTT platform from attacks? how can I stop bad people from stealing my content and monetizing it instead of me? Any OTT actor should be having these questions on video streaming security. In this post, I will share some answers from delivery (CDN) perspective, by building on my customers experiences. Video streaming security is tackled with respect to OTT platform & content components.


Typically, the OTT platform (origin) sits behind a CDN. As a result, bad actors will either attack the origin through the CDN or completely bypass it and attack the origin directly. I suggest the following solutions and best practices to enhance your platform security:
  • Isolate the origin on a separate infrastructure from other services, like email server for example.
  • Avoid using easy-to-discover FQDN of the origin (such as my-origin.ottdomain.tv) and do not expose it publicly (better use a completely different domain name).
  • Whitelist on your firewall (a cloud-based firewall is even better) solely CDN IP ranges. Most CDNs can ensure that origin fill is done through a predefined IP range.
  • Use CDN parent cache in order to reduce traffic back to the origin. In certain cases, when an asset has a very distributed audience, all CDN edge servers will go back to the origin to fill, which might bring it down like a DDoS attack!
  • Use CDN based geoblocking in order to block traffic from countries where you do not have audience. For exemple, if not operating in Latin America, you would better block this region because it has a considerable DDoS botnet concentration.
  • Understand how your CDN is capable of mitigating DDoS layer 3/4/7 attacks.
  • Implement restrictions on CDN: block HTTP POST requests if not used, ignore query strings that are not part of your normal usage.

I've got a lot of cases where customers have suffered from having their content appearing on third party websites and thus loosing potential revenues. The following solutions can help protecting against content theft:
  • Apply simple HTTP best practices on CDN like enforcing cross origin policy, and blocking requests based on Referrer header.
  • Authenticate streams on CDN by using cookie based (pay attention to cookies device compatibility and acceptable legal framework) or path based token authentication.
  • Add DRM protection to video workflow. This is the ultimate solution but comes with cost and complexity drawbacks since the DRM industry is still very fragmented and not standardized. Make sure that your CDN is compatible with the chosen DRM technology (for exemple Widevine’s WVM format requires that the CDN supports byte range requests).
  • Use TLS for video delivery in order to reduce the risk of a third party sniffing  your content on clear unencrypted channels. Make sure that your CDN is up to date in regards to the latest TLS security and best practices (secure cipher suits, OSCP-stapling, keep alive, false start...).
  • Contact CDN & IP providers of  websites which are stealing your content in order to block illegal content and dissuade them from continuing theft practices.

One last advice, common to platform and content security, is monitoring CDN logs and building some relevant security oriented analytics around it to have better insights on your streaming and take actions quickly to mitigate any abnormal behavior.

samedi 4 février 2017

SSE or Super Sales Engineer!

This post will be the last one in an article series where I share my thoughts on Sales Engineering. I've given my understanding of SE role, some tips for sales to better work with SEs, and now I'd like to share some SE best practices accumulated throughout my experience: Learning from my mistakes, trainings, getting inspired by others... Ideas and tips are compiled in three categories: Sales approach, developing skills and work organization. 


I - Sales approach

Fundamentally, a company needs SEs in sales team in order to defend the value of its products, grow revenues and make sure that proposed solutions fit customer needs as well as the organization's ability to deliver. 

The first question is how do you defend the value of your product? do you list its features and options? compare it to competition? or present some marketing figures on a slide deck? I've noticed that customers rarely grasp your offering's value this way. This is why I rapidly switched to story telling, where I use less slides and give more meaning. In a narrative style, I explain why my company has built this product, what is its unique positioning, what it does or doesn't do, how it makes sense for the customer, and always handle technical objections by using the story baseline. It's very important to bring life to your story through concrete examples like other customer cases. Let me be less abstract by telling the story of my company Level 3 projected onto 3 different products:

Broader story
Level 3 is a telco operating the most connected IP backbone on a very large owned fibre network, and who’s carrying more than half of world’s internet traffic.  Historically, Level 3 provided IP infrastructure to wholesale customers (eyeballs-ISPs) and big internet consumers like Google, Amazon, Netflix... Since 5 years, Level 3 is leveraging its scale and connectivity to address the Enterprise market in a propitious context where companies are increasingly using services over the internet.

IP story
Customers benefit from tiers 1 connectivity, 1 hop away from major public clouds without intermediaries, scalable bandwidth over fiber up to 100G with flexible billing models based on usage and commitment.

DDoS story
Level 3 has a long track of protecting it's own network from DDoS attacks, and now is putting this know-how in the service of Entreprise customers. Using globally distributed scrubbing centers on its owned network, Level 3 unequally mitigate large DDoS attacks (4,5Tbps and much more with its unique BGP flowspec implementation) without limitations. Moreover, big data generated from traffic carried on its network, gives Level 3 SoC an important real time visibility and intelligence to better mitigate attacks.

CDN story
Level 3 has built a large CDN on its own tiers 1 network  to provide an end to end performing and scalable caching service with competitive pricing. More infrastructure than feature oriented, Level 3 CDN is very well suited for video delivery. Level 3 is helping broadcasters to stream quality video, and consistently cope with their 10x spikes during special events such s sports games, political events, holiday periods.

The second question is how do SEs increase customer value thus develop revenues? I'll expose two ideas:

  • By building relations with its peers within the customer organization, SE contributes to better account understanding and opportunity identification. There are accessible ways for relation building: spend time with customer to understand his technical environnement, create customer architecture document resuming his services, share industry interesting information, hold recurrent workshops...
    Moreover, we should not forget that the foundation of solid relations is trust. Simple things help SE gain customer trust: honesty, professionalism, communication.. For exemple, on the communication topic, it's important to quickly and systematically respond to the customer and give him visibility, even if sometimes the updates are not pleasant, or there is no real news. You trust someone when he is always there for you right?
  • SE is a valuable asset for developing revenues through cross selling. Indeed, sales tend to cross sell by leveraging financial discounts, where SEs assist by leveraging technical synergies. In a more concrete way, let's take the previous example of Level 3 products and emerge some great technical synergies:

    IP+DDoS
    Using Level 3 DDoS protection over its IP internet connectivity improves time to mitigate as BGP convergence is faster on iBGP than eBGP, and gives the possibility to mitigate single IPs instead of /24 subnet minimum, thus optimizing solution sizing and pricing.

    IP+CDN
    Using Level 3 IP in conjunction with its CDN, improves video delivery by reducing the latency/ hop counts.

The last question is how can SEs contribute in ensuring that what is sold meets customer needs and can be delivered? Well by challenging sales, but in a positive mind set. Suppose that SE is involved in a project and is invited for a customer meeting. I believe that our job is to prepare well for the meeting by asking all the necessary questions to be aligned with sales and understand well the customer context: project motivation, contraints, actors, budgets, delicate points, timing, responsibilities, risks... Whenever challenges appear, it's important not to block but rather explain the risk and display the right costs. For exemple, customer is asking for a delivery in 2 months in his RFP, but the realistic lead time to deliver is 3 month. It's healthier for the SE to highlight this challenge, calculate the financial risk due to delay penalties, and estimate together with sales the impact on customer satisfaction, rather than just saying NO we can't do it.

II - Developing skills

There is no doubt about the importance of SEs technical skills in their daily job of understanding customers needs, resolving problems, understanding products and their underlying technologies. SEs should permanently develop their technical skills and knowledge in order to cope with business requirements.

Knowledge sources are numerous: internal technical documents, trainings, internet, forums, technical blogs... I'd like to highlight here on Linkedin as a wonderful tool for acquiring knowledge. Indeed, I recommend following or adding people that are active in your industry such as key gurus, specialized head hunters, colleagues from competition... It's important to keep your Linkedin feed focused, otherwise valuable knowledge will be drowned in the news flood, and becomes very difficult to stumble upon.


Once you are exposed to new knowledge, how do you assimilate it permanently? For me it's a challenging exercise. I suggest three tools that helped me in this exercice:
  • The first tool is to try to explain what you've just learned to someone else, even if virtually. Typically when you learn about a new product, repeat it in your head (jut like school!) until the ideas are clear, and you can reproduce it in very simple words.
  • The second tool is debating with your peers. For example, when you read an article about a new technology/feature in the market, confront your understanding with others in order to better shape yours and make sure you stick the new information in your head.
  • Finally, keep short notes about newly acquired knowledge to refresh what you have learned. It can be in any form that suits you, such as mind maps, Evernote... I personally use Microsoft OneNote that is simple and easily accessible from anywhere:



Now that you have acquired new knowledge, do you keep it for yourself? Well that would be a shame... Some have a strategy of differentiation by retaining information, but I believe that it is a very short vision strategy. Share knowledge, best practices with your team, your peers, your community... It's the best approach for the long term.

III - Work organization

Recruiters always mention multitasking skill in open SE positions. Indeed, SEs are working in parallel on several projects, solicited permanently in a random way by sales, customers, and internal teams. It's one of the most challenging aspect of being an SE, because in the same time he needs to be focused on solving problems and building skills. How can SEs balance between contradictory needs without exhausting energy? Well by a better work organization :)

I propose a couple of tools that helped me a lot as an SE on the "multitasking" challenge:
  • The first tool helps me identifying what tasks I am working on and prioritizing them. Indeed, I use Google Sheets in order to list tasks with relevant information such as customer name, account director, product line, urgency, topic, and actions/comments. This tool is useless without the discipline of updating it frequently. Typically when I start my workday, I give the sheet a look, and filter high priority tasks first to make up my plan for the day. With Google Explore, I enjoy some insights on my activity, such as how much I work with every account director.
  • The second tool is agenda on Outlook! well simply I reserve during the week some me-time slots where I am not available, not possibly interrupted, and where I can focus on tasks requiring so, such as an online training. Otherwise, my agenda is open, and anyone can reserve a slot for a call or a meeting.
  • Finally, always using Outlook, I deactivate mail notifications to avoid distractions. In fact, distractions are very costly in terms of context changing. In a more general way, we need to have an efficient communication strategy, where we use the right channel for the right information. For example, coach your contacts to reach you by phone for urgent matters rather sending email, thus you do not need to check your emails frequently. Having calls on a regular basis with sales, is more efficient than long email chains, where things can rapidly go wrong.

vendredi 6 janvier 2017

Make the best out of your Sales Engineer

In a previous blog post, I've written about my vision of Sales Engineering (SE) role within companies. SEs work closely with Account Managers/Sales reps in the sales team to create value for their organization as well as for their customers. In this post, I'd like to share some guidelines the sales rep can follow in order to bring out the best of synergies with his SE. I am building on my personal experience as an SE who worked in several companies, and with many sales having different working styles, in order to give the recipe of those whose approaches were the most successful ones with me and with my colleagues.




SE is rare company ressource which is very valuable in sales workflow. Yet, the most common error I've seen sales doing, is considering their SE as a mere resource, not a partner in the sales team. Indeed, sales must somehow act like a cross function project manager with his SE in order to motivate him, empower him, and align him to his targets. These are clearly leadership skills that are also needed with other key roles in the organization, such as service delivery, service management..

For every new project, sales must explain the project's context, what it means before making any request to his SE. It's about selling the project internally to him! What is the meaning/importance of the project? new industry, new product, new large revenues, important customer, important deal to close this month... Then explain the context of the project: key people, expectations, constraints, threats, opportunities...  I can't but think of Saint-Exupéry's words: "If you want to build a ship, don't drum up the men to gather wood, divide the work and give orders. Instead, teach them to yearn for the vast and endless sea".

During the project, sales must show necessary engagement as it will be somehow a reference for the engagement of SE. In other words, from SE perspective, if sales just disappears after making his request, or doesn't have the necessary time to discuss it, it means that the project is not that important finally, and wouldn't spend much time on it.

In sales-SE partnership, sharing knowledge mutually is a true competitive advantage! The worst sales were those who systematically hid information in order to keep control in their hands! also add those who didn't care about the SE point of view. It's not that difficult to know that the more data you have, the better decisions you take. Here are some exemples:
  • Sales provides all customer's history to SE before a meeting: existing architecture designs , past problems..
  • Sales asks SE for his opinion on the adopted project strategy, maybe he has information that the sales didn't see!
  • Sales asks SE to mentor him technically on a product
  • Sales train SE in in certain domains, for example on a specific industry vertical.

In terms of customer relationship, SE is the right hand of sales. He helps diversifying contacts at different levels within the customer organization, thus producing a better quality of information about customers needs and context. Sales must create the right communication channels between SE and the customer, coach him if needed and trust him. We all knew the customer-relation-nazi type of sales with his everything-must-go-through-me motto.

Each project is a great opportunity for learning and improving. Those who know it, understand the value of continuous feedback. For exemple, after a customer meeting, Sales tells his SE: on subject A your explantation was great and easy to understand, but on subject B, your speech was more focusing on our weaknesses rather than on our strengths. In his turn, SE tells the sales: on subject C, your information wasn't accurate, but on subject D your pitch was very convincing, I saw it on the customer's face.

Finally, sales and SE must act as one team. When a deal is won, it's important that sales gives credit to his SE as a recognition to his engagement and a motivation vehicle for next projects. On the opposite, when a project faces challenges, it's very important not to blame the SE and take the responsibility as a whole team. Otherwise, SE will protect himself in future by avoiding risk taking and hiding behind processes, which can be disastrous for business.

dimanche 25 décembre 2016

Data driven communication

I've noticed that in our communication, we often tend to pass judgment, which is processed information, instead of passing raw information. That is unfair to the ones that we are speaking to, because we do not give them the chance to have their own judgement. Not only it's unfair, but it is also source of misunderstandings and conflicts:
  • Upset customer about service: "Your network's quality is not good enough, we are receiving complaints from our users"
  • Excited business developer about a new opportunity: "Management should support me, this project will generate around 1M€ of revenues, huge one!"
  • Angry work colleague: "You did not reply to my emails several times this week"
In all of the above examples, sent information is not objective. I will give in the following some tips for achieving healthier communication.


The first golden tip would be: "A little less adverbs, a little more data!". Adverbs (too much, extremely, slightly, highly, nearly, very, quite, sometimes, seldom, often) without supporting data are pure judgment. Consider the upset customer again rather telling you, his network provider: "In the last week, the latency on your network was 150ms on average between our offices in Dubai and Paris, causing up to 10 user complaints regarding calls quality". In the first case, you are probably opening a ticket with your technical services in order to correct the issue, but in the second case, you are probably going to compare noted performance to contracted SLAs, might find it compliant, and thus propose a new feature (VoIP QoS) in order to improve the customer experience. In the first case, you are loosing time, whereas in the second you are generating new revenues.

The second tip is backing absolute values with references for better appreciation. For example, compare sales growth rate of this quarter to the same quarter of last year and compare churn rate of your customer base to your industry average. Consider our excited business developer again: 1M€ is indeed a lot of revenues, but his company has limited resources and got in its pipe some other projects generating 10M€ each. It wouldn't be surprising that the 1M€ project will not get priority (a small confession: it's a true personal story!).

The third tip is providing information about samples as well as about the population that we are sampling. Consider the angry colleague again. It's true that this week you didn't answer 5 of his emails, but he globally sent you over 100 mails, which means that you had around 95% responsiveness rate! the sample here is unanswered emails, but the population is sent emails. That would completely calm your colleague :)

Using data in our communication is not about inhibiting the expression of our thoughts and emotions. On the contrary, you are free to add your own subjective judgement, as long as you provide the full picture backed with data. Not only you will give your interlocutor the chance to have his own judgement, but sometimes, by using objective data, your own perception and judgement can change. This is typically the case when your judgement is biased by temporary emotions.

In this post, I gave mostly work related examples, but it's applicable to everyday communications: Better say "I love you like the ocean" than "I love you a lot" hein? :D