Ryan How, Developer in Busselton, Western Australia, Australia
Ryan is available for hire
Hire Ryan

Ryan How

Verified Expert  in Engineering

Full-stack Developer

Location
Busselton, Western Australia, Australia
Toptal Member Since
June 13, 2019

Ryan is a full-stack Angular developer with 21 years of experience in web development. He uses multiple back-end technologies and has excelled in working with international firms, small businesses, and tech startups. He believes that maintaining good working relationships with clients is vital. Passionate about coding since the age of five, Ryan graduated with a bachelor's degree in software engineering and first-class honors.

Portfolio

BitWorks
REST APIs, Web Components, jQuery, Vaadin, .NET, Java, Angular, Full-stack
Builders' E-Commerce
Print, MapFish, JPA, PostGIS, PostgreSQL, Vaadin, Java
Ecotech Environmental
Microsoft SQL Server, Desktop, .NET

Experience

Availability

Part-time

Preferred Environment

MacOS, Windows, Git, Visual Studio Code (VS Code)

The most amazing...

...project I've developed was an end-to-end environmental monitoring system. It was cutting edge and has stood the test of time working 24x7,10 years and counting.

Work Experience

Director

2008 - PRESENT
BitWorks
  • Planned, architected, managed, estimated, quoted, delivered, and supported multiple software projects from $1,000 apps to $400,000 systems.
  • Assembled a team, formed procedures, set up coding standards, created toolchains, deployment pipelines, and various other aspects of full-lifecycle development.
  • Worked closely with clients and determined what makes a software project successful and tracking progress to meet those goals.
  • Gained extensive experience estimating software projects, then managing and delivering on those estimates.
  • Provided long-term support and maintenance of projects.
  • Developed projects according to best practices for long term reliability, maintainability, and minimal technical debt.
  • Evaluated and worked with a wide range of tools and technology to meet customer requirements with a focus on web technology stacks including Java Servlets, Apache Tapestry, ASP.NET, .NET MVC, Vaadin, jQuery, AngularJS, Angular, Ionic.
  • Gained extensive experience in HTML, CSS, JavaScript and TypeScript and associated browser development tools (Chrome, Safari, and Firefox).
Technologies: REST APIs, Web Components, jQuery, Vaadin, .NET, Java, Angular, Full-stack

Software Engineer

2015 - 2018
Builders' E-Commerce
  • Took over the development of a Vaadin web application after the lead developer left. Immediately made a few changes to reduce monthly hosting costs by 100x, improve the performance, fix critical bugs, and reduce deployment times from 30 minutes to 1 minute.
  • Worked closely with the product manager to implement and trial new features using an Agile approach.
  • Designed and created a system for scraping large GIS datasets, translating and inserting them into PostGIS databases, then matching appropriate data sets with end users and restricting their queries to localized datasets.
  • Managed multiple production Linux servers hosting supporting services to the main web app: Alfresco (Document Control), Flowable (BPMN), Mapfish Print (PDF Maps).
  • Managed and mentored other team members.
  • Created a white-label theme engine for fast customer onboarding, to allow new businesses to quickly customize the product branding.
Technologies: Print, MapFish, JPA, PostGIS, PostgreSQL, Vaadin, Java

Software Engineer

2015 - 2016
Ecotech Environmental
  • Created a dust monitoring database with lab data input and integration with lab scales.
  • Built a reporting add-on to auto-generate detailed monthly reports using Microsoft Excel and Word that would usually take several days to complete.
  • Created a companion field logger to download data from dust monitoring equipment and sync back to the main database.
  • Built a data export to transform and export data into a format required by a propriety client database.
Technologies: Microsoft SQL Server, Desktop, .NET

Software Engineer

2014 - 2015
Aurum Catering
  • Developed software for the full lifecycle from requirements and design to delivery and support.
  • Built a touch-screen-friendly web application design for use in a mobile environment.
  • Integrated an existing client infrastructure and systems.
Technologies: SQL Server Reporting Services (SSRS), IIS, Microsoft SQL Server, Model View Controller (MVC), ASP.NET MVC, .NET

Software Engineer

