Davud and adjoe tech team at company hackathon sat on beanbags

Hackathon Highlights: Ready for Release Management & Feature Flags

I experimented with feature toggles during the hackathon. Our hackathons give us the opportunity to present the things we want to change and to present working solutions to the team.”

You’re a developer. You want to optimize your product – and also the technologies, processes, and software at your company. So, it’s a no-brainer that you hail in-house hackathons as well as the opportunity to showcase functional prototypes to your team and receive feedback from them. With any luck, you’ll then get to implement your idea in practice. 

Last month, adjoe’s Go Backend Developer Davud Safarov and DevOps Working Student Maaz Malik paired up for adjoe’s first hackathon of the year. Together, they decided to integrate a release management software into the development cycle at adjoe. By doing so, they wanted to address the pain points numerous developers face when deploying new features.

A Feature Working in Test Environments but Failing in Production

When releasing new features, you’re always vulnerable to unexpected user inputs or making a mistake deep inside the code. If the mistake is significant enough, the changes need to be reverted as soon as a problem has been identified. A process that can take up to a few minutes. It may well take longer if this error affects a large percentage of your clients. 

With their hackathon project, Davud and Maaz wanted to make sure that adjoe avoided exactly these problems caused by features failing in production. The release management software that Davud and Maaz integrated – Flipt – provides you with a dashboard. This allows you to enable or disable features in production with a click of a button. By integrating the software, the developers also wanted to make use of dark launching techniques.

screenshot of Flipt showing adjoe using release management and feature flags

Deploy as Much as You Want

Integrating a release management software helps you avoid taking big business risks and disappointing clients. With this software, you can

  1. adjust which percentage of your users will be able to see a new or experimental feature
  2. perform A/B testing for that feature to assess whether the feature would be beneficial to clients and adjoe itself,
  3. progressively deploy it to more users or more geographical zones and thereby avoid deploying a feature to all end users at once.

Developers – not just at adjoe – can also benefit from the capabilities of dark launching or beta releases. By incrementally deploying your features, you’ll be more confident when you release a new feature. Then, when you’re ready to launch on a larger scale, it’ll only take one click. With release management software, this step suddenly becomes significantly easier and quicker.

Release Management Software with Targeting Capabilities

By being able to decouple deployments from feature releases, you enable your product to have targeting capabilities without any extra effort. Without integrating an existing feature flag service, you can still build your in-house solution and enable certain features for an exclusive subset of partners. But you will ultimately be losing time and adding code complexity to your product.

Let’s say you want to optimize algorithms that determine how campaigns appear in adjoe’s Playtime offerwall. This would be a lot easier with release management software. Whether campaigns are sorted via CPI, margin, or profitability score, you can tailor your bidding model to suit certain partners. And once you know that you have a model that really works, you can deploy these optimizations on a larger scale. By doing this, you eliminate the risk of unnecessary revenue loss.

Example: Making an HTTP Request to the Feature Flag Service

After you have defined the flag and which partners you should expose to the profitability-based coin calculation algorithm in the dashboard, you can write your function that makes an HTTP request to the feature flag service, asking if the partner is in the experiment or not.*

* (code is simplified and does not reflect the full original code used at adjoe)

var profitabilityCalculationKey = "profitability-score-based-playtime-reward-calculation"
func (flip FlipFlagService) ShouldUseProfitabilityBasedCoinCalculation(partnerID string) bool {
    params := evaluate.NewEvaluateParams()
    params.SetBody(&models.FliptEvaluationRequest{
        FlagKey: strptr(profitabilityCalculationKey),
        Context: map[string]string{
            "PartnerID": partnerID,
        },
    })
    r, _ := flip.client.Evaluate.Evaluate(params)

    return r.Payload.Match
}

You can easily use this function for coin calculation and decide which algorithm should be used to calculate the coins for a campaign.

func (c CampaignService) calculateCoins(campaign Campaign) int64 {
    if c.experiments.ShouldUseProfitabilityBasedCoinCalculation(campaign.PartnerID)  {
        // calculate and return coin amount using new profitability-based algorithm
    }
    // calculate and return coin amount using the old way
}

Example 2: Targeting Test Devices for a New Offerwall Design

screenshot in Flipt of showing adjoe targeting test devices for new offerwall design

Here, Davud and Maaz selected who could see the new offerwall design; the targeted users are “adjoe test Devices.” Meaning that the new offerwall UI implemented by them will only be visible by the test devices owned by the company.

Avoid Wasting Time on the Revert Pipeline 

Integrating the right software with feature flags would mean developers like Davud and Maaz could deploy when and to whom they want. And much more frequently. They’d experience faster incident resolution thanks to kill switches – and also cut out a lot of the extensive communication and coordination needed between teams involved in the revert pipeline. No more team threads detailing what should be reverted, when a developer can tackle a fix, whether all external teams are ready for the release, and when the incident is finally resolved. 

