Ryan How
Verified Expert in Engineering
Full-stack Developer
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
Experience
- Full-stack - 20 years
- HTML - 20 years
- JavaScript - 15 years
- Software Architecture - 15 years
- Java - 15 years
- CSS - 15 years
- Hybrid Apps - 6 years
- Angular - 2 years
Availability
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
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).
Software Engineer
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.
Software Engineer
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.
Software Engineer
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.
Software Engineer
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.
Software Engineer
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.
Software Engineer
Rio Tinto
- Created a data-processing system to automate complex data transformations and processing that was taking significant time to complete manually.
I.T. Manager & Support
Foundation Christian College
- Designed networks and troubleshot them also.
- Performed server administration.
- Provided end-user support.
- Handled system imaging and deployment.
- Monitored the performance.
Software Engineer
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.
Software Engineer
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.
Software Engineer
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.
Developed (System Automation and Security)
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.
Freelance Web Developer
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.
Experience
Local Advantage South West
https://localadvantage.com.au/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
• 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)
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)
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
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 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.
Education
Bachelor's Degree in Software Engineering
Murdoch University - Rockingham, Western Australia
Skills
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
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 (PWAs), 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
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring