I've been agonizing over a decision between two offers.
The first one is from a company in Ottawa (Canada), doing systems programming (C/C++) with an above-average salary (for a new grad). The second one is from a company in London (UK), with ~ £40k salary. I'd be working with a more "modern" stack (think Python/JS/Ruby/Go/etc).
Following is a somewhat unstructured collection of thoughts.
Location: London >> Ottawa. I'd be looking at a ~40-60min commute (by bus) in Ottawa. For London, public transit and cycling infrastructure seem good. I'm more familiar with Ottawa as I've done an internship there, while my impression of London is based solely on a short visit. Generally though, London seems to be a more exciting (but expensive) place to live.
Type of work: The first offer seems more interesting as I would love to work on performance-type problems.
People/team: When interviewing with the first company, I met with two people from my would-be team (including the manager), and with multiple senior engineers from other teams. The company has a high proportion of senior engineers. For the second company, I got to meet a larger portion of the team. There were a couple instances during the interview and several post-interview phone calls where I thought "man, I'd really love to work with this person".
Immigration: For the sake of future stability, it is important for me to get permanent residency regardless of where I end up. Based on my research, getting a PR in Canada is much faster compared to getting an ILR in the UK.
Some of the questions on my mind are:
- Would it be irresponsible to give up the PR in Canada and move away?
- Would I later regret not moving to London in my early twenties?
- What's more important: work or people?
- How important is compensation for the first job out of college?
Would really appreciate any help/input/advice, especially from people later in their careers who have had to make similar choices.
Some thoughts I have so far:
1. Whatever the project is, it has to be something we'd be able to quickly iterate on (build-test-evaluate)
2. If there are types of sensors that are just now getting increasingly cheaper, we could probably use them (e.g. IMUs got cheaper when smartphones became popular). Same goes for types of data (e.g. high-res geospatial/satellite imagery).
3. High-impact projects revolving around energy, clean water access, food production, resource utilization and other humanity-level problems would be awesome. However, making something just for the sake of cool tech would work too.
Please feel free to share any thoughts/ideas you might have. Thank you!