Interning at Oslo Market Solutions — A tale of java, react, waffles and a great experience.
Written by Fredrik Frostad and Anniken Syvertsen
This summer we were four IT and engineering students, that were lucky enough to get a summer-internship at Oslo Market Solutions. None of us had any job-experience from earlier on that was comparable to this, and it is safe to say that we were all looking forward to finally being able to practice what we had learned at school in a real-life project. How can you develop a web page with full functionality, from the bottom up, that is supposed to be used by stock traders and industry specialists? This, and much much more, we have learned throughout the summer in ways not even comparable to what you learn at universities. We have learned how to set up a project with databases and servers, how to communicate and cooperate in a team, what a developers day at work looks like and how little a bug can be to crash an entire webpage. This has been a summer packed with frustration, joy, sense of achievement and especially — a lot of fun! And throughout this article, we will try to convey what our days looked like.
The Interns
The Crew at OMS
We were met by 18 employees, ready to welcome us to this summer’s internship. OMS is a small/medium company with open plan office layout, a kickass italian coffee machine and accommodating employees, which makes it easy to become familiar with everyone, as well as having both a social and effective workday. The employees were really friendly and made us feel like we were a part of the crew. We soon learned that the office had a casual atmosphere where it was easy to work. Every day they served hot meals in the cafeteria, and if the sun was out chances were good that the lunch would be eaten outside at Langkaia, followed by an ice cream in the sun. And let’s not forget the peak of the week — waffle-friday!
OMS is concerned with having a warm and social environment, something we soon learned as interns. The first week we were invited to the yearly summer party, and throughout the summer we’ve been able to join everything from ping-pong and foosball to after-work beer at Salt. In short, OMS is an easy-to-like place.
The Onboarding
The entirety of our first week on the job was allocated to an in-depth onboarding process. Over five days, we were treated to a well planned and comprehensive program, giving us a great starting point for the project. This allowed us to quickly get up to speed on the technologies we were to use, workflow using git and agile software development. We were even treated to several lectures about the stock market. This made it apparent that the team at OMS had invested lots of resources in the project, and did all they could to help us succeed.
The Project
Our job during the summer has been to do a complete, ground-up redesign of one of OMS older products; Arena Top Shareholders. This is a web app providing market data for the top 50 shareholders in all instruments listed on the Oslo Stock Exchange. This means that we built something that is going to production after project completion, instead of some easily forgotten app for internal use. Very cool! (At the time of writing the project has entered demo phase and is being readied for production.)
Working at OMS:
For most of the project, we were working by scrum principles, doing one-week sprints, daily stand-ups, and retrospective/planning after each sprint. In the beginning, it was somewhat strange to be working this way, as none of us had much experience in doing things this way, but as our experience and confidence grew we quickly learned to appreciate the fact that organizing our work in this way is a great tool for keeping the project structured and on pace.
Thanks to the great onboarding during our first week, we were up and running writing code by the start of week two. The project got a flying start thanks to UX designer Gerrit Witteveen’s comprehensive wireframes for the application, allowing us to focus on implementation and not waste countless hours on design decisions. The product owner had also prepared a huge backlog of issues containing user stories for us to sink our teeth into. In addition to this, OMS had also set aside no less than three full-time employees to assist us whenever we were stuck on a problem. This proved to be an invaluable asset for finishing the project on time and made interning at OMS an extremely positive experience.
A normal day at the office for us usually starts somewhere between 07:00–10:00 depending on how late we were working the day before. The working hours at OMS are flexible, making it easy for everybody to combine work with their private schedule.
After a cup or three of freshly brewed coffee, we spent our mornings coding until our daily standup just before lunch. The standups where a great way to quickly catch up on what everyone else was doing, as well as working out any problems that might have arisen. Next, we had lunch (outdoors if the weather permitted it) in the excellent cafeteria, followed by some intense foosball or ping-pong matches before coding the afternoon away.
The Backend team
The backend team consisted of Ane Sofie and Fredrik. We quickly understood that we had a big task ahead of us to get a working backend up and running on time to enable the frontend devs to integrate against the endpoints we were to provide. Early in the projects, we used some pair programming techniques to ensure that we both got a good understanding of the backend architecture and frameworks we were to use. As we became more confident in our skills we started dividing the work between us, with Ane Sofie focusing more on database design and object relational mapping using among other things JPA, Querydsl and Guice Persist, while Fredrik mostly worked on program logic such as authentication, authorization and dependency injection using Google Guice and Apache Shiro. As soon as we had the core backend up and running, we both worked on creating RESTful APIs using Jersey JAX-RS.
The Frontend team
Anniken and Tore were the frontend-interns of the summer. Despite different levels of experience, pair-programming in the beginning, as well as good help and supervising from the employees at OMS did that we both quickly could work more or less independent and contribute to the development of the new ARENA-platform.
We worked on everything from Openshift(docker) to JavaScript and React, in addition to the frequent use of git and GitLab. We got familiar with React Hooks, React Context and using styled-components. After two intensive months of programming in React, we could both confirm that we were comfortable with the language and that we now know a bit of everything on how to use React to build a web page from scratch.
As summer-interns, we have had really good supervision and easily accessible help, and it was clear from the start that it was more than okay to ask employees and each other about tips and tricks as well as help. Not only do you learn from the mistakes you do at a job like this, but you also get frequent feedback on your code and how you can write it better. This has helped us achieve a good flow in the work progress, improved the way we write code and simply taught us a lot about the art of writing functional and accessible code. It has been a very educational summer, and we can all return to school this semester with valuable experience.
Wrapping up the project
After 10 weeks of working on the Arena redesign project, we got to demonstrate the fruit of our labors for everybody at OMS, and we even got some visitors from Centevo, VPS and Oslo Børs!
All in all, this has been a tremendous experience, we have gained invaluable experience and had a great time doing so. If anyone else gets the opportunity to apply for an internship at OMS we wholeheartedly recommend doing so. A big thanks to OMS for giving us this opportunity, we would do it again in a heartbeat!