来自MySwimPro的暑期实习的思考

帮助建立公司和运输代码就像什么!


今年夏天,我很高兴以软件开发实习生的身份加入MySwimPro(我的名片上写着Software Engineer!)。 虽然我经验不足,并且我的代码有时还很草率,但我感觉自己是团队中一个有价值的成员。

在团队中只有三位创始人(Fares,Adam,Mike)和另一位软件工程师(Ben),每个人都应该承担起自己的责任,这意味着我负有真正的责任,并参与了现已投入生产和使用的项目世界各地成千上万的人。 没有咖啡,没有BS。 我学了很多东西,想分享我的经验。

背景

MySwimPro是一个针对游泳者的培训平台,采用iPhone / Apple Watch和Android / AndroidWear应用程序的形式。 90%以上的游泳者主要是独自训练,很少或根本没有教练和团队参加。 我们免费提供基本锻炼,技术和培训内容以及锻炼记录; 高级升级可提供更个性化的指导和分析。 我们被评为2016年Apple年度Apple Watch App,并继续改进我们的产品,为用户达到 金牌时刻 提供结构化支持-无论是减肥目标,克服抑郁症还是训练游泳英语频道。

我的职责主要是为我们的iPhone应用程序开发新功能,重新设计旧功能,改善用户界面以及解决bug。 我还亲身接触了Apple Watch应用程序,为产品的未来规划了路线图,致力于发现客户,研究了我们的业务模型和策略,并在诸如底特律启动周等活动中代表了该品牌。 大学实习很酷!

技术学习

作为一个新兴的软件开发人员,看到我今年夏天的技术水平提高真是太令人兴奋了! 我了解Swift的基础知识。 但是通过与其他MySwimPro工程师(亚当,iOS;迈克,Android;本,iOS)的指导,我学到了很多东西,不仅对自己为iOS开发的能力,而且对自己的申请能力充满信心面向用户的应用程序的基本设计原则。

有了扎实的基础,开发用于Web或Android的应用程序实际上就是学习如何用一种新语言(无论是Javascript(及其框架),Java还是Kotlin)表达我已经知道的知识。 MVC / MVVM体系结构和委派模式,面向对象的设计和模板,部署Web端点以及使用异步回调之类的事情并没有以Swift结束。

但这并不是说我没有学到很多Swift特有的知识! 在今年夏天之前,我的开发经验几乎仅限于C ++,这是一种更加冗长和低级的语言。 我还记得学习Swift的时候,最初以为语法很丑陋,可选变量和闭包很奇怪,Swift 3中的字符串解析很烂,并且自动引用计数令人困惑。 那是什么意思,没有“ ++”运算符? Ben是我们在苏格兰的兼职工程师,他告诉我Swift是一种非常强大的语言,我会很感激它。 他没看错!

习惯了这种更灵活的混合范例语言之后,我发现自己使用’var’和’let’并在编写C ++时忘记了分号,并且发现自己对函子的开销感到恼火(尽管是的,我知道汽车和lambdas)。 Swift 3中的字符串解析仍然很烂,但是C ++也不是Python!

通常,对主要软件技术有更多的了解和了解,感觉很好。 我现在对在使用Git的团队中发展感到非常有信心,而这项技能将在我到处跟随我。

我还要补充一点,即代码审查非常重要,而且质量代码审查不是我在学校中曾经遇到过的事情。 编写有效的代码是一回事,编写优雅,可维护,可通用/可重用的代码是另一回事。 我无数次被告知,我的技术上正确的解决方案没有遵循“最佳实践”,破坏了体系结构设计或没有以明智的方式进行模块化-但是随着夏天的过去,我发现自己犯的错误越来越少。 当有人指出您的代码基本上很烂时感觉并不好,但是您还会如何改善呢?

MySwimPro成长

我与公司同时成长,在过去三个月中发生了很多事情:

  • 本是我刚入职
  • 我们在底特律市中心开设了一家办公室,在那里Fares,Adam,Mike和我能够在一个地方见面
  • 我们正在结束一项股权众筹活动,并且我们将能够通过我们的产品开发和付费用户获取真正开始踏上第一步
  • 到目前为止,本季度收入增长了约40%

工作文化

创业公司因疯狂的工作时间而臭名昭著。 作为实习生,我最初感到有这种责任,通常在头几周内每天工作10个小时。 但是,有人告诉我,我不会被我待在办公室多久所衡量。 我开始每天工作8小时,专注于生产力,并且完成了几乎相同的工作量或更多。 DHH是Ruby on Rails的创建者,也是Bootcamp的创始人,他撰写了一篇很棒的文章,介绍了创业公司的工作狂。

话虽这么说,创始人肯定要花几个小时。 对于Fares(CEO)来说,大约12小时的工作日似乎很平常,尽管这通常包括在密歇根州东南部地区开车,进行无人机/拍照,与潜在的投资者或当地游泳界人士会面等。 ,Adam(iOS)在Expedia上全职工作,并且每天在侧面做MySwimPro几个小时,这意味着他每天最多要做10个小时以上的工作。 如果您获得的是风险投资前的资金(顺便说一句,人们被风险投资所困扰,这对许多初创公司来说不是一个好方法)或引导公司(更清晰的获利途径),那么您根本就没有钱吸引没有亲自投资于您的愿景的顶尖人才。

我在过去一年中遇到的许多企业家告诉我,“平衡”在初创企业界是一个重要的词。 有人告诉我这完全不可能。 至少,如果您尝试围绕自己并不真正热衷的事物成立公司,我会感到担忧。 作为一名实习生,我并没有直接受到这种压力,但是接触这种环境绝对是一次令人大开眼界的经历,并且在我将初创公司视为职业道路时,我需要牢记一些事情。

我工作中最酷的部分之一是,我被鼓励每周中午去几次游泳以测试应用程序功能,尤其是对于我们的Apple Watch应用程序。 夏天,我得借用Fares的Apple Watch,这真是太酷了,这让我的很多朋友嫉妒! 我也必须成为游泳模特,所以要当心,以防万一我放弃软件开发梦想而追求this(JOKE)

运输产品和建立业务

我们推出了许多重要功能,以为我们的用户提供更多价值,并且在不久的将来,将有更多的个性化和扩展到新平台。 如此,如此精彩的观看!

我仍然感到惊讶,因为我具有良好的游泳背景和一些创业经验而被录用。 团队抓住了机会,信任我学习了我需要学习的知识并开始为自己贡献价值,我可以自豪地说,我认为我已经做到了。

总结思想

发行代码可以改善世界各地成千上万游泳者的体验,而不是编写只有课程评分者才能看到的代码,这是令人难以置信的回报。 但是,最重要的是,在撰写所有这些成就时可以使用“我们”一词。

我无法表达出知道自己是这次旅程的一部分,这是多么伟大的事情,通过我从小就热爱的这项运动,帮助改善了全世界的人们的生活。 感谢您度过一个愉快的暑假,MySwimPro!

在我的最后一天和我的生日碰巧有点愚蠢的乐趣