Ryan How, Full-stack Developer in Busselton, Western Australia, Australia
Ryan How

Full-stack Developer in Busselton, Western Australia, Australia

Member since April 30, 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.
Ryan is now available for hire

Portfolio

Experience

Location

Busselton, Western Australia, Australia

Availability

Part-time

Preferred Environment

Visual Studio Code, Git, Windows/WSL/OSX

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.

Employment

  • 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: Full-stack Web Development, Angular, Java, .NET, Vaadin, jQuery, Web Components, REST APIs
  • 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: Java, Vaadin, PostgreSQL, PostGIS, JPA, Mapfish Print
  • 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: .NET MVC Desktop, Microsoft SQL Server
  • 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: .NET MVC, Microsoft SQL Server, IIS, SQL Server Reporting Services (SSRS)
  • 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: Java, Vaadin, H2 Database, JOOQ, JasperReports
  • 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: .NET WinForms, Java, Microsoft SQL Server, ActiveX, GIS
  • 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 Access, VBA, Microsoft Excel
  • 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: Windows Server, Linux Server, Email Servers
  • 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: FileMaker, Java, Windows Server, Apache, PHP, Microsoft Access
  • 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: Microsoft Access, Microsoft SQL Server, ASP.NET C#. WinForms. Windows Mobile
  • 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: Java, Tapestry, HTML, CSS, JavaScript, MySQL
  • 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: Linux Server, Apache, CGI
  • 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: HTML, CSS, LInux Server, Apache

Experience

  • Local Advantage South West (Development)
    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 (Development)
    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) (Development)

    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) (Development)

    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 (Development)

    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 (Development)

    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.

Skills

  • Languages

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

    Angular, Apache Tapestry, Vaadin, Ionic, Material-UI, Bootstrap, JUnit, 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), Spiral Development, BPMN
  • Platforms

    Linux, Eclipse, Visual Studio Code, Software Design Patterns, WordPress, AWS Lambda, Docker, Blockchain
  • Storage

    H2 Database, PostgreSQL, PostGIS, MySQL, SQLite, SQL Server Reporting Services (SSRS), AWS DynamoDB
  • Other

    Software Development, Software Architecture, PSD to HTML, Full-stack, Software Development Lifecycle (SDLC), Holochain, MapFish Print, Bash Scripting, Command Prompt (CMD), Progressive Web Applications (PWA), Linux System Administration, Windows System Administration, Hybrid Apps, Distributed Software, SVG, COM Interop, IIS, AWS API Gateway, Mobile Apps, Distributed Ledgers
  • Libraries/APIs

    jQuery, ReactiveX, AWS Amplify, 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, C#.NET WinForms, Visual Studio, Amazon Cognito, Jenkins

Education

  • Bachelor's degree in Software Engineering
    2001 - 2004
    Murdoch University - Rockingham, Western Australia

To view more profiles

Join Toptal
Share it with others