Compado https://compado.com Wed, 31 Jan 2024 15:23:59 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 https://compado.com/wp-content/uploads/2021/10/c-2.png Compado https://compado.com 32 32 Coding to Leading — Tech Leadership Through the Eyes of Bobby McKinnon https://compado.com/engineering-blog/stepping-into-leadership-as-a-developer/ Tue, 16 Jan 2024 10:13:16 +0000 https://compado.com/?p=8466 This interview has been led by Compado’s editorial staff, remotely, with Bobby residing, at the time of the interview, in Berlin, Germany, on Wednesday, August 02, 2023. Press-related enquiries can be submitted here.

Say hello to Bobby McKinnon, the VP of Tech at Compado. With a rich 20-year journey through the realms of web development, Bobby has had the opportunity to explore a spectrum of roles and responsibilities in tech. As we chat about his transition from hands-on coding to leadership, you will see that tech leadership is not just a title – and that passion is non-negotiable. But let’s not spill all the beans, let’s hear it straight from Bobby!

 

Engineering Blog: “Bobby, could you share with us your career journey? How did you climb the ladder to become the Vice President of Tech?”

Bobby McKinnon: “Certainly. My path to becoming a VP of Tech wasn’t a straightforward one. Interestingly, I didn’t study software engineering; back in the early ’90s, it wasn’t as widely available as it is today. My story really begins in California in the early 2000s, during the DotCom Bubble. Back then, the tech scene was so vibrant that practically anyone with basic computer skills could land a job. I started my career as a software tester with Motorola, which at the time was a dominant force in San Diego. That role really set the foundation for my career in tech.

As time went on, I transitioned into building websites for cell phones, working as a Quality Assurance Engineer. This role was crucial as it taught me a lot about the intricacies of software development and the importance of quality in tech products. But it wasn’t just about the technical skills; I realized early on that if you’re a senior engineer and you have the drive to lead, you can be a leader. You naturally become the go-to person, and, yeah, there’s your path to leadership, right there..

However, I stepped into leadership much later in my career. I reached a point where I wanted to optimize processes and team dynamics. I knew what needed to be done and realized that I needed to be in a leadership position to make those changes. Luckily, I wasn’t afraid to take ownership, and that desire to enact change was what ultimately propelled me into a leadership role.

The transition wasn’t just about technical skills; it was also about people skills, which is a crucial trait for any leader. My first formal leadership role was in Berlin, about ten years ago [≈2013]. Like many developers, the idea of leading didn’t appeal to me when I was younger. But as I matured in my career, I understood the impact I could have in a leadership position, and that’s what drove me to where I am today.”

 

Engineering Blog: “In your opinion, what are the essential traits that a developer should possess to be well-suited for a leadership role?”

Bobby McKinnon: “Leadership in technology, especially coming from a development background, requires a blend of both classic and unique traits. First and foremost, to be a successful leader in tech, you have to genuinely love what you do. Passion is non-negotiable. If you’re not passionate about making software, it’s unlikely you’ll be able to inspire and lead others in this field.

But it’s not just about passion for the craft. As a developer aspiring to be a leader, you need to start looking beyond just coding. It’s crucial to begin optimizing processes rather than solely focusing on writing code. This involves streamlining workflows and always thinking about the ‘bigger picture.’ How does your work, and the work of your team, fit into the broader objectives of the organization?

Another key aspect is developing relationships outside of your immediate team. A leader needs to be a connector, someone who can bridge gaps between different departments and teams. It’s about understanding that the impact of your work goes beyond your immediate circle.

Lastly, being a hybrid of an expert and a communicator is vital. You need the technical know-how, of course, but equally important is the ability to communicate effectively. This means not only conveying ideas clearly but also listening to and understanding the needs and perspectives of others. Balancing these roles is what makes a developer truly cut out for leadership.”

 

Engineering Blog: “Considering the role of a Tech Lead, what would you say are the must-have soft skills for someone in this position?”

Bobby McKinnon: “The role of a Tech Lead is quite multifaceted, and the soft skills required reflect this complexity. First and foremost, a Tech Lead needs to have genuine enjoyment in working with others. This role isn’t just about technical prowess; it’s about collaboration, mentorship, and team dynamics.

Technical skill is, of course, a given. You need to be highly skilled in development – not necessarily the best, but certainly better than most. This expertise not only helps in making informed decisions but also in earning the respect and trust of your team.

Another crucial skill is being an effective troubleshooter. In technology, things don’t always go as planned, and a Tech Lead needs to be adept at quickly identifying and addressing problems. This not only involves technical solutions but also understanding the team dynamics and how they can impact the troubleshooting process.

Importantly, a Tech Lead should have a passion for passing on knowledge. It’s about nurturing the growth of your team members, helping them develop their skills, and encouraging continuous learning.

Finally, a Tech Lead, sometimes, needs to act as a shield for their team. This involves protecting the team from external pressures or distractions and ensuring that they have a conducive environment to work in. It’s about advocating for your team’s needs and ensuring they have the resources and support necessary to succeed.”

 

Engineering Blog: “As a developer, how can one learn and transition into a leadership role?”

Bobby McKinnon: “Learning to lead as a developer is a process that involves gradually expanding your scope of responsibilities and skills. A key step in this journey is taking ownership of a project. This doesn’t just mean being responsible for the technical aspects, but also overseeing the project’s overall direction, coordinating with different teams, and ensuring that the project aligns with the company’s goals.

Developing project management skills is essential. This includes understanding how to plan, execute, and oversee projects effectively. It’s about more than just the technical delivery; it’s about ensuring that the project is completed on time, within budget, and to the required quality standards.

Another important aspect is building relationships with people from different parts of the company. This means being proactive, not just in your immediate responsibilities but also in how you engage with others. Suggest new ideas, volunteer for cross-departmental initiatives, and actively build relationships with those who communicate with you. This exposure is invaluable, as it not only enhances your understanding of the business but also helps you develop the interpersonal skills crucial for effective leadership.

In essence, learning to lead as a developer is about gradually stepping out of your technical comfort zone and embracing the broader aspects of project and people management. It’s a journey that requires patience, a willingness to learn, and an openness to new experiences and perspectives.”

 

Engineering Blog: “How can someone in the tech field recognize if they’re suited for a leadership role? And conversely, what are some indicators that leadership might not be the right path for them?”

Bobby McKinnon: “Identifying whether you’re cut out for leadership in the tech industry involves self-reflection and observation of your own interests and behaviors. In my experience, it’s relatively rare for developers to actively seek leadership roles, but there are definite signs that suggest a natural inclination towards leadership.

Firstly, if you find yourself curious about how the entire company operates, not just your department, that’s a strong indicator. This shows a broader perspective and an understanding that the work of a tech team is interconnected with other parts of the business.

Another sign is a keen interest in undertaking projects, especially those that involve coordination and collaboration across different teams. If you’re someone who is excited by the prospect of working with departments like Marketing or Finance, and not just confined to tech, it suggests you’re open to the multi-disciplinary approach required in leadership.

On the flip side, there are certainly signs that leadership might not be for you. A key aspect of being a good leader is empathy. If you find yourself constantly trying to prove you’re the smartest person in the room or often belittling others’ ideas, then leadership may not be your forte. Leadership is about elevating others, not just yourself.

Furthermore, if your focus is predominantly on your own achievements and goals, without considering the team or the broader company, this can be a limiting factor. Leadership involves a significant amount of selflessness and a focus on collective success.

For me, the realization that I wanted to pursue a leadership path came gradually. It was an amalgamation of my growing interest in how different parts of a business interact, my enjoyment in leading projects, and my desire to help shape and grow the teams I was part of. It’s important to remember that leadership is not just a title; it’s a mindset and a commitment to guiding and supporting others.”

 

Engineering Blog: “With your extensive experience in leadership, could you share some key learnings that would be valuable for developers aspiring to step into leadership roles? What do you wish you had known when you started out in leadership 10 years ago?”

Bobby McKinnon: “Over the years, I’ve learned many valuable lessons that have shaped my approach to leadership. One of the most important is the balance of sharing successes and taking responsibility for failures. It’s crucial to recognize that successes are almost always the result of team effort. As a leader, you should always highlight and celebrate your team’s contributions. Conversely, when things don’t go as planned, a good leader takes responsibility. This approach not only builds trust but also fosters a culture of accountability and continuous improvement.

Looking back to when I first stepped into a leadership role, there’s a key insight I wish I had understood then: being technically proficient and knowledgeable about products is important, but it’s not everything. The real skill in leadership, especially in a tech environment, lies in developing relationships with your team members. It’s about talking to people, understanding them, and building trust. This process takes time and patience, and it’s as much about listening as it is about guiding.

Building trust is a slow process, but it’s the foundation of a strong and effective team. As a leader, you need to invest time in getting to know your team members, understanding their strengths, weaknesses, and motivations. This understanding allows you to guide them more effectively, tailor your approach to meet their individual needs, and ultimately, get the best out of each person.

In summary, the technical aspects of leadership are important, but the human element is what truly makes a leader effective. It’s about building relationships, fostering trust, and creating an environment where everyone feels valued and motivated to contribute their best.”

 

Engineering Blog: “In your role, how do you manage to balance being an expert developer while also being an effective leader? Isn’t there a conflict, given that the time spent on leadership tasks could detract from staying hands-on with coding?”