2012 - 2015
Stonevale Group
  • Worked on the full life-cycle software development from requirements gathering and architecting, to delivery and maintenance.
  • Collaborated with the client using an Agile methodology to obtain quick feedback.
  • Designed and implemented a zero downtime continuous delivery pipeline.
  • Managed and led a development team in a remote environment.
  • Integrated the client's existing systems and conducted a staged migration across for minimal client disruption.
Technologies: JasperReports, JOOQ, H2 Database, Vaadin, Java

Software Engineer

2009 - 2014
Balfour Beatty | Wooly Parsons
  • Built a bore maintenance risk database as a web application using Java, Apache Tapestry, H2 database and Open Office for report generation.
  • Created a water-monitoring lab system as an extension to the bore maintenance database which included lab and field data input, data import from external labs, report generation, data export to propriety client systems, a calculation engine and data validation engine.
  • Developed a companion field logger system to run on ruggedized Windows XP tablets. The software ran as an embedded web app with offline functionality. It included data input with validation based off-site history, GPS and Maps for sample point location (offline), integrated data backup onto SD card, interfacing with data loggers via a COM port for results and calibration, schedules and progress tracking.
Technologies: GIS, ActiveX, Microsoft SQL Server, Java, Windows Forms (WinForms), .NET

Software Engineer

2012 - 2012
Rio Tinto
  • Created a data-processing system to automate complex data transformations and processing that was taking significant time to complete manually.
Technologies: Microsoft Excel, Visual Basic for Applications (VBA), Microsoft Access

I.T. Manager & Support

2009 - 2011
Foundation Christian College
  • Designed networks and troubleshot them also.
  • Performed server administration.
  • Provided end-user support.
  • Handled system imaging and deployment.
  • Monitored the performance.
Technologies: Mail Servers, Linux Servers, Windows Server

Software Engineer

2008 - 2011
Great Living Homes
  • Created some sophisticated FileMaker functions to automate a lot of business processes, and send a notification based off triggers. It was designed in a way that non-technical users could create new notifications and custom triggers and actions for those.
  • Integrated Java with FileMaker to create a more advanced UI that possible in FileMaker to visual, track and update workflows.
  • Created a Microsoft Access "Toolbox" application to complement the functions provided by an OTS software package that ran off an Access Database back end.
  • Plumbed together several products and cloud services to create a syncing and notification mechanism to sync office files to employee iPad's with offline support and notify when updates were required to files. (This was to replace a paper system or manually email files, which was troublesome).
  • Managed Windows and Linux Servers, Microsoft Active Directory and Virtual Servers, office networking, and mail servers.
Technologies: Microsoft Access, PHP, Apache, Windows Server, Java, FileMaker

Software Engineer

2005 - 2008
Persons Brinckerhoff
  • Created a bore maintenance database using Microsoft Access for assessing environmental contract risk associated with bore accessibility and functionality.
  • Developed detailed financial reporting for Engineering projects to help them more effectively meet budgets using Microsoft Access.
  • Automated import of lab results for portable water samples to give quicker feedback and turnaround time. Using Microsoft .NET C#.
  • Migrated a complex Access database to Microsoft SQL Server to give significant performance gains and stability improvements.
  • Built some automatic Excel report generations tools to reduce errors and time take to do reporting for potable water samples using VBA.
  • Created a type of mission-critical dust monitoring lab software to streamline the capturing of data, entering of data, and the management of collecting dust samples using C# WinForms and COM Interop.
  • Developed a type of dust logger field software for Windows Mobile Ruggedised PDAs using .NET SDK for Windows Mobile; included a COM port download of data from dust extractors.
  • Created and supported, as a team lead, an enterprise water monitoring data warehouse and a type of reporting software using ASP.NET; also provided production support.
  • Developed a type of companion ETL software for importing, transforming, and uploading data to the water monitoring system using C# WinForms.
  • Rolled-out a type of OTS software for water monitoring and managing schedules including ruggedized PDAs and barcode scanners for water sampling points.
  • Created several software add-ons for the water monitoring software using C# WinForms to fill missing holes in the software and make it more usable. The add-ons included a visual/calendar view of the schedule so it could be planned better, and better software for syncing schedules with field loggers.
Technologies: Windows Mobile, Windows Forms (WinForms), C#, ASP.NET, Microsoft SQL Server, Microsoft Access

Software Engineer

