见到约翰

你目前的角色是什么?

我的正式职务是高级Android工程师和设计服务工程经理。我的角色包括:

  • 设计服务Android技术领先
  • Android服务架构师
  • Android超级联赛领先
  • Android技术讲座组织者
  • 芬兰湾的科特林转换队长
  • 应用程序性能的队长

你的团队是做什么的?它是如何融入Wayfair的世界的呢?

设计服务是Wayfair的在线室内设计服务,它将家庭购物者与真正的室内设计师联系起来。我们利用Wayfair的技术,在顾客和设计师之间建立无缝的在线协作,使之适合人们独特的生活方式、空间和风格。想想行业标准的服务,而不用离开沙发。

你来威fair多久了?

我从2019年3月开始在Wayfair工作

从这里开始的90天是什么样的?

Wayfair的入职流程是我见过的最好的。我们用了前两天真正了解了价值观和文化定位。入职培训之后,我得到了一份文件,里面有我将与之合作的团队的详细信息,某些事情谁是最佳人选,我应该参加哪些培训研讨会,以及如何安排一切。

每个人都非常好,乐于助人。设计服务是一个感觉像刚起步的团队。iOS和Android团队合作非常紧密,因为他们共享所有相同的功能。web和设计团队可以为我们提供支持,产品团队也可以与工程团队合作确定工作的优先级。团队合作是难以置信的惊人。多亏了我得到的所有帮助,我很快就上了车。

加入三周后,我在Android架构频道上开始讨论,在讨论中我建议我们应该将架构从VIPER转换为Clean架构。我用一个完全不同的架构重写了一个特性来展示一个具体的例子。我们参与了一场辩论,我真的很感激能认识参与其中的热情的人们。

讨论没有导致任何彻底的改变。结果是四周后我在内部发表的“用干净的架构构建更好的应用”的技术演讲。我在那时提出的这些想法也被Wayhome团队分享了,我们能够在一个关于替代架构/设计模式的技术演讲中合作。

我发现回顾我是如何改变架构的实在是很傻,但是这是一个学习和理解那些重要决策背后动机的好机会。

自从你开始在这里工作以来,你的角色有什么变化?

我一开始是一名技术主管,现在我是一名工程经理,也是一名Android架构师。我过去主要从事的是功能、缺陷和建立更好的实践来解决设计服务的挑战。现在,我花时间思考培训、确保我的队友的成长和快乐,以及为服务团队开发更广泛的技术策略。

在这个更广泛的组织中,我加入了几个旨在改进社区、入职、文档、应用程序性能等的工作组。我还在Wayfair上找到了发展社区的机会,组织了Android技术讲座、Android圆桌讨论和应用程序闪电讲座。我在这里做一些与社区相关的事情,我很享受参与这些活动的自主权。

我一开始主要专注于编程和了解产品。现在,我在建立技术策略、修复关键bug、组织教育活动和指导之间平衡我的时间。

约翰的日常

每一天都是不一样的,但是你能大致描述一下你典型的一天是什么样的吗?

Wayfair有很棒的水果和小吃供应,所以我通常在办公室吃早餐开始新的一天。我总是先查看我的电子邮件和信息,然后再在纸上画我的一天。我在早上效率最高,所以我尽量早点完成一些技术性的工作。

通常情况下,我每天都要参加各种工程或社区活动的会议。我会在会议间隙找时间处理小任务或文档。有些时候,我的会议很少,我可以专注于架构或功能任务。

一年中是否有特定的季节比其他季节更繁忙?如果是这样,为什么?

我总是忙。我想做的更多的是与开发相关,而不是与管理相关,所以在我60%的时间都花在会议上的那几周,我要确保有时间做一些技术性的有趣的事情。

协作Wayfair

你和哪些不同的团队一起工作?

Design Services与产品展示页面(PDP)、My Account、WayChat、Lists、Envision、Room Planner 3D以及其他团队合作。作为社区活动的组织者,我最终与来自每个团队的一群人一起工作。参加各种工作组的情况也是如此。

你在你的产品关系中扮演什么角色?

我喜欢和设计服务产品团队一起工作。为帕姆和埃文的出色的产品合作伙伴大声喊出来。与您一起处理产品工作的优先级、bug修复、代码改进和有趣的任务是非常容易的。

约翰最喜欢的工作

你想解决的最有趣的问题是什么?

我目前试图解决的一个大问题是如何将我们的代码和实践提升到一个新的水平,并解决我们不断扩大的产品和团队带来的挑战。大量出现的技术问题让人们意识到,我们正在以多种方式成长,我们必须创新才能继续取得成功。,开始积极与教育、沟通和采用最好的新思想。

我正在做的一个项目解决了这个问题的一部分,那就是弄清楚Android内部库的发布并构建原型。这将加快构建时间,并促进代码中更多的模块化设计和考虑。

你最近最自豪的项目是什么?

我非常喜欢将Design Services代码模块化为一个特性模块。它极大地改善了构建时间,并使我们能够更快地开发新特性。我们还没有将所有代码移走,但基础已经建立。我们的模块化努力将使我们注意代码的内聚性,并与我们的合作伙伴和客户进行沟通。