Bobby McKinnon: “That’s a great question and it’s a balance that many in leadership struggle with. Personally, I don’t have as much time to code as I used to. However, maintaining my expertise in development is still crucial. I need to be able to judge and guide the work that my team does, which requires a solid understanding of current technologies and methodologies.

The first part of finding this balance is leveraging the experience I’ve gathered over the years. Having programmed for so long, I find it easier to understand new frameworks and technologies as they emerge. This doesn’t mean I need to know every detail, but rather I need to understand the principles behind them.

My focus has shifted from being an expert in coding to being an expert in architecture and how different services work together. This means aiming to be a top-level expert, knowledgeable about broader, strategic aspects of development rather than the nitty-gritty details. It’s about understanding the larger picture and how various pieces fit into it.

Despite my limited time for hands-on coding, my passion for it hasn’t diminished. This passion is incredibly valuable; it keeps me connected to the core of what my team does and ensures that I remain relatable as a leader. It’s about finding the right balance between staying technically informed and investing time in leadership and management responsibilities. In essence, the role evolves from being a specialist in coding to being a specialist in leading and guiding those who code.”

 

Engineering Blog: “Codementor.io lists ‘Be the Best Dev Possible’ as a prerequisite for becoming a good leader in web development. Do you agree with this perspective? Is this idea unique to web development, or do you see it applying in other areas of tech as well?”

Bobby McKinnon: “The notion of being the ‘best dev possible’ can certainly help in initially establishing credibility and respect, which are important in a leadership role. Being highly skilled in your field can open doors and provide opportunities. However, this alone isn’t enough to ensure success in leadership, especially in the diverse and dynamic field of web development. It’s crucial to understand that leadership extends far beyond technical expertise. In fact, nowadays, the importance of communication skills, interpersonal abilities, and emotional intelligence cannot be overstated. These skills are just as important, if not more so, in a leadership role. They enable you to connect with your team, understand their needs, motivate them, and create an environment where they can thrive and be productive.

So, while being an expert developer can give you a head start, it doesn’t guarantee success as a leader. The role of a leader involves a more holistic skill set that balances technical prowess with a deep understanding of people and effective communication. This is true not just in web development, but across all areas of technology. The best leaders are those who can combine their technical knowledge with strong interpersonal skills to guide, inspire, and lead their teams to success.”

 

Interviewer: “CodeCamp.org mentioned,  “A tech lead I used to work with was always calm. There was no conflict or pressure that could make him snap. At least nobody saw him stressed out.” How important do you think calmness is for developers who aspire to leadership roles? Also, could you share any personal strategies for managing stress?”

Bobby McKinnon: “Calmness is indeed a key trait for any leader, and it’s especially vital in the tech industry where the stakes can be high and the pressure intense. This isn’t just about personal temperament; it’s a critical leadership skill. As a tech leader, you’re often faced with situations that could have significant financial implications or could severely impact a project’s timeline. In such scenarios, having the serenity and experience to handle major issues effectively is crucial.

It’s important to remember that most tech crises are not unique. With experience, you come to realize that these situations have occurred before and can be navigated through. This understanding helps in maintaining calm and approaching problems with a mindset geared towards damage control and structured problem-solving, rather than panic.

Calmness also plays a significant role in how you’re perceived by your team. If a leader is calm during a crisis, it instills confidence in the team and creates a more constructive environment for solving the problem at hand.

When it comes to managing stress, one key approach is perspective. Remind yourself that while the situation may be challenging, it’s not insurmountable. This helps in maintaining a level head. Another strategy is to rely on your team. Delegation and trusting your team’s abilities can significantly reduce stress. Lastly, don’t forget to take care of yourself. Regular breaks, physical activity, and ensuring you have time away from work to recharge are all important for maintaining overall calmness and well-being.”

]]>
Organizing Big Data by reducing Dimensionality — Meet Compado’s Cats Model https://compado.com/engineering-blog/dimensionality-cats-model/ Mon, 03 Jul 2023 10:09:26 +0000 https://compado.com/?p=8247 The #Cats Model

Feature Engineering is a crucial component of the machine learning (ML) model development pipeline. 

At Compado we devote a significant amount of our time to processing and engineering features in order to build strong predictive models. 

Often our datasets are of mixed nature: They contain various types of features, such as numerical, categorical, text, DateTime etc. that (in general) need to be transformed, or encoded, into numerical format for our ML algorithms to understand.

To convert text data into a numerical format, there are several encoding techniques available. Definitely take a look at how we embed keywords into vectors here

👉 Learn how Compado personalizes brand recommendation and understands intent 👈

…Similarly, various methods can be used to transform categorical features into numerical format. 

In this blog post we will talk about some popular encoding techniques used by ML folks, such as Ordinal Encoding, One-Hot Encoding, CatBoost Encoding – and we will reveal which encoding method of categorical variables makes the most sense for us in Compado. 

Keep in mind that every ML task is unique and there is no “one fits all” encoding technique…

…It is our job as a data scientist or ML engineer to thoroughly analyze the business case and come up with the best logical solution for a given problem.

Categorical features are often represented by strings and can be classified into two types: ordinal and nominal

Ordinal features have a finite set of discrete values that are ranked in a specific order, such as age group or education.

For example, “Doctorate degree” > “Master’s degree” > “Bachelor’s degree” > “High School graduate” > … > “Daycare graduate” 😛

On the other hand, nominal features have a finite set of discrete values with no inherent ordering or relationship between them, such as country or language. 

Since ordinal categorical features have a known relationship between their levels, in some ML models (such as tree-based models which we use at Compado) we can apply Ordinal Encoding (or Label Encoding) to represent them. 

This means that we can replace education level strings with numbers that respect the same ordering… 

…For example, we can exchange “Doctorate” with 5, “Master” with 4, “Bachelor” with 3, “High School Graduate” with 2 etc. No-brainer, right? 

On the other hand, for nominal variables, there is no inherent relationship between the levels or categories, and we cannot in general use ordinal encoders even though sometimes it is very-very tempting. 

I am talking about cases when in place of names (strings), categories are represented by ids (integers).

For example, rather than “domain_name” we often use “domain_id”, which is much more practical (just imagine how long some website names are). 

However, we do not use these ids for ordering as they do not mean anything useful: Websites with similar ids are not per se related to each other. In those cases we could, for example, apply One-Hot Encoding.

One-Hot Encoding (or Dummy Encoding) is a technique where every categorical feature is transformed into a new binary feature with each category represented by a value 0 or 1. 

For example, suppose that we have a categorical feature “country” with three possible categories: “Germany”, “Spain”, and “France”.

In this case, we can use One-Hot Encoding to transform “country” into three new binary features: “country_germany”, “country_spain,” and “country_france”.

Each of these new features will take the value 1 if the original feature had that particular category. Otherwise, it will take the value 0, see the table below…

country country_germany country_spain country_france
Spain 0 1 0
France 0 0 1
Germany 1 0 0
France 0 0 1

👇

…One-Hot Encoding is a standard and a very popular encoding method.

It preserves all the information in the original categorical feature while transforming it into a numerical format that can be used for training ML models.

It is a simple but at the same time an effective technique that can handle categorical features if the number of unique categories is small.

The problem is that often it is not small…

…When there are too many unique categories (too many levels), a categorical feature is said to have high cardinality

In such a case One-Hot Encoding can become computationally expensive and not feasible. 

The reason is that One-Hot Encoding creates a new binary feature for each unique category value, resulting in a high number of features (N new features for N unique categories) that can quickly become impractical for training ML models. 

As the number of unique categories increases, the number of new binary features also increases. Then the amount of data we need to be able to distinguish between these features (for accurate predictions) grows exponentially. 

This is the so-called curse of dimensionality that can result in overfitting, which means that the model does not generalize well to new, unseen data…

…ML models at Compado tend to have a lot of high cardinality features. While feeding One-Hot Encoded features to Boosted Trees we are usually decreasing the number of dimensions by taking the top most frequent categories and aggregating less frequent together as a category “Other”. This works pretty well. 

However, as we are always challenging our setup and looking for improvements, we wanted to find a smarter encoding technique which would substantially reduce dimensionality of our datasets and result in better predictions. 

There are several alternative ways of encoding that can do just that, but it turns out that they are not applicable for our ML models. 

What I want to show you now is how feature engineering crucially depends on the data at hand and the business problem that we are trying to solve…

…Many ML practitioners turn to one of the most promising alternative encoding techniques which belongs to the group of target-based categorical encoders – CatBoost

It is a popular gradient boosting library that provides a built-in categorical feature encoding method called “CatBoost Encoding“. 

This encoding method is, among others, useful for handling categorical features in binary classification problems, because it encodes each category as a numerical value that is optimized for the target variable.

However, it is not really suitable for our case of a multilabel classification problem with high target cardinality since we have a lot of target classes representing brands. 

Suppose there are 100 brands as classes, and even if the number of categories were small (it is actually big!), e.g. 3 countries in the example above, the CatBoost encoding would already create 300 new columns needed for target encoding of the categories in the country feature. This would result in strongly increased dimensionality (instead of a decreased one), high memory consumption and longer training time.

Hence, we were exploring better methods to manage the number of features in a practical manner. 

We decided to try using domain knowledge to come up with a logic for ordering the categories.

This might be more risky and time consuming to do, but once we have found a good logic, we will end up with one variable per categorical feature (a huge improvement in dimension reduction), which we can then also neatly scale to new categorical features.

With the help of our business analysts (BAs) we have done a thorough analysis of various nominal categorical features for different industries. 

