When I was two years old, my father brought back home some computer parts and built our first home personal computer. The computer was installed with Windows 3.1 and eventually was upgraded to Windows 95. My father bought some interactive computer games like Putt Putt the purple car and Lode Runner for me to play. I was always fascinated by how software developers could create such amazing interactions with the computer and it was an early stage where I want to be able to create something like this. My family never came from a technical background. Both my mother and sister are artists and my father was a bank manager, he did have some interest in computers but not how it worked. It was not until grade 11 where I had my first programming experience with Visual Basic. After that, I wanted to continue to work on more of this and I joined the Software Systems program at Simon Fraser University.
By the time I was in Simon Fraser University, I was able to create some neat projects with many different APIs, programming languages and utilities. It was challenging because I have never worked with so many talented students that also have similar interests as me. At first, I felt let down because I was never really good with exams and work that requires a lot of memorization. On the first week, there was a presentation about Co-op and how you could gain work experience before graduation. The first thing I thought was, “I need to take this!” I went through Co-op application process like many other students and eventually I was able to apply to many different computer companies, including some I had never even heard of.
I like many students, always dreamed about working the big name companies like Microsoft, Apple and IBM etc. Job hunting was difficult for me because I had next to no experience with working in the industry. While I did get some projects with students in my university studies that provided good practice for preparing myself with software development, it was not enough. It was tough because most of my applications were either rejected or had no response. In the summer of 2011, one of the courses I took was Earth Science because I was interested in geology and one of my Co-op applications I handed in was to Gemcom Software, now Geovia which was a mining software company. At first I thought it was going to be the usual no response from the employer; the job description required a lot of tasks almost filling up 3 pages when I printed it out. To my surprise, I got a confirmation for an interview with them and got the job as a Software Developer.
My experience with Geovia was one of the most life changing experiences I have ever had. Being able to work with a team that had a diverse array of people from different cultures and knowledge was an experience I will never forget. Geovia works on software for miners and engineers for modelling and planning different components for the mining industry. This can range from Drillholes, Surfaces, Geological Solids, Grade shells and pit design. Many of these are essential for miners to get a clearer picture of what they could do before spending millions of dollars to drill out geological resources. The company had a diverse group of people working all from different cultures, backgrounds and languages and it was a very social environment. My role as a Software Developer involved programming, implementing new features, bug fixes, manual and unit testing, documentation and scripting. We followed an agile development approach and created many different functionalities and workflows that helped make planning for release much smoother.
There were many surprises and hardships that occurred in my workplace. My supervisor was moving to another company, there was a lack of organization and proper themed goals and there were some disagreements on the approach for our project. When it got bad my newest supervisor came in and helped reorganized these issues and got the entire team back on track. The biggest challenge for me came when my supervisor asked me to work on a technical project that I have never worked on before. I was given the opportunity to be the lead person in charge of building the software installer for our project. It was difficult, but I accepted the challenge and as a result I was able to gain a valuable experience in developing Windows Installers for our software. There was so much that can be done with the tools, but at the same time there was a lack of good documentation to learn from. However, I was able to complete this project as a usable product and finalize the documentation for this project. At the end of my Co-op term, my company now uses my project as a basis for future versions of the software that they create. I could not thank my team enough for giving me this experience and knowledge of the complexity that goes into software development and the exposure of the Windows API.
With my experience as a developer, I wanted to try something a little different. I noticed that sometimes when I developed a new feature, my QA co-workers will find some strange bug that occurs when I create a significant change. So I thought to myself, how can I be a better developer so that I can eradicate these issues? Not just for developing, but testing what I have done. So I applied for a QA position and to my surprise, Mintec another Mining Software Company offered me the position. As a QA, my job currently involves a significant amount of manual testing, writing tickets, documentation and some unit testing. At the same time, I had to be a bit more exposed to some of the mining concepts similar to my previous Co-op position. I was put into many different projects. One day I could be testing their biggest product, Minesight and a week later, I could be working on an unreleased product and a month later I would be testing a completely new tool. I also have another Co-op co-worker from the University of BC with whom I had the opportunity to help answer questions that she could not figure out. It was great to be able to teach and help out others when you have the experience in the industry. Currently, I am now the lead tester of one of the tools that my company is working on and I have control of what to test and what should be planned ahead before testing can begin.
As a student, the Co-op program has given me an amazing opportunity and experience to be exposed to the software industry before graduation. At the same time, there were a lot of surprises. I for one never expected to ever work with products for the mining industry. It exposed me to concepts and applications that I have never heard of and it was great to learn so many things all in a span of eight months. The internships really help you foster your skills and connections to the industry, while building the stepping ground for opportunities that lie ahead of you. As I continue my 4th Co-op term at Mintec, I would like to say, my Co-op experience has been one of the most life changing experiences I ever had and I highly recommend that any undergraduate student to join the Co-op program.
Beyond the Blog
Learn more about SFU's Computing Science Co-op program!