Melbourne, Victoria, Australia
The problem solving aspect is what I enjoy the most about Software Engineering. I love designing simple, beautiful solutions to satisfy complex requirements. I like, and am good at, thinking and working in the abstract. My colleagues often consult me for advice and assistance with challenging problems. I enjoy the opportunity to learn new technologies and techniques to improve my software development skills. I am confident in my ability to succeed when trying something new, and often self-motivated to read and train myself. I have high aptitude, and I learn faster and more easily than most, which allows me to quickly adopt new technologies and better methods.
Worked in a team developing and maintaining an application system supporting a network of mortgage brokers. Played a key role as a senior member of the team to engineer a greenfields replacement system to modernise the application. Responsible for developing a highly flexible immutable data store which formed the foundation of the replacement system, and proved invaluable to the success of the project. Learned functional programming, becoming a technical leader in the practice, and developed skills in domain modelling.
As a senior .NET developer, I was responsible for the development of the custom systems that support the service offered to clients. I liaised with project managers and solution designers to ensure the products delivered achieved the goals of the client, enabling them to operate their business more effectively and efficiently. The technologies involved included .NET (v3.5 and up), MVC5, Entity Framework, KnockoutJS, WinForms, MS SQL Server, LINQ to SQL, RDLC reports, and more.
Working in a very small development team, I was often responsible for most of the software development life cycle on several projects, including requirements analysis, design, development and documentation. Most of my work was done in .NET, developing experience in WinForms, and ASP.NET WebForms, including HTML5, CSS3, and JavaScript/jQuery. There was also a lot of C/C++ development. I also gained expertise in reading and writing technical documentation, from deep analysis of mail server protocol specifications, and in writing internal documentation of the software systems I developed. During my time at MailEnable, I grew significantly in my understanding of my craft. I gained many skills, and the quality of the software I was delivering improved as I developed new competencies, including refactoring, abstraction, componentisation and reuse.
I supported the system engineers by developing and maintaining tools for managing the critical documentation for which the engineers were responsible. I created a user interface for version control and change management of documentation variations, to simplify the significant complexity involved in the existing processes. The engineers were very pleased with the product delivered.