In particular, we have asked the BAs to place categories in order of similarity in terms of brands ranking. 

This means that we wanted to have similar categories to be ordered close to each other… 

…As we use a tree-based boosting algorithm, it does not matter if we have exact quantities representing the categories, just the category order is important to us. 

It turned out that among all the possible KPIs considered, compensation happened to be the one that closely aligned with the BAs’ category ranking.

As a result, in the new model we are converting nominal variables to ordinal ones using our historical business knowledge about compensations. 

This means that instead of One-Hot Encoding we apply Ordinal Encoding to all our categorical features, ordering unique categories according to compensations they produced in the given industry during a predefined time period. 

We do not use manual ordering, of course, but we have set up a fully automated process to rank categories which enables great scalability independently of features added.

This way of encoding allows us to significantly reduce dimensionality of our data and even include new crucial high-cardinality features which was not possible before… 

…Suppose that “Germany” is the country that has given us the largest amount of compensation recently followed by “France” and “Spain”, then our example from above will look like the table below.

Instead of a huge amount of new binary columns being added for the model to understand, we have a single column with numerical values (the order can also be reversed).

Just think about it, a single column per feature instead of hundreds…

country country
Spain 3
France 2
Germany 1
France 2

👇

…The new model has already won the AB tests for large industries (compared to the baseline) in terms of compensation uplift: This model is able to better learn category similarities than our previous ML models. 

That is why we called it the Cats model (derived from the word “categories”). 

Instead of using a popular CatBoost Encoding technique for our multiclass models, we have released our own Cats model…

…As per the Vietnamese zodiac, this year is known as the Year of the Cat, and it looks like our Cats model will contribute to our success in many more industries. 😉

]]>
Starting out as a developer — An interview with Compado’s VP of Technology, Bobby McKinnon https://compado.com/engineering-blog/starting-out-as-a-developer/ Mon, 19 Jun 2023 12:08:50 +0000 https://compado.com/?p=8150 This interview has been led by Compado’s editorial staff, remotely, with Bobby residing, at the time of the interview, in Berlin, Germany, on Thursday, February 16, 2023. Press-related enquiries can be submitted here.

With 20 years of experience in web dev, Compado’s VP of Technology, Bobby McKinnon is an experienced tech veteran, a true dev allrounder, with skills ranging from strategic tech leadership to backend architecture — You can say, Bobby’s someone who’s seen quite a lot in the dev game. 

In this interview, we want to explore how it is to start out as a developer. 

Engineering Blog: Bobby, can you explain the ‘job universe’ that’s out there for developers? What are the different roles in web development [as of February-2023]?

Bobby McKinnon: Yeah, so there’s quite a few possibilities. 

It’s noteworthy that we – still – have a traditional split in web development between ‘frontend’ and ‘backend’ – it’s two areas of the job, and most developers focus on one or another.

In frontend development, it’s about what you can see – the frontend.

Examples would include designing software, creating visual user surfaces or guiding user interaction through web design.

It’s everything you see when you look at the screen.

In backend development, it’s about what’s ‘behind’ the screen, things you don’t see.

Examples include putting together the necessary hardware, data management, or developing and maintaining the ‘business logic’. 

With that difference in mind, the first big question in the career of a developer is usually: What focus do you want to have?

The decision for either frontend or backend usually comes naturally.

Whatever you like most, whatever speaks most to you, that’s what you go for. 

As a rule of thumb, starting out as a frontend developer may be suitable for more creative people, while backend development may lend itself more to structure-prone people…”

“…Then, of course, there are so-called ‘full-stack’ developers; developers that are doing both, backend and frontend.

But, as a dev, you’d not start out full-stack.

Instead you’d focus on either frontend or backend first and learn the other one later. 

It’s typically like this: Before you even consider becoming a full-stack dev, you need to be proficient in your field [backend or frontend].

If you are not proficient in either, there’s no way you’ll be a good full-stack dev.

Other specializations in the greater web development realm include UX designers – those are not software developers but people who specialize in how the user works with the product.

Then there’s architects – coordinators that look after the architecture of applications. For instance, they envision how many web servers need to be involved, how machines are talking to each other.

Becoming an architect, that’s essentially something you do – or become – when you’ve been a backend developer for long. 

Lastly, there’s Q&A engineers – a group of people that focuses on automating quality assurance processes, like writing software that catches errors in what other web devs are producing.

Picture bots that are executing user behavior, to see if the site breaks or not. That’s what Q&A engineers do.

Here, in Compado, we have the typical frontend-backend-full-stack split.

We employ all three types of developers.

We do not have stand-alone UX designers, architects or Q&A engineers though.

Those jobs are filled by our regular devs.

Backend devs look after the system architecture, while frontend devs look after UX.

Engineering Blog: So, once I made up my mind and know if I want to head down the ‘frontend’ or ‘backend’ path, what would be a typical entry-role title for a developer?

Bobby McKinnon: You usually start out as a ‘Junior Developer.’ 

That’s assuming that you can get most of the easy to medium tasks done without intense training or supervision. 

What I mean is this: know-how is a prerequisite for even being hired as a junior developer. 

You get your basic developing skills before you’re hired as a junior developer, for instance, from a coding school or simply from private coding experience.

In my personal opinion, if you mix private coding experience with some structured, academic training, that’s a good basis for starting out as a junior developer.

What’s even more crucial than proper schooling is that you really want it

You know, all people that are successful as developers, they want to do it

It may sound cheesy but it is what it is: People that are really good at developing, they’re not just doing it for a paycheck – they are doing it for passion, too. 

And that’s what I am – first and foremost – looking for in developers: passion!

Engineering Blog: So, let’s cut to the chase, how can I start as a developer in Compado?

Bobby McKinnon: There’s an easy answer to that, but I will also elaborate a bit for those who seriously consider joining our tech platform.

The easy answer is: You send an application to HR. You send your resume and cover letter, and that’s how you get into the system.

If you’re good, you’ll get an interview…

👉 ℹ️ Initiative applications can be sent to [email protected] ℹ️ 👈

“…Now, I also want to elaborate and let you in on how you can make your application stand out.

So, first of all, I am doing the interview myself. 

And what I am looking for in those interviews is not that you’re the smartest person in the room – I am looking for people that like to talk, in the sense of being able to express what they think clearly and easily; I am looking for people that have fun talking about technology – where I can see that there’s a passion. 

And, most importantly, while on interviews I am looking for candidates that have the ability to be creative, that have ideas, that can make suggestions – or, in other words, that are able to engineer…

“…Before you even get to that interview, you will need to hand in a cover letter

My 2 cents is: Keep it simple and honest.

Do not overstuff your cover letter or resume with loads of stuff that you’ve done: No one knows everything, and especially not when you’re just starting out. We know that.

So, keep your CV and cover letter lean, stay focussed and simple.

It’s also a big plus if what is in your CV matches our needs for a specific position.

If you’ve passed the interview, we will do a skill assessment

Each developer team in Compado has their own way of assessing skills – so I can’t really generalize on that. 

In the end it’s about handing in work results that can be reviewed – so that we can get a sense of how good you are.

Our web-dev team leads are reviewing the results, and, should you have passed the skill assessment, you’ll be invited to the next round – a technical discussion.

👉 📁 Find an exemplary skill assessment here 📁 👈

“…A technical discussion is sitting together in a group of devs and talking about web-dev scenarios or challenges. 

In those discussions, what I am looking for is if the candidate knows how to solve the problems that’s coming his or her way – and if the candidate can communicate his or her way of problem solving. 

At the risk of sounding too cliche, you do not need to be a geek to ace a developer interview, you need to be able to talk.

It’s not easy to become a developer in Compado.

At the moment we have a rejection rate of almost 98%. That means: We’re hiring 1 in 60 people – and that 60 people are pre-screened candidates already.

I want to add that we’re only admitting the best – If that means we need to interview for several months before filling a position, so be it.

I also want to add that you can send me a message on Linkedin if you have questions on applying as a developer in Compado.”

Engineering Blog: As a developer to-be, can I apply for an internship in Compado? Do you have any summer programs?

Bobby McKinnon: We do not have any structured internships or structured summer programs in Compado at the moment. 

However, if you feel eager, send me a message on Linkedin and let’s talk.

I also want to say that we always have at least one student developer

As a student developer, you get to see all different areas of web development – from frontend over backend to ‘SEO Tech’ and ‘Ad Tech’.

While you’re looking into the various areas, we’ll be figuring out what you’re great at and where your passion lies.

Engineering Blog: If you want to make it as a developer that’s just starting out, what do you do? Can you share a few tips?

Bobby McKinnon: Sure, here’s three things that come to mind:

First, find what you like the most, have fun with it – and stick with it. What your gut tells you is most likely right…”

“…Second, take your time to understand different operating systems, like Linux. 

Understanding how different operating systems work is a proper basis for building a dev career on top. 

Also, you need to be comfortable with a prompt – Inputting commands into the ‘black box’ needs to be like breathing to you.

Third, if you want to train your abilities, try to figure out what old code means.

Try to decipher what existing code means, what it was meant to do.

This is a skill that cannot be underlined enough. 

In web development, it’s not just about writing new code – understanding and handling old code is of tremendous importance.

In the past it was not uncommon to work somewhere for a year before you could truly understand the old code that’s been in place already.

Granted, I am not saying that this is ideal, and ideally your systems are not set up in a way that requires developers to study old code for a year, but what I am saying is this: 

If you want to become real’ good, have a look at old code and truly understand it. That skill is very valuable!

