This summer, four software technology and engineering students completed internships at an ambitious Sydney startup, moneyball.com.au. The students developed vital professional skills in an environment that is impossible to replicate outside industry, while representing Macquarie’s programs and technologies to a new audience – and two were subsequently offered roles at the company.
What is Moneyball?
moneyball.com.au is a daily fantasy sports website in the style of Draft Kings and FanDuel. Thus the detection of fraud and money laundering is an important part of their business. The project involved the student interns creating a fraud detection domain specific language (Moneyball is built using Scala, Play, Akka and Amazon Web Services).
Why involve COMP332 students?
Software development is an experimental craft; very little of what a software developer is doing has ever been done before. Creating a startup is also an experimental craft with many opportunities to experiment – minimising the risk from these experiments is valuable.
The advantages for Moneyball of involving COMP332 students are that they:
- 332 students have learned how to build domain specific languages (this is a fairly rare and now quite valuable skill),
- 332 students are proficient Scala programmers (getting less rare, but still hard to find).
- Moneyball gets an introduction to advanced language processing tool Kiama. If it works for them they can keep using it, if not there is no harm in the experiment.
COMP332 – Programming Languages is a wonderful example of Australian universities contributing to innovation in Australian industry, while at the same time teaching fundamental concepts in computing and in-demand technical skills. There is a deep vein of theoretical work underlying all computer programming and the consequences of this work is used by programmers all over the world every day. The latest advances in software development are born from this underlying vein. COMP332 introduces students to this underlying theory, equipping them to understand the past, present, and future of their craft. This is combined with an education in cutting-edge programming technologies, in this case Scala. This in-demand skill has seen industry specifically target COMP332 students for employment. Already this is an achievement – to fit so much into a one-session course – but COMP332 does even more because the academics responsible for it have distilled the concepts from the unit into a tool for industry use that has seen significant adoption.
How students benefit
“I found the experience over the past month helped me gain some confidence in the things I was doing right, and aided in realising where I need to rethink my approaches.” – Andy, student
For students, the benefits of an internship are clear:
- industry connections
- industry experience
- breaking the “experience required” paradox
Macquarie has made professional engagement an important part of its undergraduate programs for these and many other reasons. However, internships have risks as well. We have reduced these risks in an interesting way. Computing internships are unique because the research done in computing is so important to industry practice that there is already an unusually strong link between researchers and practitioners. This means academics can be fruitfully involved in the internship as a team member, allowing a level of oversight not often achievable.
Software development internships at Macquarie are joint work involving a group of students (in this case four), at least one academic, and an external company. The students work together as a group throughout the process but are only on-site with the industry partner for part of the working week. The rest of the time they use startup-like facilities at the Universities for doing their work. The associated academic is a member of the team, involved in the work being done and providing guidance to the student group on technical as well as academic matters. For example, in the Moneyball project, the associated academic was responsible for code-reviews and software architecture while the students were responsible for development and testing.
Conditions for success
“This would be an amazing chance for any student to gain real-world experiences…all students should be encouraged to participate in opportunities like this before they finish university as a great stepping stone. This is because of the fact that such a great software engineering lecturer…was also available physically on-site to guide and advise us during the internship program.” – Heng, student
The close involvement of the academic is expensive – it takes a significant amount of time – but it is good value because:
- the level of oversight provided by this model makes exploitation and other internship risks far less likely,
- the academic is working on an industry problem.
Some conditions are necessary for an internship like this to work.
- Academics must have industry-relevant skills.
- Students must be advanced along an industry relevant path of learning. COMP332 (as the pointy-end of the software technology program) provides exactly this.
- The industry problem must have a research component. If not, the value equation becomes biased against academic involvement. In the Moneyball project, the problem does have a research component. Fraud detection itself if not a solved problem, working on a “firehose” stream of data is an open problem in data analytics (big data), and the design and deployment of domain specific languages is an active research area in programming languages.
- The industry partner must have the resources to work relatively closely with the interns. It is not an onerous requirement though since the close involvement of the academic takes a significant load off the industry partner and the available of startup-like facilities at the University greatly reduces the burden on the industry partner’s infrastructure.
For industry partners there are particular benefits as well. The usual benefits for recruitment and workload are combined with access to a useful academic. I claim Australian academics are not sequestered in ivory towers but have much to offer industry. An internship program like this one is a low-risk opportunity for industry partners to test this claim and to get access to skills and knowledge that are rare in industry.
“The students impressed with their interest in an arguably complex business domain. The application of their Scala skills to the fraud detection domain demonstrated an outstanding ability to bridge academic and commercial worlds. MQU impressed by their speedy setup and accommodating handling of the internships and related administrativa.” – Stefan Schmidt, CTO Moneyball
Overall the Moneyball project was a great success and we are hoping to extend the program further. Of the two jobs available at the company and both went to Macquarie students. Moneyball will continue with the program next session. As the attached academic, it was also a worthwhile process for me. My research is now more closely aligned with industry needs. Most importantly for me though, the product of the project will be put to use at Moneyball, i.e. Macquarie students have demonstrated that they have the skills and knowledge to contribute to the Australian software development.