After ~2 months of ignoring blog posts, I’ve finally gotten around to making myself write few things down. This will not be as in-depth/super reflective post as I’d like it to be, but then again I am trying to condense 2 month of work into a single post.

General

Personal projects

Started slowly working through several Android app development exercises. However, seeing as there’s a new means of creating an Android app each time you blink, I’ve decided to go through all these exercises with Java, Kotlin and eventually Dart. Haven’t made much progress yet, but if I do, it should help deepen my understanding of app development and how different tools affect the development process (and results?). Project repo can be found here.

The game I was working on has come to a halt. Not sure whether I’ll pick it back up any time soon. This primarily stems from difficulty of utilising simple software design patterns I’d like to utilise. Either way once I have more time to finalise actual scope of the project and figure out some of the user centric mechanics, I may pick the project back up.

One of the things I had on my to-do list for the placement year, was to pick up basics of LaTeX. Slowly, but surely I got there and managed to produce few documents using Texmaker. There is a ton of things I’ve yet to learn, but with further casual use I should be able to competently have another document preparation tool under my belt.

Additionally, I started to slowly update and modify my portfolio website. I finally set up a local Jekyll instance so that I no longer have to wait for GitHub Pages to re-build the website whenever I want to change something. I have also come full circle in terms of my Liquid understanding. I used Liquid within the portfolio website prior to my placement, but as I never dug into it I did not fully understood how it worked. But this basic understanding led me to quickly pick up ASP.NETs Razor. After using Razor for several months, Liquid comes relatively naturally to me now.

EDT / Uni

After getting through half of my placement I finally started signing up to, and attending EDT (Engineering Development Trust) classes. I have already attended a class on project management, unfortunately it was an introductory class and I didn’t learn anything I didn’t already know. On the bright side I got a chance to socialise with peers who are also on engineering placements. To ensure I make the most of the opportunities the trust provides I signed up for additional classes; intellectual property and leadership & management.

Additionally, I had a quick catch up with one University’s lecturers and got a minor hint towards when I’ll be able to pick final year modules and pick dissertation supervisor/project. Luckily, I already have a pretty solid grasp on the modules I will be picking, but I do not have a particular project in mind for my dissertation yet…

Work - General

Some changes happened with the development team staff; software tester has left, and a contractor has joined for several months to work with legacy VB codebase.

Most people from the development team went on a week long, advanced C++ course which meant a quiet office for a while, but rather boring as there was just one other person to talk to for the whole week. Having said that, Development team pool tournament has started around the C++ course which meant I could get some practice before league matches. Unfortunately, my pool skills are highly variable and I either play alright, or AMAZING (jk, I lost all games 2-nil so far…).

Work - Project specific

Not long after previous blog I began working on the front-end half of the project, which turned out to be more tedious than I anticipated. The overall tempo of development slowed down and I didn’t care much for the project.

One of the things that sparked my interest back up was attempt at figuring out how to retrieve specific values which would form a part of presentation logic within the front-end. The direct approach which I originally assumed - did not work and the values turned out to be dynamic and based on conditional formatting rules. Unfortunately the interop library does not provide means of evaluating these rules, nor any documentation on the functionality was anywhere to be found. Therefore to get this necessary piece of data I had to write my own evaluation logic after doing some reverse engineering and extensive unit testing.

An issue which seemed to be a potentially huge roadblock in the morning was solved and operational by the end of the day. This challenge and overcoming it really got me excited about potential challenges within the front end development that I haven’t anticipated.

As I proceeded writing unit tests to achieve full coverage of the methods used to evaluate the logic I found that a subset of values were not being evaluated correctly. This realization lead me down a week long rabbit hole of writing an implementation that covers all the necessary edge cases. In the end I managed to achieve level of reliability, and test coverage of the set of functions performing these evaluations.

With the conditional formatting rule evaluation out of the way I noticed that an object which was breaking one of the patterns in use, could now be cleaned up, which I cleaned up promptly! This meant that level of abstraction leakage was no longer a problem that needed fixing, and solution for solving this issue came from an unexpected place, which was a pleasant surprise, given a weak of back-and-forth with the evaluation logic correctness.

With the low level issues out of the way I started getting back into front-end development, and this time it was refreshing as I no longer had to deal with very low level abstractions.