Engineering Blog: What do you think are the most challenging aspects of the developer job today? And how do you, and your team of developers, cope with them?

Bobby McKinnon: One of the most challenging parts is that, as a truly good developer today, you need to be a good communicator – not just an expert at what you do, a good communicator, too.

It doesn’t matter how much you know or can do, if you are not effective at communicating, you’re not gonna be successful.

In the same vein, developers need to be able to present what they do.

In my team, everyone needs to present once in a while. I am making sure that every dev in my team gets the chance to showcase what they do to the team…”

“…Then there’s this whole thing of working under pressure.

Software people like us need to, at least at times, work under extreme pressure. 

Think of situations where a backend blows up, when there’s a power outage, or when a database blows up.

This immediately puts you in a super stressful situation.

In Compado we started drilling and training for these kinds of situations.

We also have stress resilience training and train empathy among each other – this, in dev speak, is called ‘chaos engineering’ – it’s the opposite of a hackathon, where you try to build something. During our chaos-engineering days, you need to fix something under pressure.

Then there’s of course naming. [laughs] 

In web dev, there’s a saying that goes:

‘The hardest part in software development is naming things.’ [laughs]

I’m partly joking, of course – but partly not. 

If what you have developed has a cool name, and it sticks with stakeholders, the product is being recognized.

That’s a reality. 

If you’re giving it a too-abstract name, it may not be recognized as much. 

It’s always a good idea to treat the naming with at least some importance.

It marks the conclusion of what you’ve worked on, often for weeks or months, and should not be dismissed as something insignificant.

Engineering Blog: Once you’re a developer, how do you stay on top of the game? How do you educate yourself?

Bobby McKinnon: Well, if everyone in your team is good, the team will be competitive – and just being in a competitive team, and especially having a dialogue in a competitive team, that keeps you going.

Specifically, every other week we have tech discussions.

They help us to have a regular exchange on what’s going on in the world of tech. It’s one of our ways to stay informed.

Trivially, every good dev does their fair bit of reading. 

I am personally following some newsletters and YouTube channels that help me to stay updated.

My favorite newsletter is the TLDR newsletter.

My favorite go-to source for educational videos by far is FrontendMasters.com – it’s the bible for learning frontend stuff in and out.

]]>
Contextually Fitting Brand Recommendations for EVERY Industry — Emanuel Hoch explains the vision behind Compado’s Contextual Advertising Widget https://compado.com/engineering-blog/emanuel-hoch-contextual-advertising-widget/ Tue, 11 Apr 2023 09:27:55 +0000 https://compado.com/?p=7945 This interview has been led by Compado’s editorial staff, remotely, with Emanuel residing, at the time of the interview, in Bavaria, Germany, on Thursday, January 26. Press-related enquiries can be submitted here.

Engineering Blog: Compado has been working on a contextual advertising widget for a while now. Can you explain to the readers of this blog what the “Compado Widget” is and how it will be named?

Emanuel Hoch: “Sure, over the last years we have developed a contextual advertising widget – an advertising technology that is able to display contextually fitting brands on content sites. 

We call this new technology, our advertising widget, Rank AI. Rank AI helps content creators and publishers around the world to add contextual advertising to their sites. It’s primarily directed at owners of websites that are creating content and that, accordingly, want to monetize their content. 

Rank AI, at the heart, does two things: It first looks at the context at hand and then finds a fitting brand that should be presented alongside.

Moreover, Rank AI is fully automated. Once added to the site, it finds matching brands that should be presented on that site instantly. It automatically fetches the best-monetized offers for those brands, too, and optimizes RPM by only presenting the best-matching and highest-converting brands.

Rank AI will officially go out of beta and launch in Q2-2023. From May [2023] onwards, it’s possible to request access to Rank AI. Send me a message if you’d like to be among the first testers.”

Engineering Blog: Why did Compado decide to develop an advertising widget in the first place?

“We are a tech platform for contextual advertising and, for many years now, have built and maintained relationships with leading consumer brands. You can say that we’re pretty good at developing and nurturing brand relationships. Plus, at Compado we have a very good, industry-leading Account Management team.

What I want to get at is this: For me it always seemed like a waste to not make this skill set of ours available to the outside world. In online marketing, excellent partner management is key, but hardly anyone gets it right. And here is where we come in.

As a tech company, our thinking is: You’re good with something, you automate it, you turn it into a product, you market it. And that’s what we’re doing with Rank AI.

You know, a lot of webmasters and content site owners struggle with partner management: It’s tough for them to maintain deep relationships with brands, to negotiate leading deals with them, and to make sure that tracking infrastructure is flawless – to name just a few examples. Adding Rank AI to one’s site, content creators tap into Compado’s leading partner management. They get access to our brand relationships and the many exclusive deals we’re developing with partnering brands.

Also, and very importantly, with Rank AI, publishers get their hands on a leading contextual advertising widget that allows them to dip their toes into contextual marketing. Rank AI has been developed for the post-cookie era – for a time when advertising needs to be non-intrusive and privacy-first. It’s fully contextual and I want to stress that it does not need third-party cookies to work at all. Publishers that want to add a contextual privacy-friendly advertising widget to their site will be very pleased with Rank AI.”

Engineering Blog: Can you explain how Rank AI works?

“Rank AI, essentially, is a code snipped that webmasters add to the header of their content site. As soon as the snippet is added, the Rank AI crawler will pay the site a visit and crawl and categorize the site to better understand the context. Once Rank AI understands the context at hand – what a site is about – it looks for matching brands in Compado’s inventory. 

It’s noteworthy that Compado manages hundreds and hundreds of brand relationships, plus we’re in the midst of founding our own meta network for bundling brand relationships and deals at scale, which will contain several thousands of partnerships and offers, covering a huge spectrum of industries. 

What I want to say is this: In the long run, it will be very unlikely that there’s a consumer-facing industry out there that Rank AI can’t monetize with contextually fitting brand recommendations. It is my vision that, at some point, we’ll be able to find matching brands for almost all industries.”

Engineering Blog: Where does Rank AI show already, can you name a few examples?

“Sure, for instance, in Germany, RTL.de is making use of Rank AI to monetize their shopping guides. Another example is WMN.de, a content site of Funke Media for female-first content. Rank AI supports them, among others, with monetizing their matchmaking-related content pieces.

Actually, there were many different types of beta testers so far – including blogs, media sites, content sites and review sites.”

Engineering Blog: Can we have a look at one of your examples?

“Sure, here’s an article from WMN.de [see below]. It’s a piece about going on a first date. 

Rank AI understands that the context here is ‘matchmaking and relationships’ and understands that, therefore, online dating brands are a suitable match.

By inserting highly contextual and relevant brand recommendations, like the one you can see on the example, Rank AI is able to improve RPMs drastically.”

Rank AI Development Screenshot

Rank AI understands a site’s context – and displays contextually targeted brand recommendations.

 

Engineering Blog: We have heard that Rank AI helps brands to get ready for the post-cookie era, especially when it comes to finding new customers without cookies. We have also heard that Rank AI helps publishers to monetize their content without those cookies.

Can you elaborate, what challenges of the post-cookie era does Rank AI actually address?

“It’s true that many content monetization systems are cookie-based. Just think of how AdSense works, or think about programmatic advertising or retargeting. It’s not uncommon at all that brands are following you around the web.

The perception, here, is changing rather rapidly. What was okay a few years ago is now considered invasive. Developing more privacy-friendly modes of advertising has definitely been a consideration while developing Rank AI. It’s an open secret that many advertising technologies first and foremost look at where a user has been, which is obviously highly based on third-party cookies.

Not so with Rank AI. Our contextual advertising widget puts context first. Instead of looking at a user’s browsing history, Rank AI asks: What is that user viewing? What is that user reading? Rank AI then inserts a relevant brand recommendation based on that. 

That’s what I call ‘privacy-first’: advertising technology that doesn’t need to dive into a user’s browsing history to see what’s relevant but that merely turns at what a user is looking at – to understand what is relevant to that user.

So, yes, it is a key challenge of the post-cookie era to still be able to display relevant advertising. And Rank AI helps with solving that by presenting a way for publishers to display relevant and contextually targeted brand recommendations on their sites, all without using any third-party cookies.”

Engineering Blog: When I am with a brand, and my brand is joining Compado’s Contextual Advertising Platform, will my brand automatically be advertised through Rank AI? 

Also, if I want to advertise my brand through Rank AI, how do I go about it?

“There’s two ways how your brand becomes eligible for being advertised through Rank AI. 

The first is, you sign up to Compado’s Contextual Advertising Platform. You can do this here.

The other is, your brand is signed up to an affiliate network that’s part of our meta network. Our meta network bundles offers available through regular affiliate networks. So, if the affiliate network you’re working with has partnered with Compado, that would also get your brand on Rank AI.

In a nutshell, if you want to make sure that your brand is advertised on Rank AI, basically, the only thing you need to do is get access to our platform for contextual advertising. You can sign up here.”

Engineering Blog: In turn, if I am with a publisher, or if I am the owner of content sites, and I want to monetize my content through contextual advertising, how do I get my hands on Rank AI?

“From May [2023] onwards, we’ll be accepting applications from webmasters. 

If you want to add Rank AI to your site, simply email our Cooperations Lead Aneta Ritz ([email protected]), who will help you to get access to Rank AI.

You can send me a message, too, if you want to discuss contextual advertising strategies!

