Personal Data

William Shallum
[please contact me by email]
[please contact me by email]

Working Experience

Backend / API Engineer - Banking, Stripe, Singapore Jun 2019 – current
  • Work on banking integrations in the APAC region.
  • Worked on Australia Direct Debit payment method (API implementation, Bank Account input element).
  • Technologies used: Ruby, Javascript
Senior Software Developer, BBM, Singapore Aug 2018 – Apr 2019
  • Work on gateway between PSTN and BBM network.
  • Help client developers with integrating PSTN calling.
  • Work on client C++ code as required (troubleshoot voice/video call issues, implement changes required for PSTN calling).
  • Technologies used: C++, Java, Kotlin, Spring Boot
Software Developer, BBM, Jakarta Apr 2017 – Aug 2018
  • Worked on cross-platform C++ core for BBM messenger app to add video upload / download capability.
  • Worked on improved groups implementation (protocol design, messaging server improvements, and client improvements).
  • Developed prototype for PSTN calling (SIP / media proxy configuration for WebRTC to SIP, SIP interop troubleshooting).
  • Assisted other teams in integrating with the BBM environment.
  • Technologies used: C++, Java, Kotlin, Spring Boot
DevOps - BBM project, KMK Online, Jakarta Aug 2016 – Apr 2017
  • Ran calculations to verify cloud vendor quotes for BBM migration project.
  • Converted application provisioning scripts from Chef / Shell to Ansible.
  • Deployed applications to cloud provider for testing using above scripts and performed troubleshooting of any errors up to and including diving into the source code.
Software Developer - Analytics Team, KMK Online, Jakarta Feb 2016 – Aug 2016
  • Track events on web frontend using Javascript.
  • Implement ETL pipeline from event data to metrics.
  • Improve content recommendation system.
  • Implement internal analytics dashboard.
Backend Software Developer, DominoPOS, Denpasar Jul 2015 – Jan 2016
  • Implemented backend functionality for the company's application "Orbit".
  • Wrote SQL for reports.
  • Sometimes administered AWS instances.
  • Improved firewall rules (iptables) for captive portal.
  • Technologies used: PHP, Laravel, MySQL
System Administrator, PT. Magna Karsa Mulya, Surabaya Jun 2014 – Nov 2014
  • Performed maintenance tasks on servers used for online bill payment.
  • Improved Zabbix monitoring of MySQL, Apache, Disk I/O with custom user parameter.
  • Worked with developers to get some application metrics into Zabbix.
  • Implemented daily backups of the MySQL database.
  • Scripted cleanup of old application log files.
  • Migrated database to newer servers (and newer MySQL version).
  • Implemented periodic backup of data between 2 NAS systems.
  • Technologies used: CentOS Linux distro, IBM xSeries servers, Zabbix, MySQL
Junior System Administrator, PT. Wowrack Indonesia, Surabaya Dec 2011 – May 2014
  • Answered escalated support issues (both local and international customers).
  • Managed internal & customer systems.
  • Helped propose solutions to customer problems.
  • Set up MySQL replication and scheduled backups of replica for disaster recovery of customer data.
  • Accelerated a popular Wordpress blog using Varnish caching. Worked with customer to determine caching parameters e.g. mobile vs desktop theme for same URL.
  • Worked with customer to migrate a social network app from dedicated servers to Amazon AWS (EC2 and VPC).
  • Built prototype of automatic server installation system using PXE and Cobbler. System also allows clients to boot into a rescue image accessible through the Internet.
  • Technologies used: Ubuntu & CentOS Linux distros, CPanel / WHM, Xen, MySQL, Zabbix, Varnish, Amazon EC2 & VPC
Developer, PT. Wowrack Indonesia, Surabaya Jun 2009 – Dec 2011
  • Developed an internal portal containing server information.
  • Helped maintain a VPS management application using Rails (mostly ordering and billing parts).
  • Integrated information from Nagios, Cacti and Kayako eSupport systems.
  • Technologies used: PHP, CodeIgniter, Ruby on Rails, MySQL and MS SQL Server databases, PayPal Express Checkout API.
