抬起头,我们已经搬家了! 如果您想继续了解Square的最新技术内容,请访问我们的新家https://developer.squareup.com/blog
Square致力于增强经济实力并简化贸易。 作为Square的一名工程实习生,我有机会对实际影响卖家生活的各种功能进行了构建。 该公司的规模很小,可以提供动手解决问题的能力和项目所有权,但对于支持强大的指导和讨论的公司,其规模足够大(以我为背景,他们都是出色的工程师)。 我有很多机会不仅可以提高自己的工程技能,而且可以影响产品决策,对其他项目发表意见,了解行业等等。

我在Square Apppointations的网络应用程序上工作,这是一个在线计划工具,可帮助卖家管理他们的约会。 想象一下一家拥有多个地点,拥有众多员工,营业时间各异且每天都有数百次约会的美发沙龙。 约会解决了卖家在管理这些物流时遇到的日常问题,从允许客户在线预订到提供功能丰富的日历应用程序,向卖家和客户发送提醒文本等等。
Square给予实习生很大的责任,并提供更强大的指导。 在Square,我首先被视为“工程师”, 然后被视为“实习生”。这意味着我的导师让我在整个暑假期间进行产品改进并拥有许多项目的所有权,就像其他人一样。我的团队。 从大公司的其他人那里,我听说了为期一周的入职培训。 我们的入职培训计划历时半天,之后我的导师帮助我扎实了基础:第一周我就可以对Square约会进行一些改进。

我开发的一项功能是双重预订警告,卖家现在可以查看是否尝试安排约会超出员工的工作时间或与个人义务相冲突。 建立这个看似简单的想法的最大好处是迭代开发附带的协作,建议和反馈循环:我与团队的设计师和产品经理紧密迭代以说明国际化,并在清晰度和性能之间进行了艰难的权衡。 从我的队友那里,我学会了看重简单,可维护的代码,而不是速度更快,更复杂的解决方案。
整个公司的中心思想是高效工作的概念。 从第一周起,Square的文化信息就清晰地传达给我:该公司优先考虑为Squares营造良好的办公环境和工作与生活之间的平衡。 实习生在办公室外享受了几次郊游,并且在7月中旬参加了Square一年一度的“实习生黑客周”-五天后退一步,与其他实习生合作,建立了我们想要的任何东西。 获胜团队向杰克和其他高管们推销。 下班后,我可以在第9层的“树屋”中放松一下,那里是员工休息,玩游戏或听音乐的地方。
在暑假快要结束时,我进行了一个较大的项目,这是“预约”功能经常需要使用的功能:使卖方能够自定义员工每周的工作时间。 然后,将来可以重构我项目的数据模型,以支持除约会以外的其他Square产品,例如“员工管理”。

从开始到发布GA都有许多步骤。 我需要设计涉及产品所有部分的新数据模型,构建响应快速且易于使用的UI,并在整个堆栈中实现对卖方及其客户可见的重大更改。 对于用户界面,我团队的产品负责人和产品经理与我一起创造了无缝的体验,供卖家自定义工作时间。 在工程方面,我与团队中的其他工程师一起主持了设计会议,讨论了项目的数据模型和体系结构。 我们围绕Square的代码库中的简单性,长期影响以及与其他相关数据模型的兼容性讨论了各种解决方案。 我的下一步是编写工程设计文档,并将其转发给其他团队,以在公司范围内提供反馈。 一开始,被更有经验的工程师烤牛听起来听起来很吓人,但这是一次很棒的经历,我认为自己很幸运能够得到他们的意见。 这就是我对公司的挚爱:Square喜欢参与并与他人合作,并且从个人贡献者到执行团队成员的各个层次都可以访问它们。
在设计过程之后,有两个星期的时间从头开始实施该项目。 这两个星期的紧缩时间绝非易事,是我在Square留下的最好的回忆。 尽管道路上充满了障碍(我不会再以相同的方式看待时区和夏令时了),但由于被推挤,我作为一名工程师得以显着成长。 结对编程被证明是突破发展障碍的一种快速,有趣的方法,而我的导师总是在那里反弹想法。 从一开始就拥有这个项目并将其端到端交付是一个巨大的挑战。
我在Square的倒数第二天,一个潜在的商人进来,我有机会演示了该功能并帮助向他推荐了约会。 那是我夏天的亮点-作为工程师,我看到的乐趣莫过于看到人们使用我帮助构建的功能。
特别感谢任命团队和每位Square员工,让我的夏天变得更加美好!