I also want to highlight that we’ll launch a self-service platform soon, where webmasters can get access to Rank AI. Stay tuned!”

Engineering Blog: The year is still young – Can you tell us what your plans for Rank AI are for 2023?

“As I said before, we will soon launch a self-service platform for Rank AI – a place where webmasters can get access to our contextual advertising widget easily. From then on, everyone who wants to monetize their content through smart contextual advertising will be able to do that with ease.

On that self-service platform, publishers big and small will be able to sign up. The platform itself will also be able to display revenues, KPIs and stats – so that publishers can track their performance. It’s our goal to be as transparent as possible about how Rank AI gets our publishers higher RPMs.

It is also a personal goal of mine to visit content-site and SEO trade shows in the course of 2023, especially to talk with potential users – namely, content creators that are in need of excellent content monetization. I am a Product Manager at heart and there’s nothing dearer to me than talking to users directly.”

]]>
Personalized Brand Recommendations through Advanced AI-Driven Search — How our Tech Platform understands Intent https://compado.com/engineering-blog/personalized-brand-recommendations-through-ai-driven-search/ Wed, 05 Apr 2023 08:55:30 +0000 https://compado.com/?p=7908 The science of understanding intent

As the world becomes increasingly digital, the importance of brand recommendations has skyrocketed. The ability to provide personalized recommendations to customers can mean the difference between a one-time purchase and a lifelong relationship. To achieve this level of personalization, companies are turning to advanced natural language processing (NLP) techniques to gain a better understanding of user search intent.

At the heart of these advanced techniques lie our brand recommendation models that are now leveraging the power of word embeddings and principal component analysis (PCA). By analyzing the keywords associated with user searches, our models gain a better understanding of the user intent and preferences. In this blog post, we’ll dive deeper into some of the techniques that we have used and explore how they work together to deliver personalized brand recommendations.

A keyword is a word or a phrase in a web content that is related to a campaign or brand and that makes it possible for a user to find a destination to navigate to via search engines. The keyword’s information gives insights into what the user is searching for which helps our ML models to better learn patterns about the context of the user click-in and to better understand which brand the visitor will be most interested in. This results in a more personalized brand recommendation.

Keywords can be used for personalization

In order for keywords to be used in our Machine Learning (ML) models, they first need to be transformed into numbers.

But before that, we have to pre-process them.

In fact, the first step in the process of building any ML model is preprocessing the data. This process involves:

  • Word tokenization, which consists of splitting sentences into words or tokens that can be more easily assigned meaning. 
  • Word cleaning which includes removing non-alphabetic tokens such as punctuation as well as stopwords.

Stopwords are some commonly used words in a language which do not add much meaning to a sentence. Examples of stop words in English are “a,” “the,” “is,” “are,” etc. These unimportant words are usually eliminated to allow the model to focus on the important words.

With the keywords now tokenized and cleaned, the next step is to transform them into a numerical format that can be used by our ML models.

This is done using a technique called word embedding, which involves mapping each word to a high-dimensional vector of numbers. This vector is a representation of the word in a way that words with the same meaning have a similar representation. 

At the heart of word embedding is a deep learning technique called word2vec, which is used to train a neural network to predict the context in which each word appears in a given text.

The result of this training is a set of high-dimensional vectors that represent the meaning of each word in the text. These vectors capture the semantic and syntactic meaning of words in relation to the other words in the keyword. To form a keyword vector, we concatenate the vectors of all the words in the keyword, resulting in a single vector that captures the meaning of the entire keyword.

With the keywords now represented as a set of high-dimensional vectors, the next challenge is to reduce their dimensionality so that the data can be processed more efficiently by our ML models. This is where the principal component analysis (PCA) comes in.

PCA is a technique that can be used to transform high-dimensional data into a lower-dimensional representation while retaining as much of the original information as possible. In our models, PCA is used to reduce the initial dimensionality of the keyword vectors so that they can be processed more efficiently.

With the data being transformed into word embeddings, and reduced to a lower-dimensional representation using PCA, the final step is to feed it into our AI recommendation models.

The models are then trained to recommend the most relevant brands to the user based, among others, on their search query. 

The power of advanced NLP techniques cannot be overstated when it comes to delivering personalized brand recommendations. By taking into account the “intent” of the user through the keyword that’s associated with its search, we gained a better understanding of the user preferences and delivered recommendations that are tailored to each user’s needs.

Integrating the visitor’s search intent through our advanced machine learning models has been a significant milestone in our brand recommendation model. It represents a good proxy of a visitor’s intent, which allows us to customize our recommendations to the visitor’s needs and is a testament to the power of machine learning in delivering personalized brand recommendations.

]]>
A Tech Times Reprint: “Machine Learning for Brand Recommendation: How a Berlin start-up automates and individualizes brand recommendations” https://compado.com/engineering-blog/tech-times-reprint-machine-learning-for-brand-recommendation/ Mon, 09 Jan 2023 14:11:31 +0000 https://compado.com/?p=7558 ℹ️ The following is a re-print of the original Tech Times article, “Machine Learning for Brand Recommendation: How a Berlin start-up automates and individualizes brand recommendations”, written by David Thompson, originally seen here: https://www.techtimes.com/articles/282621/20221028/machine-learning-for-brand-recommendation-how-a-berlin-start-up-automates-and-individualizes-brand-recommendations.htm ℹ️

>>

In an online world where choice is so abundant, it can be a daunting task to narrow down a selection.

Just how overwhelming can it be? The Amazon Marketplace features over 350 million products for sale alone, according to an article from financesonline.com. YouTube creators have uploaded billions of videos over the years. And Forbes reported last year there are nearly 9 million mobile apps in existence.

Rapid advancements in technology have kicked open many doors for consumers and smaller, mid-size and larger brands, all trying to reach customers. But now the need to address choice overload has become a product of that growth.

Personal reviews from family and friends, and even product reviews written by consumers, only scratch the surface in combating the problem of choice. That technique only exposes the consumers to some products, already eliminating a plethora of other products out there that might better fit someone’s needs. And for brands that are trying to market products to converting customers, the practice of reviews alone just isn’t enough.

When tasked with narrowing down billions of choices on the web everyday dependent on a host of variables, it’s an impossible feat to accomplish by human hands. One of the most effective solutions, therefore, is introducing more technology into the mix by way of brand recommendation strategies.

Automated/individual brand recommendation technology

Kyle Smith, head of intelligence for Compado, a global start-up based in Berlin, Germany, said the technology company uses hard data, rankings and machine learning software to help funnel potential customers to brands.

“And we are helping the consumers by actually providing some kind of compass to them to navigate the sheer amount of choice they have,” Smith said.

Brand recommendation technology in its simplest terms is a method of data analysis that connects a user with a brand and a brand with valuable traffic. It helps narrow down choice with the use of certain parameters extracted from information that comes along with the user during a visit. That data is automated and individualized by collected information about the source in which a visitor arrived at the site, the time of day of the visit, the device being used, keywords searched and other information set up from the marketing channel.

“We are really tailoring it to the user level. Each user can have a huge set of individual parameters,” Smith said. “The more parameters we have, the more individualized this recommendation becomes. We draw recommendations on anything and everything we can get.”

Smith said once the data is collected, it is fed into Compado’s machine learning model that will then provide a valuable live predictions list of the most likely partners with which the user will be best matched.

“We are a market maker,” he said. “We have supply on one side and demand on the other side. We are trying to match that supply to that demand in each individual match as best we can.”

Machine learning that converts

In operation since 2017, Compado is about two years into the development of artificial intelligence through a comprehensive machine learning model.

According to the company’s lead of machine learning and ranking, Zlata Tanovic, the team responsible for Compado’s leading-edge machine learning department is comprised of data scientists who are responsible for developing the ranking models and business analysts who study the rankings and look for improvements in the system.

“Not everything is as perfect as possible from the beginning, so there is always room for improvement,” she said.

Compado’s machine learning tool is a statistical model that considers the data provided and then extracts from that data the information needed to be able to predict the rankings. Those predictions are made by comparing the data collected from the new user to historical data from other users who have demonstrated similar activities.

“This happens for every single person who visits the website based on the characteristics they have,” Tanovic said.

She said in order to build a foundation that will lend itself to effective predictions, the technology must first look at the population of previous visitors before it can determine rankings for individuals.

“That’s one of the reasons we had to come up with something original. When it comes to first-time visitors, we cannot really look at what this person did in the past. You have to start new every time someone comes,” she said. “We don’t have much information on a first-time user. It’s not like we can track this user on Google and see what they have been doing. For instance, the things we know come from our marketing channels and from what we learn about our users once they are on our properties, such as what they answer on a quiz.”

Using cloud-based technology to record a user’s actions to build the recommendations, Compado develops the pipelines where the machine learning models can be continuously trained to deploy for live predictions when users enter the site. The practice of constant training and retraining is crucial in achieving the best results, Tanovic said.

“We retrain the models on a daily basis,” she said. “We are always making sure that the entire pipeline is robust to any changes that might happen in the future. It is a statistical problem that doesn’t have a clear solution that you can reuse. You have to really come up with something that is not yet out there – and that’s what we’re doing.”

Additionally, Tanovic said it is imperative that she and her colleagues find different avenues to collect new information that will help strengthen recommendations resulting in more effective predictions, ultimately driving valuable traffic to partners.