Web Developer, PT. Sada Systems Asia, Surabaya Feb 2009 – Jun 2009
  • Ported a Google Apps email list management application from PHP and Python to Google App Engine.
  • Prototyped an Outlook add-on to send large attachments through a file upload website automatically.
  • Developed various tools to migrate data (contacts, email messages, calendar events) from legacy systems (Novell Groupwise, Microsoft Exchange, Sun servers, messages on disk) to Google Apps. Enhanced existing email migrator application to handle large mailboxes (up to 600 MB).
  • Technologies used: Python, C#, Google GData APIs, iCalendar, IMAP.
Java Programmer, PT. Sigma Karya Sempurna (Balicamp), Tangerang Feb 2008 – Oct 2008
  • Participated in the development of a web-based Risk Management System for a leading national bank.
  • Implemented functionality and fixed bugs under the direction of the System Analyst.
  • Set up and maintained a Hudson continuous integration server.
  • Technologies used: Servlets, AJAX (Prototype and DWR libraries), Spring (Dependency Injection), Hibernate (ORM), DB2 database.
Freelance Developer, Surabaya Intermittent
  • Late 2008 - Early 2009 Contracted to do website maintenance & add new functionality.
  • Technologies used: PHP,, CodeIgniter, jQuery
  • Mid 2010 - Mid 2011: Enabled a web app to access local printer for raw printing and get the client's MAC address for authentication. At first used Firefox extension then moved to NPAPI plugin for Windows and Linux. Tested plugin on various browsers: Chrome, Firefox, Opera.
  • Technologies used: JavaScript, C, NPAPI
  • Late 2013: Built screen scrapers to get recent transactions from local banking sites: BNI, BRI, Mandiri.
  • Technologies used: Python (requests, BeautifulSoup)
Programmer & Database Designer, Freelance Developer, Surabaya, Feb 2006 - Oct 2007
  • In a team of 3-4 people, developed several programs to handle sales for a real estate developer using Borland Delphi 7 and Microsoft Access.
  • Participated in interviewing the client to get requirements. Designed the database schema for the programs based on the requirements.
  • Wrote most of the data access code for the programs.
Lab Assistant, Sekolah Tinggi Teknik Surabaya, Aug 2005 - Aug 2006
  • Performed troubleshooting on computer and network failures in the lab (Windows Server 2003 environment with Windows 2000 clients).
  • Wrote and graded lab exercises for Java and C++ Programming lessons.

Formal Education

Sekolah Tinggi Teknik Surabaya, Surabaya, Jul 2003 - Nov 2007
Bachelor's Degree, Information Technology (S.Kom.), majoring in E-Commerce
Graduated Cum Laude with a GPA of 3.54 out of a 4.00 maximum.
Electives Taken
  • Internet Server Administration
  • Advanced Java Programming
  • Client-Server Programming
  • Wireless & Mobile Networking
  • Advanced Database
  • Internet Application Development Framework
Final Project
Implementation of a Certificate Authority Application
Implemented an application to generate X.509 certificates (used for SSL) from certificate signing requests. Application was written in C, runs under Linux, has a GUI implemented using the GTK+ library, and uses the SQLite database library for data storage.

Training and Courses Taken

  • Java Developer Training, Balicamp Recruitment Center, Surabaya Feb 2007 - Apr 2007
  • Cisco Networking Academy, Sekolah Tinggi Teknik Surabaya Oct 2005 - Jan 2007
    Courses include CCNA 1 Networking Basics, CCNA 2 Routers and Routing Basics, CCNA 3 Switching Basics and Intermediate Routing, CCNA 4 WAN Technologies
  • C Programming Course, Informatics Education Centre, Surabaya Feb 2002 - Apr 2002