我们的技术堆栈

了解我们的工具和技术背后充满激情的团队人员。

受到全球1700+多家移动领军企业的信任

  • np-digital.svg
  • glu-mobile.svg
  • amazon.svg
  • ea-games.svg
  • kabam.svg
  • zynga.svg

AppTweak 帮助公司收集和分析他们在 App Store 和 Google Play 上的应用和游戏的表现数据。

为此,我们:

  • 每天通过 ETL 管道收集千兆字节的数据。
  • 在各种数据库中存储和组织这些数据。
  • 构建算法和模型,为我们的客户生成相关的预测和洞见。
  • 通过 API 调用使用这些数据和洞见。
  • 利用这些 API 调用打造直观且易用的可视化效果。

我们通过在 Kubernetes 上运行的 Docker 容器部署这些工作进程和服务。这使我们与技术无关,并允许我们为每个服务使用最好的库和语言;我们喜欢 Ruby,并尽可能多地使用它,但我们不怕尝试新事物!

了解我们的技术团队

  • 后端
    15
  • 前端
    7
  • 数据科学
    5
  • Web 开发人员
    1
  • 质量保证
    1
  • 宠物
    9

来认识一下 AppTweak 的首席技术官 Alex

认识一下各个小组 👋

AppTweak 的开发和数据科学团队分为 9 个小组。
一个小组就是一个跨职能的团队,对 AppTweak 工具的特定领域拥有完全的所有权和自主权。

可见性小组
为应用和游戏发行商提供可操作的洞见,以监控和提高他们的应用在应用商店中的可见度。
潜在客户生成小组
增加 AppTweak 网站的流量,鼓励潜在客户开始免费试用。
客户生命周期小组
确保整个 AppTweak 工具的导航顺畅,努力提高用户激活率和留存率。
分析小组
帮助用户衡量他们的应用在各个市场的应用商店中的表现,并与其他应用进行比较。
转化小组
为应用和游戏发行商提供必要的工具,以优化他们的应用在应用商店中的转化率。
DeSy 小组
提供工具和流程来帮助其他小组巩固我们所有数字产品 UI 的一致性。
API 小组
加强 AppTweak API,扩大其客户基础并发展战略合作伙伴关系。
QAWAII 小组
改进 AppTweak 的基础设施和工具,并在小组中支持和分享相关知识。
数据科学小组
通过提供数据驱动的算法和分析来支持其他小组的增长。

我们的工作方式

每个小组决定自己的组织方式,但一般来说,每个小组都会进行为期两周的冲刺,并遵循以下惯例:

  • 站会:每天一次或一周几次,视小组需要而定。
  • 用于开始和结束每个冲刺的冲刺计划和回顾。
  • 演示日:每个月小组都会向整个 AppTweak 团队展示即将发布或最近发布的功能。
  • 调试:每周在周四进行一次错误管理。

我们使用的技术

先进的技术使我们的开发人员和数据科学家能够提高自己的技能,以最有效的方式开发我们的工具。

  • 后端

    • 软件及服务 (SaaS) 产品是一个服务于React 单页应用程序的 Ruby on Rails 应用程序。
    • 抓取器和爬虫从 SQS 队列中获取任务,并在 MySQL、Redshift、MongoDB、PgSQL 和 Elasticsearch 数据库中混合存储数据。它们使用 Ruby 编程语言(没有 Rails)构建。
    • JSON REST API 也使用 Sinatra 轻量级框架在 Ruby 中构建。
    • 代码部署:Concourse 作为 CI/CD 管道,以构建在 AWS 上托管的 Kubernetes 集群上部署的 Docker 镜像。
    • 我们会使用 Prometheus 和 Grafana 监控所有内容,以有效的方式可视化时间序列和指标。
  • 前端

    • 基于 Reaction/Redux/Redux-Sagas 的单页应用程序,使用标准工具(Webpack、Babel、ES6、ESLint 和 Prettier)在 TypeScript 中编写。
    • 前端使用基于 Ruby on Rails 构建的 REST API。
    • 使用 Concourse 和 Docker 镜像的强大 CI/CD 管道。
    • 内部设计系统,提供跨工具使用的 UI 组件和指南。
  • 数据科学

    • 我们的大多数机器学习模型均使用 Fastai/Pytorch 或 Scikit-Learn 构建。
    • Prophet 通常能很好地帮助我们理解时间序列。
    • 使用 Pandas 和 Numpy 进行数据分析和探索。
    • 我们算法的大部分数据都存储在 MySQL 数据库或 MongoDB 中。
    • 我们将算法封装在使用 Flask 构建的 JSON REST API 中。
    • 我们使用托管在 AWS 上的 Kubernetes 群集上的 Docker 镜像进行部署。

我们的技术挑战

我们的技术团队由技术娴熟、才华横溢、敬业的个人组成。在这里,我们概述了他们在 AppTweak 进行技术项目工作时面临的一些潜在挑战。

后端

  • 我们必须构建、维护和开发每天执行数百万个 HTTP 查询的抓取器。
  • 我们依赖的是可能会在没有任何警告的情况下更改的数据源,这意味着我们必须随时准备进行快速修复。
  • 我们要处理海量数据,这会促使我们非常小心地保证性能。
  • 我们会监控大量的移动部件,确保它们始终正常工作。

前端

  • 我们的整个前端层已经现代化,现在使用 ReactJS 配合 Redux 和 Redux-Saga 一起构建来处理状态和数据加载。由于主要应用程序现已完全使用 React 实现,我们希望通过迁移到微前端架构来改进我们的前端架构。
  • 应用程序的某些部分(如我们的关键词表)必须显示成千上万的数据,因此我们必须始终关注性能优化。
  • 这个应用程序每周发布一次,不断演进。我们面临的其中一项挑战就是保持高质量的前端标准。

数据科学

  • 我们的项目涵盖了机器学习领域的重要组成部分:表格数据、聚类、自然语言处理、图像分析、时间序列分析…我们的挑战是找到、理解并正确使用这些领域中最有前途的技术。
  • 我们的一些算法是用 >500M 的数据点训练的,这需要优化收敛和内存管理。
  • 我们有时会在 GPU 上进行训练,需要优化所有这些 CUDA 魔法。
  • 我们构建和维护 REST API 来服务于我们算法的预测,确保我们满足软件的速度要求。

你有兴趣加入我们的团队吗?

想在 AppTweak 工作?