“I think what we do well is keep a lot of flexibility in what we are doing. We are constantly iterating and adding more parameters to try out different versions,” Smith said. “We are trying to get the best technology out of that. That’s really key to what we at Compado are doing. The underlying technology is there for everyone, but we have created our own model to be able to rank brands better than anyone else. We are constantly tweaking to fit it to our business case and to connect brands with customers even better. It’s definitely different from the general use cases that you see.”

Staying competitive and paving the way

Both Smith and Tanovic agree the two most important components to a successful machine learning tool is a strong data infrastructure and the ability to learn from data in real time, which is an element that sets Compado apart from other recommendation services for subscriptions and apps.

Smith said one misconception in the industry is that anything that is automated is machine learning. He said there is a significant difference between a developer performing some number crunching and training a model to manage statistical and mathematical insight.

“Having machine learning set up is much more technically tricky,” he said. “It’s really about having that constant flow and integration and consistent optimization that really helps.”

Operating the software for recommendations between the brand and the user is just one form the technology can take. At the moment Compado uses the technology for ranking and quizzes, but it is a software developed to essentially decide what brand gets the presence. To that end, there is opportunity to scale the technology for additional uses, such as comparing brands or showcasing a specific brand.

“We are acquiring media and content sites regularly,” Smith said. “We can use our recommendation engine to scale those as well. That is in the near future. We aim to be first at the table and really make sure we can make media sites better by equipping them with our machine learning capabilities.”

Tanovic said Compado is spearheading brand recommendation technology through the company’s machine learning tool. Although the company has only been implementing the practice for a few years, the growth and accomplishment so far has been rewarding.

“To me, the sky’s the limit,” she said. “I am looking forward to seeing how my team can take automating and individualizing brand recommendations even further.”

<<

]]>
Media Site Speed & How We Optimize Media-Site Performance with Vercel and Next.js https://compado.com/engineering-blog/media-site-speed-vercel-next-js/ Tue, 20 Dec 2022 14:46:51 +0000 https://compado.com/?p=7517 How Compado builds extremely fast media sites

Let’s get this right – What do we mean by fast? And what makes a website fast?

Do we mean low latency, that the site is extremely responsive, a low time to First Contentful Paint, optimal Time to Interactive, zero Total Blocking Time, low Largest Contentful Paint or in reality all of these simultaneously. 

The most important thing to remember is that fast websites should feel fast to the user. This should be our end goal as developers. When a real user visits our site, it should feel responsive and fast to them.

What makes a website fast?

Going back to the original question. What makes a website fast?

The answer, like with most things, is that it kind of depends. There are many factors that contribute to both real and perceived performance, and you can spend hours or days focused on any one of them.

So, I’d like to simplify a bit and let’s look at website performance in terms of web experience.

In our case, a content/media site, where the primary reason for someone to visit is to read the content available there.

So we have : 

  • A permanent link
  • Publicly accessible content
  • Infrequently updated pages
  • Reading is primary interaction

While new articles may be created regularly, once created they generally remain stable with few updates.

We focus on the essentials – we are not as concerned with being able to do other actions than just looking at the page, seeing what is on the page, and scrolling down to see more.

So, what can we do to make a media site fast? 

Fundamentally, for content sites we must optimize for the first page load.

This is the ideal and common case when someone visits our website for the very first time. They don’t have anything in their browser cache for our site, and this changes how we need to optimize performance

To ensure fast performance, we need to minimize round trips before the page gets painted. This is especially important in poor connectivity environments, as every round trip the browser has to make is just going to kill performance.

Finally, we need to ensure extremely low latency from the server. We must deliver content close to the user in order to ensure a minimal load time from when the user requests a page to when the page is sent back.

So what does a performant website look like?

I’d say, if this were the ‘90s, let’s go for it, but it’s 2023 and user expectations go a little bit further than default browser stylesheets.

What do we need to do to make a media site fast?

Let’s recap what we need to do to make a content site fast: 

  • Optimize for the first page load
  • Minimize network round trips
  • Minimize blocking style/scripts
  • Minimize network latency

We can easily do the first three bullets when writing our site using Next.js.

But that’s not all.

To minimize network latency, however, we need to rely on an infrastructure built for exactly that.

Vercel provides such an infrastructure, and it relies on AWS as the provider.

We built our website use case using Next.js and frontend hosting from Vercel. To make it fast, we chose two approaches: 

  • static compilation 
  • incremental static regeneration (evented rendering).

 

Vercel and CDN

Vercel hosting serves the site as a static content from a global CDN (Content Delivery Network). It has an easy deploy and rollback system, as well as being able to redeploy at a page level, referred to as ISR (Incremental Static Regeneration). This means regenerating only the page that was updated, instead of regenerating the entire website.

When requests are made, Vercel will serve them from a global CDN. This is extremely straightforward and has the advantages of static sites. This is because there is zero request-time processing. You’re just serving flat files, so it can be incredibly fast. Additionally, it is also extremely cache efficient, because changes only happen when a new deploy or page regeneration is made. For page regeneration, Vercel will only invalidate the cache for one page, not the entire site.

There is literally not going to be a more performant way than doing a static site where you’re just serving flat files, and that’s what we are doing here.

 

What about dynamic rendering?

Dynamic rendering allows for fresh content to be instantly available. Since a request is made each time to render the page, we know that the content returned is always up to date. 

Developers are also familiar with this architecture, as most have built request-response web servers in their time. However, it can be a bit inefficient and costly computationally, since the page is rendered every time a request is made, even when the content has not changed.

Caching dynamic content can be difficult due to the fact that we don’t always know when the content has changed. This creates a trade-off between serving stale content and incurring the penalty of having to re-render and compute.

In conclusion, I disagree with the idea of re-rendering a page on every request as it can be costly in terms of computational resources and can also serve up stale content if cached. It is better to optimize the page through caching so that the page is only rendered when necessary and the content is always fresh.

 

CDN’s are important

Using a CDN is critical for achieving top performance.

As such, we should prioritize rendering from CDNs to truly capitalize on the performance gains.

Vercel hosting is an excellent choice as it ensures that each time a website is served, the content is stored in the CDN and delivered from there for maximum benefit. This makes it the ideal way to take advantage of the speed and reliability that CDNs offer.

 

The ‘Holy Grail of Speed’ with Vercel

Benefits of using Next.js with Vercel:

  • Render “expense” only paid once
  • Fresh content available instantly
  • Cache until content changes
  • Serve only from CDN’s

Now, here’s how it works:

We deploy a site on Vercel, and Vercel generates a full static site. When data changes on one of the pages, that triggers a function that regenerates and revalidates that page. 

This enables the content to change when the content changes, not every time it’s requested. We serve only static content from CDN on every request, and when the content changes, Vercel will invalidate the cache on the CDN only for that specific URL. This means we’ll have an indefinite server cache, resulting in CDN performance more often.

The benefits are clear. You still have fresh content available instantly, like with dynamic rendering, but we only pay the cost of rendering when the data changes, not when the user requests the site. 

So, if my data changes once a day, then I’m only paying that cost once a day, instead of every time a user visits my site. We’re also caching until the content changes, and with the performance benefits of CDN’s, we get static-like performance even though we’re rendering content on demand and in an evented way.

 

Downside of serving Static Site and Incrementally static generation

The downside of serving a static site and incrementally static generation is that it may be unfamiliar territory. You need to think about what pages to regenerate when a page is changed.

For example, if you add a new blog post, you should regenerate the blog page, the category of the blog post, and the XML sitemap for the new page to appear.

But the end result will be an incredibly optimized and fast website. 

 

Conclusion

To answer the original question: what makes a website fast?

The answer is you, the web developer.

Web experiences aren’t fast because of magic – they’re fast because developers care about performance and work hard to make it better.

]]>
Engineering Blog Interview with Emanuel Hoch https://compado.com/engineering-blog/interview-emanuel-hoch/ Tue, 06 Dec 2022 14:38:06 +0000 https://compado.com/?p=6212 This interview has been led by Compado’s editorial staff, remotely, with Emanuel residing, at the time of the interview, in Bavaria, Germany, on Thursday, November 10. Press-related enquiries can be submitted here.

Engineering Blog: Compado trades as “Tech Platform for Contextual Advertising and Content Monetization” – What makes Compado a Tech Platform? And how does the Compado Tech Platform work?

Emanuel Hoch: What we developed in Compado, essentially, is a machine – a machine for highly efficient Contextual Advertising. As with every machine, ours got several parts.

For instance, we’ve developed crawling and context-identification technologies that help us find and categorize commercially viable contexts – contexts where Purchase-Motivated Audiences can be found and where we can display our brand recommendations.

We also developed technologies for content monetization: For example, publishers are able to monetize their content inventory with the help of our proprietary brand-recommendation frontends – graphical user interfaces that display contextually relevant brands. Picture contextually targeted frontends such as rankings or quizzes.

What I am very proud of, too, even though hardly anyone sees it, neither brands nor users, is our Backend: We developed proprietary Backend technology, a Compado CMS if you will, for effectively managing the inventory of brands that we recommend and to manage Compado-distributed content, which is displayed throughout our publisher network and our own network of intent-based media sites.”

Engineering Blog: If you had to name three areas of technology where Compado excels, what are those?

Emanuel Hoch: Sure, there’s our ranking technologies, a suite of technologies that was developed very early on and that Compado was built around. Technologies that are able to score a brand’s attractiveness and that can rank all brands of a given industry in real-time – as a basis for brand recommendation.

