Andrew worked for XYZ Reality as a Senior Software Engineer from 2022-2024.
Tech Summary
- Unity
- C#
- REST Cloud Interfacing
- JSON
- NUnit
- WebGL
- Microsoft Native WiFi and “ManagedNativeWiFi”
- Augmented Reality
- C++
- UML
Roles and Responsibilities
XYZ Reality are a young and ambitious construction tech company. Their augmented reality hardhat, the ATOM, along with its suite of software tools are disrupting and transforming the construction industry.
Andrew was lead software developer on their CAD/BIM 3D Model Viewer – a unity-based desktop 3D application. Andrew was initially sole developer on this project and so was responsible for all aspects of the software, from managing and planning sprints, to designing and implementing new features, to creating software releases. In addition to hands-on software development, the role required a great deal of management, liaising between various teams such as QA, tech support, product design, field engineers, management, HR, and of course the wider software teams.
Andrew was initially required to refactor and overhaul an existing piece of legacy software – The “HoloViewer”, or just “Model Viewer” as it was often called. In addition to this, new requirements were being rapidly generated by the product design team and so I was responsible for managing these in terms of their planning, design, implementation, and deployment.
During Andrew’s time at XYZ Reality, he also worked on their flagship AR hardhat software, completely reworking its WiFi connectivity and WiFi user interfaces. In addition to this, he performed an evaluation of Unity’s WebGL capabilities and developed a prototype 3D Model Viewer to visualise XYZ Reality’s proprietary 3D model format.
Andrew’s role on the HoloViewer project required a significant amount of management not only of technology, tasks and data, but also of people.
As the project progressed and grew, more resources were required. Andrew became responsible for leading the technical aspects of recruiting new team members onto the HoloViewer project. After many CVs and several interviews, Andrew had two new team members whom he became responsible for.
In addition to managing their project workload and tasks, Andrew also performed the role of line manager for the two team members. Andrew was responsible for ensuring they settled into the company as well as the project, that any concerns and problems they had were passed on and dealt with by the relevant person or team, and that their probation period, training, and eventual career development path was properly managed and overseen.
As lead developer for HoloViewer, Andrew took on responsibility for the managing the project’s Scrum cycle. At this time, there was no dedicated product owner, and so Andrew partially performed this role too. Therefore, Andrew looked after the product backlog as well as organising and leading the sprint reviews, retrospectives, planning, and daily stand-ups. He was also responsible for planning and producing software releases, ensuring they progress successfully through the software release process.
With respect to all these responsibilities, Andrew was given quite a lot of autonomy by the then VP of software. He trusted Andrew and let him get on with things in his own way knowing he would plan and accomplish tasks in a way the VP would be happy with and in a way that would have the interests of the company in mind, and knowing Andrew would approach him when appropriate and/or necessary.
As a more senior member of the software team, in addition to general code reviews, pull request reviews and document reviews, Andrew was also involved in helping to define, document, and disseminate software development processes and procedures, as well as helping provide assistance, advice, leadership, and mentorship to the less experienced software developers.