This summer, I had the pleasure of joining MySwimPro as a Software Engineer. While my code started sophomoric, I felt like a valued member of the team.

With only the three founders (Fares, Adam, Mike) and one other software engineer (Ben) on the team, everyone is expected to pull their own weight, meaning that I had real responsibilities and worked on projects that are now in production and used by tens of thousands of people around the world. No coffee runs, no BS. I learned a ton and wanted to share my experience.

Background

MySwimPro is a training platform for swimmers that takes the form of iPhone/Apple Watch and Android/AndroidWear apps. Upwards of 90% of swimmers primarily train alone, with limited or no access to coaches and teams. We provide basic workouts, technique and training content, and workout logging for free; a premium upgrade offers more personalized coaching and analytics. We were named Apple’s 2016 Apple Watch App of the Year, and continue improve our product to deliver structured support to our users in reaching their Gold Medal Moments – whether that’s a weight loss goal, overcoming depression, or training to swim the English Channel.

My role has primarily been to develop new features, redesign old ones, and improve the user interface and squash bugs for our iPhone app. I’ve also gotten my hands on the Apple Watch app, road mapped for the future of the product, engaged in customer discovery, worked on our business model and strategy, and represented the brand at events like Detroit Startup Week. Pretty cool for a college internship!


Learning From The Pros

As an up and coming software developer, seeing my technical skills grow this summer has been super exciting! I came in with an extremely basic knowledge of Swift. Through mentorship with the other MySwimPro engineers (Adam, iOS; Mike, Android; Ben, iOS), however, I’ve learned a lot and feel much more confident about not only about my ability to develop for iOS, but also my ability to apply underlying design principles to user-facing applications in general.

With a solid foundation, developing applications for web or Android is really just about learning how to express what I already know in a new language, be it Javascript (and its frameworks), Java, or Kotlin. Things like MVC/MVVM architecture and delegation patterns, object-oriented design and templating, deploying web endpoints, and using asynchronous callbacks don’t end with Swift.

That’s not to say that I didn’t learn a lot of Swift-specific things, though! Before this summer, my development experience was limited to pretty much just C++, which is much more verbose and low-level of a language. I remember learning Swift and initially thinking that the syntax was ugly, optional variables and closures were weird, the string parsing in Swift 3 sucked, and automatic reference counting was confusing. And what do you mean there’s no ‘++’ operator?! Ben, our part-time engineer working from Scotland, told me that Swift was a really powerful language and that I’d come to appreciate it. He wasn’t wrong!
After getting used to this more flexible, mixed-paradigm language, I find myself using ‘var’ and ‘let’ and forgetting semicolons when I write C++, and I find myself annoyed with the overhead of functors (although yes, I’m aware of auto and lambdas). String parsing in Swift 3 still sucks, but C++ is no Python either!

Ok, I’m really starting to digress. To bring things back, I grew in parallel with the company, and a lot has happened in the past 3 months:

  • Ben was hired around the same time I was.
  • We opened an office in downtown Detroit where Fares, Adam, Mike and I have been able to meet all in one place.
  • We’re closing an equity crowdfunding campaign, and we’re going to be able to start really putting the pedal to the metal with our product development.

Shipping Product & Building A Business

We launched a number of significant features to provide more value to our users, and even more personalization and expansion to new platforms is coming in the near future. It’s so, so exciting to watch this all unfold!

I’m still amazed that I was hired to join a team on the grounds that I had a competitive swimming background and a bit of entrepreneurial experience. The team trusted me to learn what I needed to learn and start contributing value, and I can proudly say that I think I’ve been able to do that.

It’s been incredibly rewarding to ship code that improves the experiences of what is soon to be hundreds of thousands of swimmers around the world as opposed to writing code that only course graders will see. But most rewarding of all is being able to use the word โ€œweโ€ when writing about all of these achievements.

Itโ€™s knowing that I was a part of this journey, helping improve peopleโ€™s lives all over the world through the sport that I grew up loving. Thanks for a great summer, MySwimPro!

Share.

Leave A Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.