Another thing that we excel at and that serves as an example for how we work in Compado is our proprietary Content Management System: We have automated the vast majority of all content management tasks and are, by now, able to operate a network of 1.000+ owned intent-based media sites with no more than 3 employees.

Third, I also want to highlight our frontend technologies: In Compado, we operate more than a dozen frontends that are used to display our brand recommendations. For example, quizzes, brand battles that contain 2 brands, podiums that contain 3 brands, or banner-style widgetized brand recommendations. We’ve got a huge number of well-converting frontends and that number is growing constantly.

Engineering Blog: You keep mentioning that Compado uses various “frontends” to match brands with customers. What’s a frontend exactly? Why are there so many? And what are the most popular frontends?

Emanuel Hoch: Yeah, a ‘frontend’ is indeed an important concept in Compado. A frontend denotes a graphical customer-facing interface. It’s how we display our brand recommendations and how we guide and influence customer journeys.

For example, we may display a quiz that a user takes to find a matching brand. Or we may display a ‘podium’, which is three brands next to each other. Different users have different preferences, often depending on the progression of their customer journey.

That’s why we have various frontends in our portfolio. Some users are in the upper funnel, where they just learnt about their need, some are in the mid funnel already, considering a solution, while some have made it to the lower funnel, which puts them right in the midst of taking their purchasing decision. Depending on that stage, they crave different kinds of information: For example, while someone in the upper funnel may be more receptive to a light-weight quiz, someone close to purchasing may be more interested in a ranking list that points out leading brands.

As to what’s the most popular frontend, that’s difficult to tell, really. Every stage has frontends that work particularly well – however, on average, I’d say that tailored quizzes or questionnaires work well along the entire funnel.

Engineering Blog: Compado claims that its advertising is ready for the ‘privacy-first world’? Why is that so? 

We’d also like to know if Compado’s Contextual Advertising uses Third-Party-Cookies – after all, they leave the World Wide Web by 2024¹.

Emanuel Hoch: Absolutely, Compado is ready for a ‘privacy-first world’ – when we use that terminology, what we mean is a world where digital advertising takes the user’s privacy seriously. On the one hand, because we believe that this is the right thing to do. On the other hand, it’s safe to say that ‘privacy-first’ is where the internet is heading: Third-Party-Cookies leave the internet by 2024¹ and device makers and legislators are pushing for restricting tracking in digital advertising further. And, yes, we are ready for that!

For instance, we’re only working with first-party data and data that partnering brands communicate back to us – that means: our platform does not need ‘cookie data’ to function at all.

Compado’s Contextual Advertising does not look into a user’s ‘private space’ in order to display relevant ads – like, what sites the user was browsing before coming in. We do not look at that!

Quite the opposite: Our Contextual Advertising primarily looks at the context – say, what a user is reading – in order to recommend contextually relevant brands. I believe that this way of targeting is much less invasive than cookie-related targeting practices. I also believe that this way of advertising is highly effective – we have, in fact, proven that over and over by outperforming traditional advertising by 5x.

Contextual Advertising, in its essence, is a simple concept: Someone who reads a blog post about learning a new language is, most likely, interested in language-learning apps and schools. There it is – that’s what Contextual Advertising is all about: presenting contextually relevant ads. And this is not just highly effective – it is very much privacy-first.”

Engineering Blog: How does Compado employ AI and Machine Learning?

Emanuel Hoch: “So, we use AI and Machine Learning in various parts of our Contextual Advertising Engine.

As an example, we’re using Artificial Intelligence in our Contextual Identifier, a piece of tech that our platform uses to understand and categorize contexts. As a Contextual Advertising Platform, we need to be able to scan and understand contexts all the time. Like, understanding what a specific blog post is about. Our Contextual Identifier, using AI, is able to do that.

We are also using AI in the vast majority of our frontends: For instance, we’re using AI in all rank-based frontends where brands are scored and ranked based on their attractiveness. AI has a look at all available brands in an industry, scores them and ranks them accordingly. This AI, the ranking one, is one of our best-trained Artificial Intelligences and at the heart of many of our brand recommendations.

I want to add that, these days, in our field, Contextual Advertising, you can hardly work without AI or Machine Learning: Compado needs to run Contextual Advertising throughout the web, at scale. We’re in the business of recommending brands at scale – and our Machine Learning capabilities help us do that.

Engineering Blog: We’ve heard of the ‘Brand Choice Widget’ – a widget that media houses can use to display Compado’s brand recommendations on their sites. 

Can you elaborate how Compado collaborates with media houses and what Compado’s plans are for expanding media collaborations?

Emanuel Hoch: Compado collaborates with media houses in different ways. I want to illustrate two of them.

First, we deliver content to media houses, especially content geared at Purchase-Motivated Audiences, such as shopping guides or reviews. We’re experts in putting together content that shoppers want to look at before shopping – and we share our high-grade content with media houses. 

Second, and very dear to me, we help media houses to monetize their content through our proprietary contextual Brand Choice Widget. The Brand Choice Widget is a piece of code that media houses can add to their sites, to integrate and embed contextual brand recommendations. 

By showing brand recommendations that match the content a user is reading – for instance, picture an article about low-carb food that features brand recommendations for low-carb meal-kit brands -, we’re making sure a media site runs relevant ads and is able to earn money from their premium content – we call that ‘Content Monetization’. 

That’s also, generally, how Compado understands itself: We’re a content-monetization partner of media sites, big and small, and help them to turn their content into revenue, with our proprietary and leading brand recommendations. 

So, if you ask me about the future of Compado-media-collaborations, I am tempted to say that what will happen next year [2023] is that (a) more and more media house will receive access to our Contextual Advertising technologies and (b) that I will make sure that we’re able to monetize more and more topics.

There’s a gazillion topics on the web, and, so far, we’re able to provide meaningful Contextual Advertising for only a slight chunk of them. It is my vision, as Compado’s CTO-CPO, to put technologies in place that help media houses to monetize their entire inventory, and not just a few topics – with the help of our very own contextually targeted brand recommendations.”

¹The Drum: Google says, Third Party Cookies leave by 2024

]]>
Engineering Blog Interview with Andreas Hoogendijk https://compado.com/engineering-blog/andreas-hoogendijk-interview/ Fri, 28 Oct 2022 09:13:29 +0000 https://compado.com/?p=4872 This interview has been led by Compado’s editorial staff, on-site, in Berlin, Germany, on Friday, October 28. Press-related enquiries can be submitted here.

Engineering Blog: You claim that Compado is a Platform for Contextual Marketing – A platform that brands can use to reach Purchase-Motivated Audiences. Can you elaborate what a Purchase-Motivated Audience is and what technologies are used to identify and influence Purchase-Motivated Audiences?

Andreas Hoogendijk: A Purchase-Motivated Audience is a group of people that are ready to buy; people that are in the market for a product or service. We’re pretty good at identifying and attracting shoppers online, and we help them to find matching brands, too.

Picture someone who would like to learn a new language and is looking for a language-learning app. We’ll help that user to find what he’s looking for, by recommending a single brand, by showing a ranking table of various brands, or by having that user take a quiz to find a matching brand – to name just a few of our frontends.

It’s true, to identify and guide Purchase-Motivated Audiences, we’re using a wide range of technologies. Examples include audience detection and contextual advertising technologies – or scoring technologies to understand the attractiveness of brands in our inventory.”

Engineering Blog: Google has Searchers, Taboola has Discoverers, Compado has Purchase-Motivated Audiences. What is the difference between those 3 and what makes Compado’s audiences special?

Andreas Hoogendijk: A Searcher is a user of a search engine. In the western world, that most often equates to Google. A Searcher has a problem or question, and wants to find a solution or an answer – and that’s why he turns to a search engine.

A Discoverer, in contrast, is someone who’s browsing the web without direction. Companies like Taboola or Outbrain are recommending content pieces or ads to those users, often by showing them native advertising. Through those ads, they are discovering a new topic or product they haven’t been aware about.

Compado’s Purchase-Motivated Audiences, in turn, are characterized by their purchase motivation. They’ve got a specific interest in a product or service and are simply undecided between brands. They need to make a decision between brands to advance on their journey – and we help them do that!”

Engineering Blog: Average conversion rates on the web range between 0% and 5%, Compado operates on a steady 10%+, in some cases going up to 25%. How is that? And what are the technologies behind those stand-out conversion rates?

Andreas Hoogendijk: Indeed, our conversion rates outperform averages by far. There’s a whole range of technologies behind that. We operate a tech stack specialized in identifying and influencing Purchase-Motivated Audiences.

For example, our Contextual Marketing technologies are making sure that we present brands in relevant contexts. So, if someone is reading an article about learning a new language, our technologies will understand that and will present a matching language-learning app. Of course, your conversion rates are higher if you’re presenting a relevant offer at the right point in time. And Contextual Advertising does that.

We also have – for instance – technologies for brand selection, that are making sure that only the most attractive brands are presented prominently. That helps with conversion rates, too: If you are only recommending brands that users like to sign up with, your conversion rate increases.

Engineering Blog: Compado is said to be especially effective for Value-Driven Brand and not so effective for commodity brands – Why is that? Does Compado’s algorithm favor value-driven brands?

Andreas Hoogendijk: “Yes, it’s true that Compado is particularly effective for value-driven brands. It’s a term we use to refer to market-leading brands that operate on high customer values – brands that value their customers dearly; mostly, that’s brands that a lot of consumers are signing up with and that have a loyal followership or an outstanding basket size. 

