OpenText: January 2021 - August 2021

9 minute read

I was re-hired again to work as a Software Developer at OpenText from January - August 2021. I will explain OpenText as a company, my job description, and my goals for the semester. I was very happy to be accepted back at OpenText and integrated into another team of great people. Despite working at same company for five terms, OpenText was able to give me very different experiences each time and help me grow as a professional in the Computer Science world.

Information about the Employer

OpenText logo OpenText is one of the largest software companies in Canada. OpenText was founded in 1991 by University of Waterloo professors Tim Bray, Gaston Gonnet, and Frank Tompa. They created the company after building a search index for a school project. Since then, it has become a global industry leader in Enterprise Information Management. OpenText employs approximately 14,500 people at 95 office locations in 31 countries across six continents.

Despite its size, OpenText is often unknown to the general population because its customers are typically other businesses. You may or may not know of OpenText if your job uses one of their many products. Some products are meant to be used entirely in the backend, others in the front end. OpenText manages how data is transferred, analyzed, and stored in three aspects: between customers and businesses – between employees working at one physical location, and between employees working for the same company between many different locations. OpenText can be used by almost any business, some examples are grocery stores, law offices, file sharing companies, and pharmaceutical companies.

Content Server is over 20 years old. The software is used for uploading, managing, and sharing files. It creates workspaces for individual employees and for the entire company to access. The software was built primarily with OpenText’s internal language, OScript. It is fitted with internal tools for data analysis and workflow. Content Server has a powerful search engine, capable of searching through hundreds of millions of documents quickly. It is also integrated with external tools such as SAP and Microsoft 365. Content Server can be used in ClassicUI mode or SmartUI mode. SmartUI is the newer version, which relies on the classic technology with a more modern look. Content Server Smart UI mode

Job Description

For a third time, my terms at OpenText were spent working on Content Server. This time, I was on Team Mu, working directly on Content Server. We mostly used the Eclipse IDE for developing in the OpenText in-house language, OScript. We also used Visual Studio Code for work in JavaScript, CSS, and HTML.

I spent the first few weeks getting acquainted with the OScript development and build processes, as well as the company standards and workflow for Team Mu. Because I learned a lot about Content Server in my other terms, I was able to start developing within the first couple weeks. Oscript is an object-oriented programming language like Java. Picking it up was not too challenging because of my experience with Java. I also learned a lot from talking to my team members and helping with code reviews.

After I finished my training, I was able to get started with tickets. My first ticket was cleaning up a lot of old code and checking for potential issues based on warning messages. This was an excellent first ticket because I was able to work through each module and get to know the code that Team Mu was responsible for. Some highlights over the next few months were working on screen reader and tab accessibility tickets; adding new information to REST calls; and fixing how an object is modified by working through error messages from different layers of user services.

For my summer term, I took the first month to do training specific to Content Server’s new UI, SmartUI. I did an in-house training course on SmartUI, and three Udemy courses. The courses on Udemy were on Backbone.js, advanced JavaScript, and asynchronous JavaScript. These courses helped me get started on the SmartUI. The SmartUI implementation also uses Node.js, which I have used in many school and personal projects.

Udemy Logo

The first tickets I did were mostly styling related. I then worked on some tickets that were broken behaviour specific to Internet Explorer 11. It was good to work on tickets that were only applicable to one browser because I had to fix the problem without affecting the behaviour in other browsers. I then worked on some more complicated accessibility tickets. Finally, I worked on a new page for each file that displays Microsoft file information. This was by far the most holistic and complicated ticket to work on, as I needed to work on the frontend and the backend. I was able to get the basic structure of the page working for every file and occupy it with dummy information. I ran out of time to finish the ticket during my term, so I documented my changes and helped a different team member continue my work.

