Curriculum Vitae for Joshua John Lawrence
I am a software developer experienced in agile methodology, web development, C# and Java, with a particular interest in graphics. I want to find cool new projects to work on and cool new people to work with.

Contact

Email me
Skype Me™!
+64–7–870–5226 (home)
+64–27–485–2225 (cell)
161 Te Tahi Road, RD6 Te Awamutu 3876, New Zealand
Born 17 March, 1975

Versions

PDF version DOC version

Sample Code

More

Work History

2013 – present: Senior Software Engineer with Gallagher Group Ltd. Hamilton, New Zealand.

I currently work on our security product, Command Centre.

My most interesting projects in this role have been two web services to open up Command Centre functionality to enable third party integration. These SOAP web services were written using C# and WCF. Since the first use of one of these web services was in a prison to make access decisions at secure doors, robust security was of utmost importance. The web services use two-factor authentication, X509 certificates authenticating both the client and the server machines and a password to authenticate the user, and actively audit the server to ensure only strong cipher suites are used.

Another project involved integrating with a third-party security camera product, conveying event information from Command Centre to the product for display. This involved raw TCP and socket programming, with the software self-monitoring and reporting its workload in a concurrent manner.

Our development process is Kanban with rigorous peer review in a closely-integrated multi-disciplinary team.

Technologies used included C#, C++, .NET, Visual Studio, WCF, Enterprise Architect, WinForms, TFS, SQL and SQL Server.

2004 – 2013: Senior Software Developer with Rockwell Automation. Hamilton, New Zealand.

I wrote web applications for Rockwell Software, a division of Rockwell Automation. I performed the role of scrum leader in our scrum agile process, for the development group in the Hamilton office. During our last hiring cycle, I played a lead role in technical interviews, assessing candidates and updating our candidate testing process.

For the last several years, I worked on a factory production line monitoring web application. My part was the design and, with the rest of the team, the implementation of a customizable dashboard framework that allows customers to see charts and numeric display of performance metrics for their factory lines. This software is written in Java, GWT and GXT, and runs on Internet Explorer and Chrome.

Previously, I worked on a performance optimization web application. My part was the design and implementation of charts that displayed variables measured in the factory, which were being optimized by a trained neural network. The charts were implemented in Flash and JavaScript, and had strict performance requirements: they could be updated in real time at a rate of once every three seconds, and more than a hundred could run in one browser simultaneously. To implementing this, I wrote an AJAX framework in Flash using Macromedia’s AMF protocol, before ever hearing about AJAX or XMLHttpRequest. This framework was later used to drive other pages in the application. I was also involved in the design of the database schema used to represent factory reporting data.

Technologies used included Java, GWT, GXT, HTML, CSS, JavaScript, AJAX, XHR, HTTP, SQL, SQL Server, Flash, ActionScript, jUnit, log4j, ant, Apache Commons.

2003 – 2004: Contracting for WebTex. Hastings, New Zealand.

During my time with WebTex, I worked on a number of short projects, mostly websites.

Technologies used included HTML, CSS, JavaScript, PHP, Visual Basic, VBScript, ASP, C++, SQL, MySQL.

2002 – 2003: Software Engineer with Aircraft Management Technologies, now Flightman. Dublin, Republic of Ireland.

Employed as a contractor, I worked on AMT’s electronic flight log product, eTechLog. This involved requirements gathering, analysis and design of the software and database schema, as well as implementation. I was invited to stay on as a permanent employee at senior level, but chose to return to New Zealand following the birth of my eldest child. After returning to New Zealand, I continued to work remotely for a while, until my last part of the project was complete.

Technologies used included Java, XML, JavaScript, Mozilla Rhino, SQL, IBM DB/2.

1999 – 2001: Software Engineer with Intel (NZ). Auckland, New Zealand.

I worked on a PBX aimed at small to medium-sized businesses, in the area of call switching, specifically the product’s dial plan. The dial plan was involved with every dialled digit from every handset, trunk line and application installed on the system, and therefore had strict performance and concurrency requirements. The product as a whole had strict correctness requirements. The dial plan was most similar to a regular expression parser, parsing strings of dialled digits in real time, except that unlike most regular expression parsers the expression syntax was required to be changed in real time without dropping calls, with parser state tables being regenerated by a background thread.

Technologies used included C/C++, MSVC, Rational Rose, WMI.

Academic Record

I have three degrees, all from the University of Auckland, New Zealand:1 2 My masters thesis was entitled “High Quality Volume Rendering” (color plates) and explored rendering images from medical volume data sets. I implemented a ray-casting volume renderer using Microsoft Visual C++. The assertion I was researching was that, instead of commonly used linear approximations, a more rigorous treatment of the light transfer line integral would lead to better quality images for the same rendering time. My final grade was A-.

In my honours year, I studied computer graphics, data communication and multimedia. My stage 3 science papers included pure mathematics, algorithms, computer graphics and data communication.

I omitted stage 1 level in my core subjects, as my academic record was sufficient to permit direct entry into stage 2. This enabled me to study a wider range of subjects, such as psychology and ancient history. In mathematics, I gained entry into the accelerated stage 2 papers, gaining A grades in each. In 1994, I was awarded a Certificate of Distinction for a grade in a stage 3 mathematics paper in the top 1.5th percentile. I also studied theology. More

Character

More

Interests

More

Referees

Ted Waetford, Software Development Manager, immediate report

Email Ted
+64–21–368–012 (cell)

Troy Gorringe, Senior Software Developer, peer

Email Troy
+64–21–616–094 (cell)

Written references are available on request.