We are in the business of recommending brands. Accordingly, our technologies are making sure we’re primarily recommending brands to our Purchase-Motivated Audiences that are attractive. So, when a brand receives access to our platform, it needs to prove their attractiveness to our machine learning and artificial intelligence. A brand will only be featured prominently if our engine views it as attractive.”

Engineering Blog: Do you think wasted advertising is increasingly becoming a problem in digital marketing and do you think Compado’s technologies can help mitigate that problem?

Andreas Hoogendijk: “Advertising waste is a problem and, in my opinion, not being talked about enough. There’s various statistics on wasteful advertising and numbers vary, however, everyone is certain that it’s in the billions.

There’s many factors driving waste. For instance, poor targeting, impressions that are never seen, inefficient billing, fraudulent traffic, bots signing up, et cetera. For many brands it’s a sad reality that their marketing dollars will never turn into customers.

I do think that our technologies can help with that. View it that way: Brands that receive access to our platform only need to pay a success-fee for new customers signing up with them. It doesn’t get any more efficient than that. We’re practically removing waste from digital advertising. Certainly, we can only do that because our technologies are that good and allow us to charge a success-fee only.”

Engineering Blog: Compado is known for connecting brands with shoppers. While it’s clear that brands benefit from growing their customer base, can you elaborate on the benefit that consumers have?

Andreas Hoogendijk: “Look, I am a consumer myself, and so is everyone that works in Compado. We’re all aware of the reality on the web: There’s ever-shrinking attention spans and, usually, 10+ brands that cater to the problem one’s dealing with. So, neither does one have the time for deep research, nor is one capable of deciding between all the options out there. It’s obvious that the modern-day internet suffers from choice overload and research fatigue.

Our product helps with both. We point consumers towards value-driven brands and help undecided users to take a decision confidently. We also save them time and remove doubt from brand choice. I’ve recently read¹ that there is a definite need for making a consumer’s decision making simpler. And I couldn’t agree more. That’s what we’re doing!”

¹BrandEquity/The Economic Times

]]>
A Look at Google’s Helpful Content Update https://compado.com/engineering-blog/look-at-helpful-content-update-google/ Mon, 29 Aug 2022 11:47:06 +0000 https://compado.com/?p=4397 Some people on Twitter and Linkedin are legitimately freaking out about the next Google Update called “Helpful Content Update”.

I want to explain it, dispel some myths, give you some guidance and some actions for your content and websites going forward because this update reminds me a lot of Panda.

And Panda, launched in 2011, was a big deal, destroying entire sites that were mostly created with automations and templates of thin content.

But for those that have been doing everything right, there might not be anything to worry about.

At a glance, Google released a blog post on August 18th, 2022. First hand experience will be rewarded, focus on your topic and stay in your lane, satisfy the intent of your audience and follow the guidelines (like the latest Product Reviews recommendations).

First Hand Experience

How the update works

First of all, it’s going to start rolling out in late August, 2022, beginning in Calendar Week 34, and will take about a week or two. This update introduces a new site wide signal that Google may consider amongst many other signals for ranking web pages. With this new capability, Google claims to be able to identify content that has little value, low added value, or is otherwise not particularly helpful in general.

This is a new signal. Google says that they use 200 signals to rank content. So, each signal has to be weighted differently. Like, backlinks are a signal that’s given a lot of weight. Similarly to the page content is given a lot of weight as well.

At this point, we don’t know how much weight they are going to add to this new signal. However, in essence, if you have high amounts of unhelpful content, overall your site will be demoted in search.

This means that they have some type of threshold to demote an entire site if the content is not helpful. Google will look at sitewide and at each individual piece of content to evaluate this.

When Panda was rolled out, Google used an automated classifier process using machine learning models. So, this update can have lots of mistakes in their first days.

Quick win: Check your site and if you have automated or poor quality content, prune the content right now.

Who is this targeted to?

This may affect News sites utilizing their authority to rank from “best grills” to “best credit cards” – without providing expert content on the matter. We’ll see if this prediction is correct, but that will allow for many good review sites to get back their rankings.

And if this is correct, this will be a step forward for Google to not put so much weight on links.

Other sites affected are those utilizing AI to create hundreds or thousands of pages with automated content to rank for the PAA (People Also Ask) and win Featured Snippets.

What to do?

Simple, follow the guidelines.

Just kidding, we know it’s more complicated than that.

How can you ensure that you’re creating content that will be successful?

Google published a list of questions to evaluate your content to understand if it’s helpful or unhelpful. We use the classification of Aleyda Solís to sort them by type of E-A-T value as well.

If all your answers are YES then your will be fine, I will explain later what to do if some of the questions were answered NO.

Helpfulness and People Satisfaction

  • Is the content primarily made for humans rather than to attract people from search engines?
  • Has the content been primarily written by a human rather than using extensive automation?
  • Is the content topic aligned to your site primary purpose or focus? (audience that would find the content useful if they came directly to you)
  • Does your content actually answer the question that it promised to answer?
  • After reading your content, will someone leave feeling they’ve learned enough about a topic to help achieve their goal?

Quality

  • Does the content provide original information, reporting, research or analysis?
  • Does the content provide a substantial, complete or comprehensive description of the topic?
  • Does the content provide insightful analysis or interesting information that is beyond obvious?
  • If the content draws on other sources, does it avoid simply copying or rewriting those sources and instead provide substantial additional value and originality?
  • Does the headline and/or page title provide a descriptive, helpful summary of the content?
  • Does the headline and/or page title avoid being exaggerating or shocking in nature?
  • Is this the sort of page you’d want to bookmark, share with a friend, or recommend?
  • Would you expect to see this content in or referenced by a printed magazine, encyclopedia or book?

Expertise

  • Does the content present information in a way that makes you want to trust it, such as clear sourcing, evidence of the expertise involved, background about the author or the site that publishes it, such as through links to an author page or a site’s About page?
  • If you researched the site producing the content, would you come away with an impression that it is well-trusted or widely-recognized as an authority on its topic?
  • Is this content written by an expert or enthusiast who demonstrably knows the topic well?
  • Is the content free from easily-verified factual errors?
  • Would you feel comfortable trusting this content for issues relating to your money or your life?

Presentation and production

  • Is the content free from spelling or stylistic issues?
  • Was the content produced well? (is not sloppy or hastily produced)
  • Is the content mass-produced by or outsourced to a large number of creators, or spread across a large network of sites, so that individual pages or sites don’t get as much attention or care?
  • Does the content have an excessive amount of ads that distract from or interfere with the main content?
  • Does content display well for mobile devices when viewed on them?

Context

  • Does the content provide substantial value when compared to other pages in search results?
  • Does the content seem to be serving the genuine interests of visitors to the site? (doesn’t exist solely by someone attempting to guess what might rank well in search engines)

Let’s review these questions with some examples

If your site reviews “running gear” and suddenly you started reviewing “crypto” because it’s generating a lot of buzz in the media, that new section of content is not relevant to your existing or intended audience.

Unless you clearly demonstrate that you have first hand experience and in-depth knowledge, the “crypto” content in this example could get hit hard and potentially wipe your whole site.

How do you demonstrate your expertise? Having used a product or service or visiting a place, going further with your research that just looking it up online and/or rephrasing other peoples content.

How does Google determine this? By checking your overall site and understanding the primary focus. I see many times that Google promotes expired websites called “restaurantXYZ.com” that someone added a bunch of poor quality reviews of guitars, shoes and cookware.

So, generic websites that try to rank for any keyword that has low competition and/or utilizing authority or AI to do so will be hit.

In my opinion, sites that target a niche, or a broader niche, and demonstrate that they are knowledgeable, and that provide more information than the obvious, and that have original photos or videos of the products, service or the places will be fine.

If your content is not readable, if it’s illegible, if you’re just keyword stuffing, if it doesn’t add any value, then I think you’re going to get hit by this.

I’m guessing that Google will use some metrics like pogo sticking (used also by Panda) to understand if your content is answering people’s questions. Google has been able to tell for a long time whether or not the user has a good experience on your site. We have seen in the latest Google Updates how they removed a bunch of Featured snippets, reducing traffic for many affiliate sites as they were not providing helpful answers.

original content creation

What to do if I answered NO to a few questions?

I will recommend you to focus on adding value.

That means go an extra mile to show your content is better; add your own videos, add real images that nobody has, research information or compile data that is hard to get (own data, bought data, access to APIs, etc.). In essence, do not copy or summarize content from others.

If your site is too broad, try to slice it, redirecting and moving the content to new domains. Following the example of the “running gear” that suddenly talks about “crypto”. You could buy a new domain and move all that crypto content to the new domain, letting the “running gear” site safe for this update.

Focus on E-A-T signals – And if you are not an expert, hire someone to review the articles you publish.

When I worked for Onmeda, a health website, we had a few healthcare professionals that wrote the content and then they will send it to doctors and medical specialists to review. The results were astonishing, from 200k users when I started to 3 million in 9 months. Our focus was the content and E-A-T signals – long before that even was a thing back in 2012.

If you are producing hundreds or thousands of new pages with AI, evaluate if you are actually adding value. Some sites that have automated content can be really helpful, for example if you look up the price of gold in grams or cooking calculations.

I don’t think publishing 100 or so articles a week will affect your site. I used to work for news media sites that were publishing easily 1.000 articles a day from agencies. If you are publishing hundreds of thousands, then that’s another story.

Hope that helped. Any questions? Drop me a message, drop me a tweet or reach out to me on Linkedin.

]]>