2004 - 2004
CSIRO
  • Developed a full-stack web app as a proof of concept of a qualitative risk assessment technique. For the time, this was using cutting-edge JavaScript and CSS to give a great UX on the web.
  • Wrote a 73-page thesis on evidence and argumentation-based risk assessment.
  • Developed the full lifecycle from inception to completion.
  • Setup and managed a Linux server.
Technologies: MySQL, JavaScript, CSS, HTML, Tapestry, Java

Developed (System Automation and Security)

2003 - 2003
Murdoch University
  • Found security vulnerabilities in their student grading system.
  • Created deployment scripts for automatically setting up new units, replacing the previous manual copy/paste type setup that was conducted each semester.
  • Tightened the security on the shared server to prevent students from accessing the database sitting behind the web application.
Technologies: CGI, Apache, Linux Servers

Freelance Web Developer

1999 - 2003
Freelance Work
  • Worked during high school and university.
  • Created an online survey software for an ISP using Perl CGI on Apache and IIS.
  • Built websites for some local businesses on Apache, using SHTML (including the server side).
  • Built an online Australian gaming leaderboard using Perl CGI on Apache and an online multiplayer text-based game.
Technologies: Apache, Linux Servers, CSS, HTML

Local Advantage South West

https://localadvantage.com.au/
I took over development of the project after the existing developer left and the project had gone over time and budget.

I worked closely with the client and advised on how best to proceed from here. In an ideal world, it would have involved starting again with a more suitable technology stack, but the ideal is rarely the case, so I proceeded to fix some long-standing bugs and streamline the deployment process so there were fewer regressions on deployment and so updated could be delivered quickly and reliably.

I worked with the client to create some new features and improve existing features and user experience (UX).

The client's limited budget meant that development efforts needed to be prioritized, so it was very important to determine what issues to tackle and which issues were better to leave.

The other challenge was fixing the issues that were deeply embedded into a production system, while not disrupting clients. For this particular project, it was used on a 24x7 basis, that meant making all changes in a backward-compatible way.

Technologies: Ionic 1, AngularJS, PHP Laravel, Full-stack

Builders' E-Commerce

https://www.buildersecommerce.com.au/
Successes:
• Lowering production costs by 100x
• Radically increasing reliability
• Rapidly prototyping and testing new features in an Agile method while maintaining production stability
• Designing an architecting the system to be scalable with handling large GIS datasets in an innovative way
• Working creatively on innovative solutions to meet challenging requirements

I initially consulted with Builders' E-commerce as a front-end developer to theme the application with CSS.

Shortly after, the lead developer left and I was approached to take over the role.

I immediately made several critical changes to the system to lower production server costs that were spiraling out of control. This involved changes to the build process, fixing some critical bugs, and automating a deployment pipeline. I lowered monthly fees by 100 times and increased application performance and reliability.

I continued on the Builders' E-commerce project for several years, implementing and testing new features with the Agile methodology, working as part of a team under a product manager, and maintaining the performance and stability of the product.

Technologies: CSS, JavaScript, Vaadin, JPA, Java, PostgreSQL, Flowable, Alfresco

Aurum Resident Dietary Management System (RDMS)

The Aurum Catering RDMS was a system designed to streamline the process of recording residents dietary requirements and preferences, ordering ingredients, preparing meals in the kitchen, then delivering the correct meals to residents.

This project came with a full requirements spec, so my role was to estimate, develop, and deliver.

The project was to be implemented on a .NET MVC stack with Microsoft SQL Server and SQL Server Reporting Services.

I put together a small team to deliver the project, which I managed and performed the role of a technical lead.

I additionally advised on tablet PCs to be used on the ground, having prior experience in the use of web applications on tablet PCs and the inherent problems.

It was a fairly standard project with no big surprises, innovation, or changing requirements.

A robust and reliable solution was delivered within time and budget and to the client's satisfaction. Unfortunately, shortly afterward, the company was purchased by another and closed down.

Environmental Dust Monitoring System (Dusty)

The client won a contract for a large mining company to handle their dust monitoring.

They only had two weeks notification to get their systems in place. The previous contractor was not cooperative in transferring their IP, so there was only a very narrow window to develop software. Furthermore, it was considered essential to have software in place to streamline the data collection and analysis and ensure that errors were minimal.

