This article is for: Software startup founders who want to learn the best ways to save money on development by providing a software developer internship to engineering students
Written by: Alex Senson, Ashley Burton, Tyler Boulanger
Competing for employees with huge tech corporations is an omnipresent concern for startup businesses. Finding cheap labour can be difficult and will likely lead to low-quality work. Software developers are at a premium in the constantly expanding landscape of technology, so who is supposed to be behind development at small businesses that rely on software?
Many companies turn to internships, or other student work placements, as a way to bring in software developers at a greatly reduced cost. The problem is, running an internship improperly will cost much money than it saves. Though hiring students is a risky affair that requires careful attention, it can pay dividends if they are put in the right situation for the work placement to be a success.
This article aims to explore whether your software startup should offer a software developer internship and how it can go about doing so most effectively. It is broken down into the following topics:
- Types of Student Work Placements
- Whether You Should Hire Students
- Finding the Right Students
- Strategies for Optimizing a Student Work Placement
- Compensating and Funding a Student Work Placement
We will illustrate these ideas through case studies of companies and founders who work with the Altitude Accelerator network
- Case Study: Chris Houston from SurfEasy
- Case Study: Steve McBride from Weever Apps
- Case Study: Rohan Mahimker from Prodigy
Types of student work placements
Key Takeaway: Student work placements are meant to provide mentorship to engineering students as they complete a deliverable project that showcases their knowledge and skills in software development. Internships and co-ops are more like a short-term job while capstone projects and field study courses are centered around academic research.
A wide variety of types of student work placements exist, so you should make sure to hire students in a role that works best for your business. More or less, student placements tend to involve working towards completing a large ongoing project alongside a range of smaller day-to-day tasks. For software development positions, the large project would involve some kind of discrete engineering task that achieves a particular function; students should at least be able to showcase what they have learned in some way.
The goal of any of these positions is to mentor students in the career field they wish to enter, ideally helping them grow into more skilled, employable professionals. The definition of each student work placement will vary between different employers and or academic institutions, but they generally follow the characteristics outlined below.
Software developer internship
Internships are the most common type of student work placement. They are usually a one-term (four month) work assignment that happens in the summer, though they can vary from these parameters. Though many students take part in internship programs during their academic career, some will also look for internships after graduating to get their foot in the door at a specific company.
Depending on an employer’s needs and the career field it is training the student for, internships can be either full-time or part-time; or range from well paid to unpaid. Much of this depends on whether the placement is occurring alongside a student’s classes, which likely means the internship is part-time; or during a period of time with no class, where the placement is likely to be full-time. Some schools offer internship courses in which the internship can be completed for course credit. Though many internships are arranged through job postings, many are hired as part of internship programs that match students with a relevant business.
A Co-op work placement is usually a multi-term work agreement with a relevant employer that connects what a student has learned in the classroom to a real-world work setting. Traditionally this is structured as three work terms that alternate between class terms; this results in co-op undergraduate programs taking five years to complete instead of four. Co-op programs are also available to high school or college students if you have interest in developers with that level of experience. Because they occur when the student doesn’t have class, co-op placements tend to be full-time, paid positions that result in course credit. Co-ops are more common for careers that require hands-on training, this includes software engineers.
A capstone project is a culminating academic project that concludes a post-secondary degree. It is similar to an academic thesis, though beyond a written report it also includes a product, presentation, or performance. In the case of software engineers, a capstone project would entail a developed software product. The purpose of a capstone project is to combine the application of academic principle and the exploration of a unique project; in other words, the student should be showing the use of what they have learned during their academic program while displaying their own ability to learn on the job.
A capstone project will provide a student with course credit, so the project needs to be documented and showcased in detailed written and oral presentations. Students can find the company on their own or companies can contact the school to be connected with students. Students and employers can then work together to figure out a potential project.
Field study course
Much like internship courses, many schools offer a field study course that involves conducting research in an off-campus setting. This placement involves a focus on academic research as opposed to development productivity, but could still be useful to a software startup if they have interest in research on their development methods. Some university engineering programs offer a field study course for students looking to gain real-world engineering experience while preparing for post-graduate studies. The course is usually one or two terms (four to eight months).
For startups looking to hire low-cost students without the pressure of a defined project endpoint, entry-level jobs allow you to hire recent graduates into a simple role at your company. Recruiting for an entry-level job is just like any other job but requires more on-campus efforts. These positions include full-time in-house software developers, but without any leadership or senior responsibilities. This ideally paves the way for progression to a more significant role in the company as the graduate gains experience.
Entry-level positions still require some previous work experience, preferably as a co-op or internship at that company in previous years. Recruiting for entry-level positions would tend to occur when candidates are in their final year of school. Though these are paid jobs, government support is often available to help fund the hiring of new graduates.
Summary: Types of student work placements
- Software developer internship: most common, one term, flexible in work hours, payment, and duration
- Co-op: multiple terms alternate with class, usually full-time and paid, course credit
- Capstone Project: Culminating project that concludes degree, tests academic knowledge and application, course credit
- Field Study Course: More academic research than development productivity, course credit
- Entry-Level Job: full-time position for recent graduates, no leadership or senior responsibilities
Whether you should hire students for a software developer internship
Key Takeaway: Hiring students for a software developer internship project can be advantageous in the access it gives you to young talent that can be developed into long-term employees, but their work comes on an inconvenient term and their inexperience brings the risk of poor-quality work.
Although hiring students may seem like a great way for any business to manage their costs, some startups waste a lot of money on these programs when they were destined to fail from the start. Although hiring students is ultimately up to your discretion, there are pros and cons to keep in mind to help make the decision much clearer.
Pros of hiring students
Students can be highly motivated and willing to learn. This is not to say that regular employees are not, but the main reason students take these positions is to gain experience in their field of interest. They’re certainly not taking a software developer internship for the stellar paycheck, so there is definitely an opportunity to take advantage of their enthusiasm to prove themselves; this can especially come in handy when you have a project that requires a lot of motivation and discipline to complete.
Students can also provide a fresh perspective; seeing as they are in the midst of their academic career, students still have theoretical knowledge from class fresh in their head while they also bring the viewpoint of younger individuals into consideration. When they are encouraged to question the ways things are traditionally done, the naivety of a student can lead to finding new, better ways of getting things done.
Develop from within
Though student work placements have a short-term nature, that doesn’t mean your professional relationships with employed students can’t last for a long time. Hiring students presents an excellent opportunity to train students to be effective long-term employees at your company.
If they fit in well at your startup and work productively, they can be transitioned into a full-time developer when they graduate. By doing so, you would be hiring someone that is already familiar with the company’s technology, practices and culture. This eliminates the costs involved in onboarding someone who is used to another company. Hiring students in a lesser role allows you to familiarize them with the company and onboard them gradually at a low cost; this can also act as a trial run for employing them in the future.
Employees have been found to stick around when they are former interns at a company, as opposed to someone who joined the team later in their career. Therefore, hiring students allows a company to secure talent far in advance of their graduation, as interns are more likely to rejoin the team than other new talent is to join.
Increased access to talent
It’s no secret that once a talented software developer graduates, a bidding war commences on who gets to make use of their services; a startup is not likely to win this battle. By hiring students for work placements well in advance of their graduation, when there is much less competition surrounding them, you can build connections with more of the talented students that would be difficult to entice later on.
Hiring students also builds your reputation as an employer when the time comes to start hiring permanent talent. With student positions having such a high turnover rate, past student employees spreading a positive message about you to their peers can act as a continuous recruiting tool in the future.
Cons of hiring students
Inexperience brings risk to quality
It goes without saying that students won’t have the polished skills of an experienced software engineer. A major risk of hiring students for software development is that they will produce inadequate code that will just need to be completely rewritten later. This risk can obviously be mitigated by properly vetting your candidates, much like the process of hiring a freelancer, but there is still a chance that a qualified candidate misses the mark on what is expected of them. Software development has a much longer learning curve and requires more practice than other non-technical work placements. Because of this, there’s the chance that a student’s work term will end by the time they are really in the swing of things.
With regards to writing buggy code, the issue can be extremely costly for your company with regards to both money and time. If a student’s placement ends and they leave you flawed software, it costs a lot to get it fixed redone after they are gone. Even if it was well-done, no one will be able to interpret the code if their work wasn’t done properly.
In general, students should not be trusted to lead development on a software product without a more senior developer overseeing their project. Without the feedback and guidance of an experienced leader, a student could steer development right into a money pit that keeps getting bigger.
They require heavy involvement
Students in software developer internship positions cannot simply be regarded as free labour. Running this kind of program requires frequent attention and involvement from those running the startup. This includes providing students with adequate resources to their job, a mentor to help them learn, and detailed instructions to inform them of their duties. Without any of these, the placement will not be successful for anyone involved. Even if the student workers are unpaid, be prepared to spend time and money to make their placement an educational and positive experience.
Although it is true that hiring students can increase your odds of hiring them when they graduate, many startups don’t have time to wait months to hire employees. Whether they are working under the cyclical structure of a co-op or the impermanence of an internship, student work placements aren’t very well-suited for growing businesses that need committed employees immediately. And even though student work placements can often lead to long-term employment, there is a chance that the short work placement leaves them with very little to show for it. Constant student turnover at a startup is costly when you need everyone to become familiarized with your technology quickly.
When should you consider a software developer internship?
You have the proper resources in place
Hiring students is most likely to be a successful tactic at companies that have resources and established senior developers to recruit, train, and manage them. Without having a technical leader on your team, there’s no way for the student to be mentored in their craft. Established engineers should be easily accessible to the students and willing to provide them with feedback. Though large companies are more likely to have these experienced teams in place, even a startup can supply interns with mentors to steer them away from failure. Students are also more suitable to a company with established practices and processes in place to efficiently onboard and manage them.
You have a project suitable for a student
Although there are many simple tasks around the office that companies would love to have done for cheap, they should only hire a student when they have a larger project in mind that would suitable to an inexperienced worker. Of course, the student can still complete the simpler day-to-day tasks alongside that project, but there should be a main goal/deliverable to work towards to keep the student motivated and engaged. This project also does not need to be so significant that a student is developing one of the company’s core competencies alone. As a rule, projects should be arranged under the supervision of a senior developer and not be so significant that it would be detrimental to the company if it were to be done poorly. For example, a student should probably not be responsible for developing the business’ minimum viable product (MVP) alone, but they could be assigned a portion of your software’s user interface.
You are interested in investing in developing talent
For many companies, mentoring young developers is of great interest to them for a variety of reasons. They may want to increase their reputation as an employer or increase the likelihood that young developers will join them after graduation. Companies with new methods or technologies may just want to familiarize developers with their way of doing things early on in their professional careers. Whatever the reason, hiring students comes with a cost but can pay dividends when you’ve developed employees that fit well into your team and stay with you for a long time.
When NOT to hire students
This may go without saying, but a company with inconsistent leadership, resources, or practices should not hire students. Though dynamic situations can be a challenge that builds their adaptability, students will not benefit if they show up to the office one day and have no one to turn to for guidance. When their work is unsupervised or inadequately trained, it will probably need to be redone once they leave, which is a big waste of time and money. Business owners that are short on time and just want to hire interns to cut costs need not do so. Hiring interns and managing them effectively, as stated earlier, requires a large time commitment and should be brought in with that in mind.
Disclaimer: It definitely is possible that you find that “unicorn” of a student that already has the experience necessary to lead a project without mentorship; perhaps they’ve picked up the skills through self-study, clubs, or starting their own company. However, it’s a big risk to rely heavily on any student for programming your software.
Altitude Accelerator Case Study: Chris Houston from SurfEasy
Chris Houston was the CEO and founder of SurfEasy, a VPN service focused on security at large companies, which has since been acquired twice. Houston now acts as the VP of mobile product development at Symantec, SurfEasy’s latest acquirer. Especially in the early days of SurfEasy’s development, Houston benefitted greatly from using student co-ops as a pipeline for up-and-coming talent.
Many of his current developers started off as co-op students, including one of their leading cyber security developers. Houston does admit that it can be difficult to get developers up to speed and working productively during a co-op term, seeing as they often last three to five months. Because of this, most co-op students end up working in quality assurance. Longer work terms for developers, around one year, are Houston’s preference for temporary developers if possible.
Summary: Whether you should hire for a software developer internship
- Students generally bring an unmatched enthusiasm for the job, though their inexperience leads to the risk of poor-quality work
- Hiring students allows you to develop future long-term employees from within, though they require heavy involvement and time commitment
- Hiring students provides unique access to young talent, but that talent is often only available on inconvenient terms
Finding the right students for a software developer internship
Key Takeaway: Be early, be open, and be everywhere when recruiting students for a work placement. The best way to meet them is through nearby schools and the most important traits to assess are their qualifications and goals.
Not only is managing students a large time commitment, but finding them can be a tedious task as well. Much like hiring any other employee, hiring students requires a deep search and detailed assessment of the candidates. Searching for or assessing students too hastily will likely lead to very unsuccessful student work placements. This section outlines where to find students and what to look for when assessing them.
Where to find students for a software developer internship
The main rule: be early, be open, and be everywhere
The most motivated students start looking for work placements as early as eight months to a year before they are slated to start. By beginning your search ahead of time right you will get exposure to a larger pool of talent when other companies may not have begun their search yet.
Many students, rather than scrolling through job boards, prefer to directly approach companies they are interested in for a position. These students will usually be the most passionate candidates because they already have an interest in what your business does. Because of this, you need to clearly express that your business is open to student work placements. This can be stated right on your company’s webpage, on your job board, or in your office; put it wherever interested candidates are going to see it.
Companies that are lesser-known by the public, like a startup, are unlikely to have a lot of candidates seeking them out directly. For any business interested in offering a student work placement, the most important part of the search is gaining as much exposure as possible. If your company is not well-known for developing technology, this is especially significant for gaining the attention of software developers. The best way to do this is by spreading word of the opportunity to as many places as possible; most of your focus should obviously be where the students or developers would be searching.
Get into schools
Schools serve as the main source of students for work placements, obviously. Having a presence on campus is the best way to not only generate interest in the job but spread interest in your business. When offering a software developer internship, students in computer science or software engineering should be targeted. Students can be accessed through both online and in-person platforms at their school.
Most career services websites will have a job board where jobs are easily filtered and frequently searched by students. Posting a job there is the best way to reach the students at schools near you. Most schools also offer information about their internship, co-op, capstone project, or field study courses/programs online; by contacting those in charge of programs related to software development, you can have them offer up your work opportunity to students.
There are also many opportunities to build awareness of the opportunity in person. Find out when schools near you are holding a career fair; students you meet there could be interested in either course-based placements or entry-level jobs. Schools often hold events throughout the year that provide an opportunity for you to network with students. For example, engineering alumni network events or hackathons are a great place to meet young software engineers.
Lastly, companies wishing to gain more global exposure can take part in international internship programs. Some countries require students to do an international work placement as part of their degree; participating companies can bring a very unique perspective to their office. International students with a study permit in Canada can work for up to 20 hours per week while in class or full-time during scheduled breaks, according to the Government of Canada. This kinds of placement obviously comes with its own challenges.
Finding candidates for your software developer internship opportunity online can begin just like any other job opening. Online job boards like Indeed, ZipRecruiter, or LinkedIn are all frequented by students looking for an exciting opportunity to jumpstart their career. If you have a large social media following, you can take advantage of that by posting your job opening in hopes that it will be shared with the right people. Lastly, several websites exist solely for students to find internships in their industry. Although these sites are less frequently used by students, it’s still worth it to post your opportunity on there, especially since most of Google’s finest “How to find an internship articles” link to them. Some of the more popular internship sites include HireOwl, Idealist, Career Edge (Canada only), and Chegg Internships (US only).
The Altitude Accelerator can help you find students and other employees through their job board, social media, and network promotion.
Go to developers
Outside of schools, going where software developers are is the next best way to find candidates for your student work opportunity. Since you likely need students in your community to work for you, going to tech events in your community is a great start. Attending these events can not only help you find an intern, but get recommendations from others who have hired interns and build your company’s reputation in the industry.
Events can range from local meetups, where people interested in technology socialize in a casual setting; to huge conferences, where industry leaders can network and showcase the latest innovations. Either way, events are especially advantageous when they pertain specifically to the industry your business is in. While local meetups come with a lower price tag, they definitely don’t have the motivated talent that a conference would have.
Meetup.com and HackerNest are two great websites for finding tech events in your area.
Many high-quality candidates could also be hidden with your network or the network of those working at your business. The constant turnover involved in hiring students can be advantageous in building connections to other potential candidates in the future. If you give students a positive experience at your company, that helps build up the reputation of your business as an employer to all of their software development friends.
Make sure to utilize the network of everyone at your business, possibly by having all your employees post the job opening on a platform like LinkedIn. This ensures news of the opportunity will be spread to professionals from a variety of diverse backgrounds.
What to look for in students for a software developer internship
First and foremost, the most integral aspect of a candidate’s application to assess is their qualifications. Though they likely lack real-world job experience at this point in their career, there are other qualifications you can look for to make up for it. Their major at school has a large effect on their knowledge of the skills required, so developers should probably be studying computer science or software engineering. For those in high school, see if they have taken classes or any courses online about the topic.
Having experience outside of the classroom is also important, though. Previous work developing software for a business would obviously be ideal, but be sure to look for any work experience that may have transferable skills including communication, documentation, or organization. Being knowledgeable of the required technical skills is required as well, so be sure to have a detailed understanding of what skills are required to succeed in the placement.
You need technical leadership on your team that is able to identify and assess the technical skills required for the position. Whether that’s you or someone else, you’re doomed from the start if the student you hire doesn’t know the right coding language. If students have a portfolio, that is a great way to assess whether their previous experience will apply to your project. You can also give finalists a small task ahead of time to see whose coding skills are most polished.
Goals and interests
When a work placement aligns with the student’s goals and interests it benefits both your business and the student. Having a work placement that provides a student with experiences that will develop them into a more successful professional in their ideal career path is greatly motivating. With that motivation, along with having an interest in the work being done, the student will perform better and bring more value to your business.
As much as you hope for the placement to help your business in the future, the main priority for these positions is to help grow the student’s career potential. Make sure that the student you hire is able to get something useful out of the placement, whether that is new skills or valuable connections.
Keeping the students’ interests in mind is key as well. If you want to be developing future employees through the work placement, you should be looking for students that have a huge interest in your business. That interest will hopefully keep them on board long after graduating. Hiring a student deeply involved in the software development community will not only bring more experience to your team, but will give your company extra exposure to other developers.
The right fit
Some companies place great importance in hiring people that fit the company culture, or just finding people that can get along with existing team members. When working on such a short term, you don’t want an undesirable personality to come in and disrupt the team’s dynamic. For example, some employers just want a student that won’t talk their ear off all day. Everyone has different traits they look for in the ideal employee for their company.
Student work placements can be used as a way to gauge whether a student would fit as a long-term employee after school; however, companies often struggle to gauge whether there’s even a fit for the initial work placement. It is important to get to know the student, just like any other employee, before you hire them. This could be through a video interview or meeting for coffee, but you need to know in advance whether the placement would be the right fit to provide a positive learning experience.
Summary: Finding the right student for your software developer internship
- Be early, be open, and be everywhere when recruiting students
- Schools provide platforms for recruiting students both in person and online
- Students can find you through social media, job boards, and internship sites
- In addition to students, go to developers to get help on your search
- Utilize your personal network, referrals from your connections, and connections formed through the Altitude Accelerator’s network
- Students should have the correct qualifications, have goals and interests aligned with the project, and be the right fit for you personally
Strategies for optimizing a student work placement
Key Takeaway: More talent can be attracted by making the opportunity more enticing, but a project can only be its best when it is described to the student in detail and they are given a large amount of support throughout the process.
There’s more to running a student work placement program than just finding and hiring the students. At that point, the work has just begun. Employing students is a very involved process that requires the investment of time and resources into their growth. Below are some common strategies for optimizing the value created by a student work placement.
Making the opportunity enticing for top talent
Although you will surely have no shortage of applicants if you spread your opportunity around as outlined above, it is still important to make sure that top students will want to choose your opportunity over others when they see it. When students are looking for a work placement, the two things they will look for are career advancement and enjoyment. Yes, growth opportunities are the main priority, but students can definitely be swayed by a project that seems more gratifying.
Therefore, you want to make it clear in job postings exactly what students will gain from the placement. That could be a set of skills, an increased reputation, or new connections in the industry. The application may not seem worth anyone’s while if the job seems like mindless work at a faltering business. Talk about who they’ll be working with, what it’s like to work at the business, and what kind of tasks they’ll be working on.
You will also want candidates to be aware of some positive outcomes from the project. Make it clear what kind of deliverables they will be able to boast about at the end of it. Don’t forget about rewards or references you are willing to give out, or even the career trajectory of previous interns.
To show that the project will be enjoyable, you can pique a student’s interest by showing how their project fits into the grand scheme of your business. They also may be enticed by working with others their age, having fun team outings, or unexpected growth opportunities that may arise. Just be honest about why your company is such a great place to work.
As previously discussed, students in a work placement tend to perform several day-to-day tasks while also working on a large ongoing project. The large project motivates students by giving them a rewarding outcome to boast about at the end of their placement. The smaller tasks can come in many forms; they range from tasks that expose them to other departments to tasks that senior developers simply don’t have time to do. Though these menial tasks are usually part of the internship experience, the larger thought-provoking task is where most of their learning comes from; be sure not to pull them away from it too frequently.
Giving the student exposure to other departments of the company should definitely be a consideration if you plan on developing them to be with your company long-term. Letting them perform small tasks in areas outside of their main task like project management, sales, marketing, or communication can help develop students into more well-rounded professionals. However, students need to have one supervisor that acts as a “gatekeeper” to ensure they aren’t being overworked by several departments.
Onboarding & offboarding
When adding a software developer intern to the team, having a well-planned, standardized onboarding protocol makes the whole process of working with students more efficient. With students coming in and out so quickly, impulsively trying to get them all acclimated without a plan can waste a lot of your time. If you plan to hire multiple students, try having groups of them start at the same time so they can be trained simultaneously.
When a project is complete, feedback is the backbone of offboarding. Since their work placement is meant to be a learning experience, the most important lesson of all is what they did well and how they can improve for their next job. Try to give feedback that is as detailed as possible, with examples, so that students can really grow after the job.
If you plan on developing students into long-term employees, offboarding after their work placement is a huge part of maintaining contact until they are ready to work again. Make sure not to leave on a bad note, which can come from feedback that is too harsh, as that could eliminate most of the positives that come from hiring students. Also, try to get feedback on the way you and the company run a work placement; if things didn’t work out ideally this time, you will want to improve your methods for the next student. Lastly make sure to keep in contact, whether that includes updates on future employment opportunities or not.
Altitude Accelerator Case Study: Steve McBride from Weever Apps
Steve McBride is the CEO and cofounder of Weever Apps, a service providing cloud-based software products that increase productivity and profit for corporate customers. Located in Hamilton, Weever Apps hires two high school students and one college student each semester for co-op placements. Their duties usually revolve around simple data entry jobs or quality assurance. McBride says that they have an effective onboarding and training process that is able to “get students up and running and productive within the first day or two.” Having a standard onboarding process in place helps them avoid wasting time and resources on unproductive students.
Management & communication
Much like hiring a contract worker, the instructions and requirements for the student’s project need to be defined in great detail. This is a key component of communicating with a software developer. Although a student’s supervisor will be in frequent communication with them, it is still integral that expectations for their project is laid out ahead of time so they always have something to be working on. It also helps to illustrate how their project fits in to the grand scheme of the complete product or business; this helps motivate developers and gives them a better feel of the function their software needs to perform.
Much like onboarding, having consistent practices and protocols in place greatly increase student worker efficiency; being sure of how things are done at the business lets them focus on performing the task rather than worrying about protocol details. For example, a rigorous, consistent code review process allows students to gain some independence without writing code that other engineers won’t be able to use in the future.
As you know by now, students require a lot of leadership and guidance in order to grow their skills while creating value for your startup. They should work in direct communication with a technical leader that can delegate tasks, give them frequent feedback, and teach them new skills. If the intern is just left to figure everything out on their own, it’s the employer’s fault when things go wrong. Mentors need to find a balanced relationship with their students with regards to providing frequent feedback but also letting them gain some independence.
Lastly, you should use a student’s enthusiasm and motivation to your advantage. They will always be coming to you for a new task, so make sure there is actual work for them to do; you don’t want to waste cheap labour if you have it! Treat every task as a new learning experience, especially on menial tasks that require some extra motivation. Most importantly, let students use their fresh perspective to provide input on their project; you can even let them sit in on decision-making meetings.
Summary: Strategies for optimizing a software developer internship
- Entice top talent by showing that the placement has something to offer in the ways of development and enjoyment
- Give them a long project for when they aren’t working on smaller menial tasks and try giving them some exposure to other departments
- Have a consistent onboarding process, make feedback and continued contact the priorities when offboarding
- Have detailed instructions for their work and balance frequent feedback with independence
Compensating and funding a software developer internship
Key Takeaway: Student work placement compensation can range anywhere from unpaid to that of a regular employee, government funding can help make hiring students even more affordable.
How are student developers usually compensated?
Student work placements can be paid like regular professionals or not paid at all. Paid positions usually fall around minimum wage but can be however much the company wants to entice top talent. Pay usually depends on how valuable the position’s work will be. Course-based work placements, like a capstone project, field study course, or internship course, tend to be unpaid; full-time internships not associated with a course and co-op placements tend to be paid. According to The Canadian Intern Association, internships can legally be unpaid when they are associated with a school, provide training for a certain profession, or the intern is considered a trainee.
Payment for students is usually hourly and isn’t too far above minimum wage, depending on how competitive you want your opportunity to be. Their wages are often determined solely by the amount of funding available to pay them. In Canada, entry-level software developers make between CAD $26,000 and $79,000 annually (average of $51,5014) according to indeed.ca.
Some funding options
While hiring students can already cut costs because of their wages, these costs can be cut even more when receiving funding for offering the work placement. If hiring students interests you, it would be worthwhile to research the funding opportunities available to you in your area. In Canada, keep in mind that co-op placements count as a write-off when filing taxes.
Below are some sources of funding for hiring students in Canada. Note these programs tend to change frequently, and aren’t always active. It takes some research to determine which programs are active and available at any given time.
Connect Canada Internships
Connect Canada supports the hiring of interns, specifically graduate students, to Canadian companies in a variety of research fields for a 4-6 month project. Interns are paid $5,000 by your business along with $5,000 from Connect Canada. The grant is applicable to any private-sector company that makes their revenue by selling a product or service.
Canada Summer Jobs
A program run by The Government of Canada, Canada Summer Jobs’ purpose is to help young people between the ages of 15-30 gain skills and work experience to enter the labour market. Private and Public employers can receive hiring grants up to 50% of the employee minimum hourly rate while non-profits can receive up to 100% of minimum wage. Positions need to be full-time and span for 6-16 weeks.
IRAP Youth Employment Program (YEP)
The National Research Council of Canada Industrial Research Assistance Program (NRC IRAP) runs this program that helps small and medium-sized Canadian businesses increase their innovation capacity by funding hiring. Businesses can apply for funding for up to 2 recent graduates, each for a 6-12 month work term. The wage subsidy is up to $20,000 per employee in Ontario and as much as $30,000 in some other provinces.
Mitacs Accelerate Program
This program aims to build a bridge between academic institutions and businesses by offering funding for hiring student talent. Students work with the business and a supervising professor to propose a research project to be conducted at the business during an internship that starts at four months; undergraduate students can participate in up to two four-month internships while master’s students can do up to four and PhD students can do up to eight. Four each four-month term, a project receives $15,000 in funding from Mitacs, supplemented by a $7,500 contribution from your business.
OCE TalentEdge Program
The TalentEdge program is run by Ontario Centres of Excellence (OCE) on behalf of the Government of Ontario and represents a $17-million investment. It allows student interns and fellows to apply their knowledge to industry problems during a project-based R&D placement. The program is geared toward soon-to-graduate undergraduates, current graduate students, or recent PhD or master’s degree graduates from all disciplines. For interns, funding includes $10,000 per four-month term from OCE, matched by $10,000 from your business.
Altitude Accelerator Case Study: Rohan Mahimker from Prodigy
Rohan Mahimker is cofounder and co-CEO of Prodigy, an online game that teaches young students curriculum-aligned math skills. Being bootstrapped until recently, Prodigy needed to find a way to hire talented developers without breaking their budget. They did this at their onset by collecting grants from the federal government and Brock University for hiring students from their computer science program. One of those students was a master’s degree student that specialized in artificial intelligence; they later went on to join the Prodigy team full-time. Startups are encouraged to reach out to colleges and universities in their community to explore the funding or wage subsidy opportunities available.
Summary: Compensating and funding a software developer intern
- Course-based work placements are generally unpaid while co-ops or non-course internships are generally paid
- Pay ranges anywhere from minimum to wage to that of a regular employee depending on the position
- Government funding is available to help make student work placements more affordable for employers
- Co-op placement tax write-offs are available to employers
- Student work placements are meant to provide mentorship to engineering students as they complete a deliverable project that showcases their knowledge and skills in software development
- You should hire students for a work placement when you have the required resources and mentors in place, there is a project suitable for a student, or you have interest in developing young talent
- Be early, be open, and be everywhere when recruiting students for a work placement; the best way to meet them is through nearby schools and the most important traits to assess are their qualifications and goals
- More talent can be attracted by making the opportunity more enticing, but a project can only be its best when it is described to the student in detail and they are given a large amount of support throughout the process