I’m a Canadian full-stack developer and I’ve taught students at a Canadian bootcamp and followed them through their careers over the last few years.
In terms of salary, it is highly variable, so keep that in mind. I’ve seen juniors take entry-level jobs as low as $60k CAD and as high as $100k CAD, so that’s around $30-$50 CAD/hour. After a few years at a company and entering the mid-level market, it would not be unreasonable to see roles paying up to $125k. At the senior level, it’s all over the map depending on responsibilities.
I do freelance work now, so my income is variable. I tend to bill fixed rates per scope rather than per hour, which can change how my income is perceived. In the last two years, I’ve had jobs pay as low as $30/hour effective to as high as $250/hour, depending on the scope, client value, and whether I can use existing skills/tools to take shortcuts. Also, whether I screw something up and have to spend time fixing it.
Regarding what to learn in 2025 - my advice is to focus on building software that solves problems rather than stressing out about a specific stack or tool. Collecting frameworks, libraries, and languages on your resume is a shell game. Gain experience building projects, planning, developing, testing, and deploying them. If users actually use them, even better. This job is a craft, and you want to hire someone who’s done it 1000 times. Be that person.
@Kiran
How did you get into freelance? Did you build your own clientele or use an agency? I’d love to stop attending daily standups, so freelance seems appealing
Leif said: @Kiran
How did you get into freelance? Did you build your own clientele or use an agency? I’d love to stop attending daily standups, so freelance seems appealing
I would pick one language and get good at it, for instance, PHP. Double down on it and learn OOP, master the fundamentals, etc. Master one language, and you’ll find it easier to pick up others. Also, focus on mastering your frontend fundamentals and getting good at learning since frontend changes frequently.
If you can’t decide on a language, look at what’s in demand in your area. If it’s Java, study Java.
I’ve been freelancing for a while, so I can’t speak for the average salary for your case. However, I believe it’s around $60k-$80k USD for a junior position. Work on networking with people and seek internships.
Amos said: @Terry
How did you get into freelancing, and do you need to be senior to start? Can mid-level devs freelance?
Most people start freelancing at mid to senior level. I took a different path, doing some projects as a freelancer while working full-time. When I went full-time freelancing, I took contracts that offered steady hours and opportunities to learn. It’s worth noting I’ve been programming since high school and doing it on the side for five years.
My approach was unconventional. If I could redo it, I would start in a software QA role, which can lead to a developer role. Then, take projects on the side to build a safety net and client base before going full-time.
Lastly, NETWORK. All my best clients came from referrals.
I’m currently making 110k. I work with several stacks: Next.js + Sanity CMS, Next.js + Payload CMS + Shopify, Shopify Hydrogen (which is just Remix), and Shopify Themes. I’ve also used Vue/Nuxt, Drupal, WP, and Sails.js, although not as much these days.
Many stacks aren’t vastly different, just a few quirks in composition and built-in functions. The key design patterns differ mainly with framework choices like React or Vue.
@Kieran
Just curious, do you ever feel like you need to branch out from the React ecosystem? I see it’s in demand, and I feel productive in it, but I wonder if I’m limiting myself.
Vern said: @Kieran
Just curious, do you ever feel like you need to branch out from the React ecosystem? I see it’s in demand, and I feel productive in it, but I wonder if I’m limiting myself.
I’ve used Vue and Angular as well. I don’t feel I’m missing anything. Vue has nice syntactic sugar and the SFC model is appealing, while Angular’s control over lifecycle hooks offers flexibility, but I prefer React these days.