- Sydney
- codejma@gmail.com
- 0433 808 445
- http://jma.im
- http://github.com/0xApe
Summary
ABC: Always be coding
I am a senior software engineer with PHP/Golang experience mainly, and one-year full stack experience. Also I am an edge technology lover.
I am a fast and keen learner with a good attention to details and excellent troubleshooting skills. I am also a good team player who has a proven ability to work analytically. I am highly efficient, deadline focused, and handle multiple projects at same time.
Skills
Development
PHP
Ruby on Rails
Golang
SQL
- MySQL, PostgreSQL, RedisJavaScript
- jQuery, MootoolsVersioning
- GitPackage Managers
- Composer, NPMTools
- Github, BitBucket, Jira, Stash, Trello, ConfluenceEditors
- Vim, RubyMine, PhpStorm, Sublime Text, Atom
JavaScript Skills
React.js
- Mid-level knowledgeBackbone
- Basic knowledge
PHP Frameworks
Symfony 2
- Mid-level knowledgeLaravel
- Basic knowledge
System
macOS
Linux
- Ubuntu, CoreOS
Experience
Senior Software Engineer @ Australian Broadcasting Corporation
Jun 2018 - Present
Terminus is an API that aggregates and normalises data from multiple internal ABC sources to provide a unified view of ABC data in an organisable, customisable, layout order data set.
Terminus API has been used by ABC news, triplej app, iview, ABC website, ABC apple news, and other ABC services.
Also guarantee a high level of scalability, even if internal APIs are not able to handle that much load and currently get about 10 million unique API hits a day.
Architecture:
- Golang
- GraphQL
- Redis
- AWS Lambda
- Docker
Senior Software Engineer @ SwitchMedia
Sep 2017 - Jun 2018
AdEase enables world-class multi-screen server-side ad insertion for both Live and VOD content with zero buffering and a continuous TV-like experience.
- AdEase API Cloud Solution (PHP 7) - Refactor legacy system into new RESTful API
- Storage Service (Golang) - Upload data to cloud (GCS/AWS)
- Encoder Queue (Lumen) - RESTful API and jobs queue system that send requests to encoding system.
- Ad Buffer (Golang) - Retriever Ads from other system, keep in the Redis, and ready to be requested.
- ID3 Tag injection (Golang) - Refactor legacy PHP script that insert ID3 tags into segment.
- Stream Monitor (Golang) - Parsing Manifest/Playlist into JSON that been used in AdEase API.
Architecture:
- PHP 7
- Golang
- Docker
- Redis
- GCS
- AWS EC2/S3
Software Engineer @ Salmat
Jan 2017 - Aug 2017
- Building new internal system that use Laravel as API endpoints, and React as web.
- Maintain main system (Zend 1 framework) with bug fixes and continuously feature development.
- Understand business requirements and design solutions
- Development of high traffic and large scale web application
- Agile development and quick responses
Architecture:
- Laravel 5.4
- Zend 1
- LEMP
- React.js / Redux
- MySQL
Web Developer @ DevHub
July 2016 - Jan 2017
- Build a new partial React.js website based on existing website (projectmate.com.au)
- Solely responsible for full stack development of multiply React.js/Rails apps (mealmonster.com.au, little-lion.net)
Architecture:
- Ruby On Rails
- PostgreSQL
- React.js / Redux
PHP Developer @ Agentbox
2009 - July 2016
Agentbox CRM System
Agentbox CRM System is a leading CRM system to the Australian real estate industry. The system is built by PHP with procedure code. We moved to use Symfony 2 framework from the end of 2015 that make the code more reusable, readable and efficiency.
Architecture:
- Symfony 2
- MySQL
- LAMP
- Composer
- Mootools + jQuery
Responsibility:
- Maintain legacy business logical code
- Refactor legacy business logical code into Symfony framework
- Develop and maintain new features/business logic with Symfony framework
Agentbox GO System
Agentbox GO System is a mobile and simplifies version of Agentbox CRM System. The system is built by PHP with object-oriented programming.
Architecture:
- PHP
- MySQL
- LAMP
- jQuery Mobi
Responsibility:
- Maintain system for the bugfixes.
Version Coordinator
- Responsible for reviewing the code of pull request
- Responsible for releasing new version to clients
- Responsible for maintaining and developing internal client management system
Projects
Email Distributed System
When client requests sending emails, it will slice it into parts
and distribute each part to different email servers by random,
and call to send emails through centralized server on order.
Realestate Portals Export System
Exporting client's properties information with XML format,
to portals, such as realestate.com.au, domain.com.au, and others.
Email Log Analysis System
It analyses email logs which receive from portals such as
realestate.com.au and domain.com.au, and add results to the database,
client requests to fetch data, and it will return JSON result to them.
Other minor ongoing projects
Writing small components to do some repeatable jobs.
Mostly use PHP with the procedure or object-oriented code.
Eduction
Master of Computer Science
Univeristy of Wollongong . 2007 - 2008
Bachelor of Computer Science
Univeristy of Wollongong . 2005 - 2007
Interests
- Photography: my Instagram @filmape
- Traveling: view the world, and take photos
- Mobile/Desktop Applications: like to try new apps
- Gadget: like new gadgets
- Learning edge tech: keep learning and updating myself.
- Watching: like comedy and sci-fi