Note: Quickly resolving a feature error by the feature toggle could in theory be managed by anyone in the company with access to the dashboard. For instance, anyone in adjoe’s Development, Product, or Business teams. You would not need knowledge of code to perform this incident resolution.

A Future of Feature Flags at adjoe

When Davud and Maaz opted to focus on release management software and feature toggles, they knew very well that this was not an adjoe-specific issue. But they did want to find an adjoe-specific answer and a working solution to show their team. And that’s exactly what hackathons are for. They looked at the market, picked flipt (a flag management service that was easy to set up), integrated it with adjoe’s product, and showed a fully working solution in a sandbox environment.

Davud and Maaz’s hackathon project brought to life a functional fix for a) optimizing adjoe’s partners’ performance, b) boosting adjoe’s business, and c) cutting important time spent on the revert pipeline. With its targeting capabilities, adjoe has already seen success in progressively deploying features for its partners. It could turn to release management software long-term as a means of boosting performance and team efficiency on a larger scale. So, it’s no wonder that the pair’s project received company recognition – and a reward.

It now remains to be seen which release management software adjoe will integrate its product with …

UI/UX Designer (f/m/d)

  • adjoe
  • Playtime Supply
  • Full-time
As a UX Designer you will be part of our cross-functional development teams and responsible for the user interface design and user experience of our mobile offerwall and our dashboards, including all aspects of branding, design, usability and function.

adjoe is a leading mobile platform developing cutting-edge advertising and monetization solutions that take our app partners’ business to the next level. 

Our unique ad unit “Playtime” has made us one of the fastest-growing ad platforms and top-ranking user acquisition sources for app publishers worldwide. And that’s just the start. Our vision is to serve a positive ad experience to every app user on the globe. To achieve that, we challenge the status quo by creating industry-changing technologies, ad formats, and business models. 

As part of the Applike Group (financially backed by media powerhouse Bertelsmann), adjoe has access to an extensive network of industry experts and funding with a long-term growth mindset. Our advanced tech stack and modern cloud technologies (learn more here) allow us to handle billions of ad requests per day and are the foundation for our competitive advantage.

We aim to reshape the way apps operate their business. If you thrive in a tech-driven, fast-paced, and creative environment then join our ambitious team in achieving our vision!
What You Will Do
  • You are involved in the whole product development process of our different ad formats that are seen by millions of users daily
  • You support the cross-functional team in UX related questions
  • You act as the main driver for all user experience related topics and bring them to final concept 
  • You will develop design concepts, create research designs for prototype validation and carry out user tests
  • You will carry out user-based analyses and make specific suggestions for optimizations
  • You create design ideas by bringing in your own experiences and using different data sources 
  • You design the aesthetics to be implemented within the product, from the screen layout to final interface
  • You advise our product leads on innovative solutions and give recommendations for further product development and optimization
  • You deal continuously with trends and developments in mobile games and enterprise software
  • You will be part of an international, English-speaking team that builds our disruptive Ad Tech platform
  • Last but not least: when it comes to UX related questions you are the first point of contact for all colleagues and the top management
  • Who You Are
  • 3+ years of demonstrated experience in creating and implementing UX design for mobile apps
  • Professional experience with UX/UI design for mobile games and/or enterprise software is a bonus
  • Professional experience with creating a coherent and visually pleasing design language is another plus
  • Proficient with visual design programs such as Adobe XD, Figma, Zeplin, InVision, Photoshop and others
  • Profound experience creating storyboards, user flows, wireframes, interaction design, prototyping and user testing
  • Expert knowledge in methods and tools like design thinking, user flows, interaction design, rapid prototyping, user research (customer journey mapping, empathy mapping and value proposition canvas)
  • Ability to work effectively in a collaborative agile environment to create top-performing UX for apps
  • Account for challenges using problem-solving skills and seek to optimize data for the best possible outcome
  • Why you will love working here
  • Reshape the way apps operate their business – by creating industry-changing technologies, ad formats, and business models with us!
  • Work-Life Package: 2 remote days/week, 30 days vacation, flexible hours, kick-ass office in the center of the city, dog-friendly
  • Relocation Package: Visa & legal support, relocation bonus, free german class in the office
  • Happy Belly Package: Company & team lunches, breakfast, tons of free snacks and drinks
  • Physical & Mental Health Package: Gym membership, Yoga classes
  • Activity Package: Regular team events, hackathons, company trips
  • Education Package: 1500€ Budget on top to visit conferences +  online training opportunities
  • Skip writing cover letters. Tell us about your most passionate personal project, your desired salary and your earliest possible start date. We are looking forward to your application!

    We welcome applications from people who will contribute to the diversity of our Company.