Philip Andrew.

Scala, Java, Typescript

Hi, I'm Philip Andrew, a software developer having worked in USA, UK, Hong Kong, Australia (where I live now, I'm an Australian). Stack Overflow top 0.38%, Twitter, Github, LinkedIn.

Events involved in

2019: I was the technical lead for our team "Access Our Community" for the Global Legal Hackathon passing two judging rounds, firstly we won the Hong Kong Hackathon weekend round then a second global online only round to narrow nearly 1000 initial teams down to becoming a Finalist as part of 12 others in the Global Legal Hackathon held in New York 2019, flew to New York to compete and attend the finals Gala. Although we did not win the finals, I enjoyed learning about how to win a hackathon! (you can see me at 1 minute 40 seconds into the video).

Also at 12 seconds into the youtube video on the finals page.

2019: Gave a talk on "Smart Legal Contracts" at Hong Kong University for my startup ContractPen, Smart Legal Contract Challenge, Here is my presentation deck of the speech I gave at HKU. After investigations, decided not to pursue ContractPen as a startup due to lack of business viability (existing competitors, difficulty to engage paying customers).

Summary of skills

TechnologyAbility
Java*****
Scala*****
HTML****
Typescript****
Javascript****
Linux shell command line****
Apache Camel***
MySQL***
C / C++**
Idris**
MongoDB**
Oracle**
SQL Server**
C++**
Ansible*
AWS Cloudformation*
OpenCV*
Tesseract OCR*

Certifications Achieved

Image

Lightbend: Java Language Lambdas - Level 1
(badge of completion, no grade), ISSUED ON May 19, 2020, youracclaim certificate

Image

Lightbend: Lightbend Telemetry Installation - Level 1
(badge of completion, no grade), ISSUED ON June 4, 2020, youracclaim certificate

Image

CERTIFICATE OF COMPETENCY: Certified Rancher Operator: Level 1
Score: 90%, ISSUED ON May 29th 2020 Click for certificate

Image

JFrog Artifactory: Overview
Link

Image

JFrog XRay: Overview
Link

Questions and Answers

If we assume there is only one right answer for every I.T. question then these are my answers to those questions.

In the real world there is rarely ever just one right answer, if the developers know React then there are good reasons to choose React, or for different reasons such as business reasons, legacy code, developer familiarity, etc, but I have preferences over what technology or solution I would use for any problem. This is here those personal preferences expressed as questions and answers.

Hardware for development?

Two machines, one AMD CPU machine with high RAM, 64GB RAM for virtualization, the other machine with reasonable RAM and Intel CPU and a good Cuda capable graphics card. The reason for two machines is that one machine with a high end GPU and high RAM gets into the expensive range. A mix of Intel and AMD allows for more options.

High RAM machine is for running Kubernetes is "like a server in the cloud" but locally.

High GPU machine is for Cuda development, machine learning etc.

Operating System for development?

PopOS within a VirtualBox virtual machine to allow it to be moved to a new machine, PopOS is basically Ubuntu with better support for creative work. Virtualbox can run inside virtualbox now, this is known as nested virtualization. Although there is a performance degradation to virtualization, the ability to not have the host operating system entering a bad state from which recovery is difficult is worthwhile.

Computer language to use?

Scala version 2.13.2 installed with SDKMAN.

Scala build tool to use?

Seed Scala as it can target JVM, Javascript and native with the Scala language, also works well with IntelliJ.

Scala IDE?

IntelliJ Idea Scala/Java IDE.

Server side environment

Kubernetes as it allows for deployment in any cloud environment.

Although different clouds such as AWS, Azure, Aliyun have different advantages but the disadvantage of being dependant on a cloud restricts where the product can be deployed and different customers will want to use different clouds. When a customer asks to have deployment for Azure but you are dependent on AWS then this is a problem. Also Kubernetes solves most of the problems which are likely to be faced for server side such as scalability up and down, encryption of data in motion etc.

The complexity of setting up and administrating AWS with Cloudformation is a large technical cost in time and effort, best avoided unless necessary to do so.

Kubernetes development environment

MiniKube for developing Kubernetes locally.

ETL - Extract Transform and Load

Apache Camel CamelK.

Asynchronous programming in Scala

ZIO.

HTML web application for mobile and desktop

Korolev.

Which CSS framework to use?

Bulma CSS, there are many CSS frameworks but Bulma comes with Flexbox and has good default components. Bootstrap was popular for a while, but new technology always comes along.

Articles

@todo This

Projects

@todo This

Recent work

@todo This

Contact

Contact me

Future study

  • Microsoft Azure Cloud certification
  • Java certified Programmer