Swift: Lessons Learned

A few months ago, I embarked on a new journey hoping to make a contribution to autonomous driving. While it has been a very beneficial experience, the position was just not the right fit for me. Hence, I will be resuming my activities with NRCan next week as well as my semi-regular blogging. Meanwhile, here are 5 lessons learned from my journey that I hope everybody can benefit from.


1. Continuous learning is critical

After a few years in the same position, you get used to your set of tools and daily practices. As one professor once told me: “the best tools are the ones you know how to use.” I must admit that I lived by that statement until joining Swift.


While I kept my GNSS knowledge up to date over the years, coding in C++ is something that I learned as an undergrad and I considered it acquired knowledge. Well, it turns out that C++17 is a totally different beast than C-inspired C++! Getting up to speed with the new language developments and coding best practices was definitely a challenge. And while gnuplot is still serving me well, I can now appreciate the virtues of Python for a combination of scripting and plotting.


I encourage everyone to commit to continuous learning, and not only in your area of expertise.


2. Use new technology to your advantage

Innovative software companies are thriving to develop awesome new cloud-based applications. As a result, software development has never been easier: from version control to collaboration, testing and monitoring, there are now very elaborate online platforms built to make your life easier.


With open source projects being an integral part of the software community culture, more people turn to sites like Github.com or Bitbucket.org to share their source code. I recommend to anyone with a decent programming background to showcase some of your software on these sites: not only can sharing code help other people, linking your work to your LinkedIn profile could impress head hunters!


3. Synergize

When everybody is rowing in the same direction, the boat goes faster. With a clear end goal and tight deadlines, people are motivated to work as a team. But synergy really happens when individuals with diverse backgrounds bring their unique expertise to the table. While communication can be a challenge at first, this is how innovation occurs.


I was really impressed by the team spirit at Swift and I believe it is one of the strengths of the company. By the way, if you are interested in joining their team, there are a few opportunities here.


4. Get your values right

As the proverb says, the grass is always greener on the other side of the fence. Working for a government agency typically involves a lot of bureaucracy which can slow down even the most driven individual. However, stepping out of this environment for a few months made me realize the benefits of slowing down: taking the time to read and understand hundreds of papers was key to building my GNSS knowledge.


In the end, what you decide to do comes down to knowing your values and is a personal choice. Take a minute to think about the perks of your current job: there might be more than you think.


5. Embrace Branding

I must admit that I love the Swift Navigation branding. Swift implies reacting quickly but is also a bird (hence, the logo). Skylark, their new GNSS correction service, is yet another type of bird. When joining the company, we are offered a nice Swift jacket and t-shirt which reinforces the team spirit and sense of belonging.


When I think about it: how cool would it be to have BlackDotGNSS t-shirts… any buyers?


Write a comment

Comments: 4
  • #1

    Miquel (Saturday, 28 April 2018 04:16)

    Having an experience in industry coming from an academic world is always a challenge. I have gone through this myself. But going out of your "comfort zone" is a good way to learn new things! Congrats for that!

    P.S.- I have not been managed to outspeed the combination of gnuplot + awk/sed/grep with Python scripting and matplotlib... and I disagree with those that say that gnuplot is not able to generate professional-looking plots... have a look at http://www.gnuplotting.org/


  • #2

    Simon Banville (Saturday, 28 April 2018 07:06)

    Thanks for sharing @Miquel! I have lots of scripts using awk and gnuplot so I will keep using these tools for a while for sure! But it’s good to be aware of alternatives.

  • #3

    Kedan "dan" Zhao (Friday, 22 June 2018 15:20)

    What 's the reason to use C++17 at embedded system (Piksi Multi)? I still use C/C++ and Linux based embedded system development.

  • #4

    Simon Banville (Thursday, 28 June 2018 21:07)

    @Kedan Don't get me wrong, I did not explicitly say that the Piksi Multi is using C++17 code!