Freelance Full Stack Developer
KL, Malaysia
michael.than160@gmail.com
+60176730947
Skills
Adobe Photoshop
Adobe Illustrator
Adobe Premiere Pro
Excel (VBA)
Front End (HTML, CSS, JS)
PHP
Python
C#
Server Administration (Windows / Linux)
Database Administration (MySQL)
Languages
English
Russian
French
Client had organized a global photographic competition - soliciting entries from photographers to illustrate how their country had been coping with the COVID-19 virus. With a deluge of entries, they needed a way to display the information and decided on a worldmap and thumbnail gallery to do so.
Adapting the already existing Squarespace webpage - and using the Amcharts v4 JS library - I created a worldmap on the homepage. The worldmap was then linked to a backend database housing the competition entry information to automatically highlight countries for which entries were received. Clicking on a country calls a slide effect - with the resulting entry page being served from a separate server away from the Squarespace domain.
A separate gallery page (with thumbnails) was created - with similar linking to the backend database.
Due to the volume of visitors and the size of the image payload - it is hosted on Amazon S3
The entire solution is served dynamically from a database on the client's existing server - which means that new pages / entries can be added easily - without any creation of pages. This is especially notable as the solution resides on Squarespace where typical dynamic server page technology (such as PHP) does not work.
As part of their leadership programs, the client runs training on how to speak at, and chair meetings. Other participants are invited to rate the chair based on several criteria. An app was needed to facilitate this voting process.
Rather than exist as an app that requires download - I decided on a Responsive Web App that would allow users to use it immediately. This app uses the MDC-Web (Material design) framework for many of its components. Transitions between 'pages' are actually slide transitions using the swiperjs framework.
The three distinct functionalities - of the admin, chair and user pages all cater to different users.
The Chairperson creates a new scorecard - then is able to reconnect to their scorecard, close it or solicit votes by sharing a code with the other participants
The final scorecard can be downloaded or emailed to the user as a PDF file.
Client had a messy system of tracking inbound leads - from multiple disparate sources, using various Excel sheets to track of leads was inefficient and ultimately, leading to a loss of business
A CRM (Hubspot) was created as a single source of truth for lead data. In addition - the following were created:
Client was spending excessive amounts of time performing repetitive tasks keying in administrative data and producing reports for a leadership program.
Adapting the Excel sheet already in use, I automated the repetitive processes with the help of macros & VBA. Instructions are built into the sheet so users can pick up and use. Users are able to select which records they would like exported as PDF.
Client needed to be able to calculate payouts on a monthly basis for the fleet owners of a micromobility (scooter) business. An existing Excel workbook was present but error prone, buggy and lacking features.
The sheet was redesigned from the ground up, after an extensive deep dive into the data, to match the inbound data with real world occurances (User top ups, user rides). Power Query was used extensively for ETL - to massage and join inbound data. From here, Power BI features were used to enforce relationships between multiple tables, and DAX used in conjunction with PivotTables to create complex measures to slice and dice the data into a convenient view.
Other features added:
Client needed to be able to dynamically allocate human resources, given constraints and other input parameters:
The solution to this problem was a basic sheet with multiple tables for input, where the user can indicate the number of human resources per department, different tasks and their estimated man hours per month, as well as the number of hours each human resource was available to work
This data was processed into an output table that compares the actual vs. allocated workload for each human resource.
Client was having difficulty tracking leads and orders - awarding noteworthy business a seal of approval for superior products & services
A multi-sheet Excel workbook was constructed, with an instructions page and dashboard, with numerous input tables where the user can key in fresh orders, check order statuses, and keep track of approvals. Extensive use of formulas and VBA was used here to add some intelligence and input validation to the sheet.
Business process automation (focusing on Excel). Created a front end interface for a not-for-profit COVID-19 photographic competition. Creating web apps with MDC-Web, Webpack, HTML/CSS/JS. Currently working on an API to control and extract data from Excel Workbooks.
Designed & implemented Business Intelligence and reporting solutions for life insurance sales division. Oversaw entire IT Project life cycle as a project manager for an iPad based insurance submission application and associated web portal - assembling user requirements, liaising with vendor, planning, releasing and managing subsequent releases/fixes. Created and deployed a nationwide digital signage system.
Managed email campaigns to exhibition visitors, crafted emails in HTML, ensuring their visibility on multiple platforms. Handled event badge printing - from data collection and storing in a database to data-driven on-site printing of badges at the exhibition front desk. Created a new online store for health products via VPS running on an ASP.NET platform. Managed complex data operations involving pulling together CRM data from multiple, disparate data sources and storing then in a MySQL database.
Attended client meetings (Maxis, CIMB bank) to advise and answer questions on future deployments, upgrades. Designed slides and technical diagrams to present to clients.
Performed some preparatory work for coding a new crane simulation engine using PhysX libraries. Observed business development cycles of a new tech firm.
B.Sc. (Hons), Physics, July 2012