I developed an MVP desktop application using .NET MVC on top of a SQL Server database in the two-week timeframe and stayed onsite with the client for the first day to fix any issues that arose immediately. My role was critical in delivering a smooth transition.

Further development continued over the next few months to add new features and add a companion field logger application to run on tablet PCs, plus automated reporting. The system has been running 24x7 for years since.

CAMBS | Construction and Management Building System

I was approached by a residential builder to replace their existing system(s) that had grown into a "monster."

The systems they had were not scaling, had a lot of bugs and quirks, and a lot of technical debt, so any further development was creating more problems. They felt they lacked the expertise and wanted to "do it right" this time.

For this project, after evaluating a few frameworks, I selected Vaadin, which is a web framework that has a development model more like a desktop application.

I put together a small team, created a high-level requirements document, then worked with the client using an Agile methodology to deliver features of value to the client as early as possible.

Part of the project scope was a migration from the existing system to the new system. So the system was developed in a way that allowed for a smooth changeover, with migration happening on a per feature basis, and jobs running through both systems in parallel.

The resulting system covered a wide range of business requirements from sales to workflow to contracts to reporting.

EWMS | Enterprise Water Management System

The project centered around an environmental data management system geared towards sample collection, processing, analyzing, and reporting. This system was developed as standards LIMS (Lab Information Management Systems) were not suitable. They focused on the analysis of samples rather than the collection, tracking, and reporting of samples.

The system evolved to include companion field loggers running on ruggedized touch screen tablets with offline maps and GPS capabilities, on-site data validation, and integration with instruments via COM ports and USB.

This system was required to be accessed remotely and on-site, so it was implemented as a web application using Apache Tapestry running on a high speed embedded H2 database. The field loggers were an extension of the same system running as an embedded web application with a full copy of the database (allowing for offline support) and syncing using a transaction based syncing mechanism for pushing data, and a snapshot for pulling data.

The embedded web application pattern later became more mainstream using tools like Electron, but this was implemented in an early version of Firefox using XULRunner.

The project is used daily has been running reliably in production for years on end.

Languages

HTML5, CSS, JavaScript, TypeScript, HTML, Java, SCSS, Bash Script, PHP, C#, Visual Basic for Applications (VBA), Perl, GraphQL, Solidity

Frameworks

Angular, Apache Tapestry, Vaadin, Ionic, Material UI, Bootstrap, JUnit, Tapestry, .NET, ActiveX, Express.js, ASP.NET, ASP.NET MVC, JPA, Hibernate, Jasmine, Protractor, AngularJS

Paradigms

Dependency Injection, Agile, Continuous Integration (CI), Continuous Deployment, Test-driven Development (TDD), Model View Controller (MVC), Spiral Development, BPMN

Platforms

Linux, Eclipse, Visual Studio Code (VS Code), Software Design Patterns, WordPress, AWS Lambda, Windows, MacOS, Windows Mobile, Windows Server, Desktop, Docker, Blockchain

Storage

H2 Database, PostgreSQL, PostGIS, MySQL, SQLite, Microsoft SQL Server, SQL Server Reporting Services (SSRS), Amazon DynamoDB

Other

Software Development, Software Architecture, PSD to HTML, Full-stack, Software Development Lifecycle (SDLC), Holochain, MapFish Print, Command Prompt (CMD), Progressive Web Applications (PWA), Linux Administration, Windows System Administration, Hybrid Apps, Distributed Software, SVG, Linux Servers, CGI, Web Components, MapFish, Print, Mail Servers, COM Interop, IIS, Amazon API Gateway, Mobile Apps, Distributed Ledgers

Libraries/APIs

jQuery, ReactiveX, AWS Amplify, Windows Forms (WinForms), REST APIs, Node.js, JOOQ, JasperReports

Tools

Microsoft Access, Microsoft Excel, FileMaker Pro, Apache, NGINX, Microsoft Word, Web GIS, Apache Tomcat, AWS AppSync, Git, GitHub, Open Office, Angular CLI, FileMaker, GIS, C#.NET WinForms, Visual Studio, Amazon Cognito, Jenkins

2001 - 2004

Bachelor's Degree in Software Engineering

Murdoch University - Rockingham, Western Australia

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring