Tech Talk: Implementing a Key-Value Store for Fun (and Profit?)

The new year of 2017 kicked off greatly at Founders Founders. The first Tech Tech Talk, one of the many events organized each month that brings the community together, was about implementing a key-value store, be it for fun or even profit (we know, very techy, but what would you expect from a “Tech Talk”?). It was delivered by our very own André Silva, responsible for the idea and all the set up behind the presentation and, we swear we’re not being bias, he totally rocked it.

TechTalk

 

However, we surely don’t want you to miss anything! You can check André’s presentation below and, who knows, maybe even store, retrieve, and manage associative arrays through the implementation of your own key-value store.

Tech talks are one of ShiftForward’s ways to share knowledge with others and their own. One of our developers prepares a subject, presents it, and debate ensues. Feel free to join the discussion in the comments’ section!

Tech Talk: Customer Lifetime Value

Customer Lifetime Value was João Azevedo’s topic of choice to kickstart the Tech Tech Talks (not a typo) at Founders Founders (again, not a typo). João Azevedo on Customer Lifetime ValueShiftForward has recently established its headquarters here and it’s a really nice place to be, so feel free to come by if you’re in the neighborhood.

The Founders’ House has a tech talk initiative where every month someone from one of the businesses working here presents a theme. João had the honor to be the first one to present and he has kicked it off impressively.

What is Customer Lifetime Value?

Customer Lifetime Value is a marketing metric. It allows businesses to predict how much their customers will be worth in the future.

CLV is especially relevant for marketers to know whether and how to spend their money:

  • customers predicted to be worth a lot of money in the next few weeks, months or years can be nurtured to fit that expectation or even enhance that prediction;
  • customers predicted not to repeat their shopping experience in a few days, months or years can either be reached to avoid that or simply let go.

It also helps businesses rethink their customer acquisition strategy – it proves that having a lot of customers might not exactly mean you have a lot of GOOD customers.

And how exactly do I measure that?

The bad news is there are a bunch of ways to calculate CLV. The good news is João has got it all covered and shows you every single one of them, letting you draw conclusions on which might be the most useful for your purposes.

Tech talks are one of ShiftForward’s ways to share knowledge with others and their own. One of our developers prepares a subject every week, presents it, and debate ensues. Feel free to join the discussion in the comments’ section!

Tech Talk: Ray Marching

Yeah, you got that right. This time, we dive deep into Ray Marching, all thanks to this tech talk from our beloved João Costa.

João Costa on Ray Marching

Ray Marching (which also goes by a variety of other names but we’re not here to discuss that) is a rendering technique that traces the path of light through pixels to create very, VERY real images. Of course this implies just a tiny little bit of hardcore algorithming but you can totally cope with that when the final result is going to be this great.

João lets us know how to manipulate distance fields and illumination models to create textured images from almost scratch in this very enlightening (got the pun?) presentation:

Tech talks are one of ShiftForward’s ways to share knowledge with others and their own. One of our developers prepares a subject every week, presents it, and debate ensues. Feel free to join the discussion in the comments’ section!

Tech Talk: An Introduction to Hidden Markov Models

João Azevedo, Lead Software EngineerThis time, João Azevedo tells us about Hidden Markov Models (HMM), one of the go-to algorithms when it comes to classification, particularly temporal pattern recognition.

HMMs predict outputs based on the existence of unobserved (hidden) states in a process. With HMM, you can create instances of archetypes, for example, rainy vs. sunny, buyers vs. non-buyers, big spenders vs. small spenders, which you can then apply to new situations (be it your need for an umbrella tomorrow or how expensive your new clients’s shoes are going to be).

For the whole picture, make sure to check João’s presentation:

Tech talks are one of ShiftForward’s ways to share knowledge with others and their own. One of our developers prepares a subject every week, presents it, and debate ensues. Feel free to join the discussion in the comments’ section!

Tech Talk: Rust – Safe Systems Programming

André SIlvaOur lead engineer André Silva was all over Rust as soon as it was released and has it all figured out in this sharp-looking presentation.

Rust is Mozilla Research’s latest programming language and its first stable version came out just a few months ago.

So, if you are looking for top-notch 101 know-how on Rust, follow André’s quick guide to its most astounding features, including:

  • zero-cost abstractions (C++ like performance);
  • guaranteed memory safety;
  • threads without data races;
  • rich abstractions (e.g. pattern matching, traits, type inference).

Check them all out here:

Tech talks are one of ShiftForward’s ways to share knowledge with others and their own. One of our developers prepares a subject every week, presents it, and debate ensues. Feel free to join the discussion in the comments’ section!

Tech Talk: Bayesian Inference in Scala

Rui Gonçalves

This week, Rui Gonçalves brings us a presentation on Bayesian Inference in Scala. Bayesian Inference allows you to refine the probability for a hypothesis as evidence is acquired: the more information on a given event you have, the more you shield your decisions.
Rui lets us know how the use of this kind of inference in Scala makes it possible for you to adjust probabilities to get a more realistic overview of your data.

Tech talks are one of ShiftForward’s ways to share knowledge with others and their own. One of our developers prepares a subject every week, presents it, and debate ensues. Feel free to join the discussion in the comments’ section!

Why (Post-)Functional Programming Matters

ShiftForward’s CTO Hugo Ferreira about functional programming’s place in today’s ad technology engineering for high-performance and scalable systems.

Why (Post-)Functional Programming Matters

The limits of my language mean the limits of my world.” – Ludwig Wittgenstein

Computer (and computing) science (CS) is a very peculiar field of research when compared to other sciences, particularly concerning themes such as software engineering and system’s architecture. For starters, it has little more than 80 years, which puts it into an interesting proposition when compared to Physics or Mathematics: having a “conversation” with key personalities is not that unrealistic. Unlike Aristotle, Isaac Newton or Albert Einstein, many of the “genius” behind computer science are still living among us; a gentle evidence of its youth.

continue reading…

Scala path-dependent types – A real world example

In this post, ShiftForward’s Rui Gonçalves presents a Scala feature that has recently helped us through a design choice in our AdForecaster system: more concretely, a feature of its type system.

A type system is, indeed, a very powerful tool for a programming language. In fact, it is a concrete case of a formal method; it provides us a near mathematical proof that programs that compile successfully obey a set of rules and restrictions and, as such, are bug-free in that respect. For example, after compiling a Java program, we know for sure that the it will not do a division of a number with a string and that, if our method foo receives an integer as argument, it will not be called anywhere with an argument of any type other than an integer.
continue reading…