It has been a year since I joined MetaBroadcast and it’s been a fun ride cracking complex problems, enjoying foodie fridays, having fun with the team, learning about new technologies and ways to challenge myself. I’m glad that I got the opportunity to work with amazing people here at MetaBroadcast, and I think this is the reason why the weeks are flying by so quickly.
When I joined for my industrial placement year required by the the University of Kent, I knew some things about the Java programming language thanks to BlueJ IDE used as part of my studies. However, I didn’t know what to expect as this was the first time I’m working as an engineer. Throughout the past year, I have learnt a lot about various modern technologies used for Atlas and Voila such as MongoDB, Cassandra, AWS tools, Puppet and many more.
planning & estimating work
It took me a while to understand that no one can be 100% sure about anything when it comes to software engineering. It’s easy to estimate work that is similar to something that you have already done before, however when it comes down to cracking complex problems for the first time, trees are more than helpful.
Planning the work using trees helps to keep track of all tasks as it’s easier for my brain to serialise the necessary work from point A to Z. At first, I was keeping my trees on a mountain of post-it notes as I thought this way would be easier. After desperately organising my notes so that I wouldn’t get lost in the development process, thanks to Chris and Mirona suggested that I keep practising trees on the whiteboard, my planning process has improved.
technologies & tools
At first, I didn’t know much about RESTful APIs, but that changed quickly upon my very first major software release back in February when we launched Voila Deer in production. Moreover, it has been fun using the Dropwizard framework for developing microservices for Voila and ingesters for Atlas, and thus writing good RESTful APIs has become my second nature. Furthermore, I have had an opportunity to make use of Cassandra and MongoDB as part of projects on which I have been working. In particular I have become a big fan of JSON and MongoDB!
I have been using IntelliJ’s IDE since I joined, and I totally love this tool as it allows saving precious time while doing repetitive tasks, generating methods, extracting methods, fields and constants from the existing code. During the year I also have found various useful tools and chrome extensions that I;m now using daily. These come in handy while working on various development tasks.
the development process
To get a good understanding of what needs to be developed, trees come in handy. However, communication skills play a significant role in how the development process goes, especially since here it’s called talking to each other. Clearly describing the problem can save hours of frustration when other team members could help but don’t understand the problem because the question wasn’t clear.
Thinking twice about the question that I will ask has helped me a lot. Using 15-minute rule when I’m blocked while trying to solve a complex issue, requires that I ask precise questions with steps that I have tried. This allows other team members to suggest possible solutions for the issues that I might have missed, without having to go through the same steps that I’ve already seen won’t solve the issue.
I feel that I have learnt a lot from this one year at MetaBroadcast, not only about new technologies but also how it is to be an engineer. As a placement student, I think that through hard work you can gain more knowledge. Especially if there is an opportunity to have a practical experience with cutting edge technologies. In my opinion, this is the best way how to learn something new as we are learning only when we don’t know something.
If you enjoyed the read, drop us a comment below or share the article, follow us on Twitter or subscribe to our #MetaBeers newsletter. Before you go, grab a PDF of the article, and let us know if it’s time we worked together.