Winter Goals

  1. Creativity: I would like to apply skills learned through other languages to learning and coding in OScript.
    • Action Plan: To accomplish this, I will read the company documentation, look at my past personal or school projects, and ask for help when trying to implement new features.
    • Measure of Success: I will know that I am successful when I can start developing features using a combination of OScript-specific techniques and techniques I learned and adapted from other languages.
    • Reflection: This was a success. I felt very comfortable in OScript by the end of my time working with it. Most of the techniques I applied I learned while working with Java. I also picked up a lot from going through other team members’ code reviews, searching my workspace for similar objects, and asking for help.
  2. Technological Literacy: I would like to be able to pick up and start working on tickets quickly.
    • Action Plan: I will do this by taking general rules from specific instructions while learning, taking good notes, and staying organized.
    • Measure of Success: I will know that I am technologically literate when I have fast turnaround on tickets and do not have trouble getting started with issues.
    • Reflection: I was able to get started very quickly initially once I had my workspace set up. However, this was not true for all my tickets. I had trouble starting some of the later ones, especially when I needed to learn a new area like accessibility. This is a skill I need to continue working on. It can be difficult to start something new, so it is important to do as much as you can quickly before getting help.
  3. Teamwork: I would like to adapt to my new team and work well with everyone.
    • Action Plan: I will attend all meetings and give input whenever it makes sense to do so. I will pay attention to what other team members are working on and their roles within the Agile team so that I can ask questions if I need help.
    • Measure of Success: I will know that I am successful when I encounter an issue that halts my progress, ask the appropriate people for help, and they get me back on track.
    • Reflection: I did well with this. I was able to quickly get to know everyone and what they did. I was able to accomplish this by engaging in meetings, doing code reviews, and talking to people about my work. If I was working on a specific module, I usually knew who I could talk to about implementation details or potential blockers.

Summer Goals

  1. Information Literacy: I would like to be fully literate in the JavaScript libraries our team uses.
    • Action Plan: I am going to take advantage of our inhouse SmartUI training and three Udemy courses.
    • Measure of Success: I will know that I am successful when I have completed the training and have no problem applying the new knowledge to my tasks.
    • Reflection: I did well to gain knowledge from the in-house SmartUI training, the Backbone.js Udemy course, and the JavaScript Udemy courses. I was able to apply the knowledge well to my work on the SmartUI. It was difficult to apply the general knowledge from the Udemy courses to the specific implementation of Backbone.js within our system, but I was able to do it with help from the rest of the team.
  2. Depth & Breadth of Understanding: I would like to fully understand our SmartUI system and how it interacts with our OScript backend
    • Action Plan: I will pick up tickets that will help me connect different areas of the project. If I run into issues figuring something out, I will check with someone who understands that area.
    • Measure of Success: I will know that I am successful when I can pick up most tickets and find where the issue is or how to add the feature quickly without asking others for help.
    • Reflection: I did not end up doing too much connecting between the SmartUI and the Oscript backend. Most of the work was either work on the frontend or the backend, not too much in-between. I felt that I did a good job in figuring out which one I needed to look at for a ticket’s solution.
  3. Teamwork: I would like to be confident working with other team members to resolve issues quickly.
    • Action Plan: I will pay attention during our daily stand-ups to where each team member does most of their work. I will participate in doing code reviews for others so that I can better grasp each persons’ expertise. I will ask people for help when I need it and explain my work when people are interested.
    • Measure of Success: I will know that I am successful when I can problem solve with different members of the team based on what ticket either person is working on, by asking appropriate questions and giving good explanations.
    • Reflection: This went well. After eight months working on Team Mu, I understood peoples’ areas of expertise. Talking to people directly and following agile practices helped a lot for this, and code reviews were excellent for giving specific examples on what people were working on. By the end of my two terms, I was very comfortable reaching out to different team members for help or to offer advice when they were working on something I understood.

Conclusions

Thanks for taking the time to read this report! I enjoyed working directly on Content Server these past two terms as opposed to working on related applications. At my previous work terms, I learned to admit when you don’t know something and how to fit into a team with others. The main thing I learned over this work term is that starting can be the hardest part of any job. Sometimes, you might not know how to do something right away but can figure it out as you work at it. Then, if you need help, you understand the problem much deeper and can solve it faster with a peer. I had an excellent eight months at OpenText and would love to return in the future!

Man pushing boulder up hill, hard work

Acknowledgments

  • Eric and Steph Duncan for mentioning me to the R&D team in Winter 2019.
  • Matt Pinkney for the administrative, technical, and comedic help.
  • Lisa Guo for the mentorship during my first term.
  • The rest of Team Mu for the comradery and help with my work.
  • Co-ops and former co-ops for the fun group chat!
  • OpenText for having me for all five of my co-op terms.

Thank you all!