我们的技术堆栈
了解我们的工具和技术背后充满激情的团队人员。
受到全球2000+多家移动领军企业的信任
AppTweak 帮助公司收集和分析他们在 App Store 和 Google Play 上的应用和游戏的表现数据。
为此,我们:
- 每天通过 ETL 管道收集千兆字节的数据。
- 在各种数据库中存储和组织这些数据。
- 构建算法和模型,为我们的客户生成相关的预测和洞见。
- 通过 API 调用使用这些数据和洞见。
- 利用这些 API 调用打造直观且易用的可视化效果。
我们通过在 Kubernetes 上运行的 Docker 容器部署这些工作进程和服务。这使我们与技术无关,并允许我们为每个服务使用最好的库和语言;我们喜欢 Ruby,并尽可能多地使用它,但我们不怕尝试新事物!
了解我们的技术团队
-
后端15
-
前端10
-
数据科学5
-
Web 开发人员1
-
质量保证4
-
宠物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 监控所有内容,以有效的方式可视化时间序列和指标。
-
数据科学
- 我们的大多数机器学习模型均使用 Fastai/Pytorch 或 Scikit-Learn 构建。
- Prophet 通常能很好地帮助我们理解时间序列。
- 使用 Pandas 和 Numpy 进行数据分析和探索。
- 我们算法的大部分数据都存储在 MySQL 数据库或 MongoDB 中。
- 我们将算法封装在使用 Flask 构建的 JSON REST API 中。
- 我们使用托管在 AWS 上的 Kubernetes 群集上的 Docker 镜像进行部署。
-
前端
- 基于 Reaction/Redux/Redux-Sagas 的单页应用程序,使用标准工具(Webpack、Babel、ES6、ESLint 和 Prettier)在 TypeScript 中编写。
- 前端使用基于 Ruby on Rails 构建的 REST API。
- 使用 Concourse 和 Docker 镜像的强大 CI/CD 管道。
- 内部设计系统,提供跨工具使用的 UI 组件和指南。
我们的技术挑战
我们的技术团队由技术娴熟、才华横溢、敬业的个人组成。在这里,我们概述了他们在 AppTweak 进行技术项目工作时面临的一些潜在挑战。
后端
- 我们必须构建、维护和开发每天执行数百万个 HTTP 查询的抓取器。
- 我们依赖的是可能会在没有任何警告的情况下更改的数据源,这意味着我们必须随时准备进行快速修复。
- 我们要处理海量数据,这会促使我们非常小心地保证性能。
- 我们会监控大量的移动部件,确保它们始终正常工作。
前端
- 我们的整个前端层已经现代化,现在使用 ReactJS 配合 Redux 和 Redux-Saga 一起构建来处理状态和数据加载。由于主要应用程序现已完全使用 React 实现,我们希望通过迁移到微前端架构来改进我们的前端架构。
- 应用程序的某些部分(如我们的关键词表)必须显示成千上万的数据,因此我们必须始终关注性能优化。
- 这个应用程序每周发布一次,不断演进。我们面临的其中一项挑战就是保持高质量的前端标准。
数据科学
- 我们的项目涵盖了机器学习领域的重要组成部分:表格数据、聚类、自然语言处理、图像分析、时间序列分析…我们的挑战是找到、理解并正确使用这些领域中最有前途的技术。
- 我们的一些算法是用 >500M 的数据点训练的,这需要优化收敛和内存管理。
- 我们有时会在 GPU 上进行训练,需要优化所有这些 CUDA 魔法。
- 我们构建和维护 REST API 来服务于我们算法的预测,确保我们满足软件的速度要求。
有兴趣加入我们的团队吗?
了解我们现有的工作机会,今天就来申请吧!