Siyuan Wang

London, Greater London, United Kingdom

As an experienced Backend Engineer with expertise in Golang, I had independently designed and developed gambling games web service, which integrated with several micro-services and deployed to the AWS platform.

Participated in game development for the 15 members team, acted as the communication bridge within team groups. Designed software architecture, and implemented nearly 40% of functions.

Also, like to share the knowledge I learned, re-described the problems encountered, and published solutions in my blogs which had 200k page views from 2017 to 2018.


Experience

Software Engineer

Sliide
London, United Kingdom
August 2018 - Present
  • Introduced and implemented near 90% functionality of gRPC service skeleton for the two new micro-services using golang, and created the deployment pipeline in Jenkins which runs lint and vet tools to analyse the source code, runs unit test to check functionality, builds the service docker-images and deploys to Kubernetes platform.
  • Implemented a new auth token endpoints using golang which generates new tokens or refreshes the existing client’s token each requests using golang, the endpoints handled 800,000 requests per hour.
  • Found and fixed a bug which existed in the golang system for over four months and cleaned up 9 millions invalid records created due to the bug in the database without affecting to the runtime service.
  • Upgraded two outdated golang projects from go1.7.6 to the newer one go1.12.7, and fixed the bug that caused near 10,000 false timeout alerts per day due to golang version changed.
  • Optimised the docker file of build-tools, reducing the docker image rebuilding time from 19 mins to 2 mins for each builds in Jenkins pipeline.
  • Introduced docker-test package into five golang projects, simplified the test process without setup containers environment manually before testing.
  • Wrote the SQL queries on BigQuery which helps for the revenue team to get results from more than 2 TB of database.
  • Optimised and implemented new features in existing reporting python scripts, reducing the time to process 1,606,870,491 data events from 437 mins to 26 mins.
  • Implemented data collection scripts using python which pulls performance and revenue reports from nine different partners using their API, such as Google, Taboola, Facebook and so on. And then uploaded the data to AWS S3 and Google sheets for data storage and sharing with the team. The scripts saved 40 man-hours of for manual queries per month. Taught the data-team to seamlessly take over the codebase without any problems.
  • Rewrote old services code and docker files to reduce the image size from 918 MB and 1,626 MB to 23 MB and 42 MB, respectively, which reduces the bandwidth and speed up service startup when deploying new version.
  • Designed and built primary data migration flow and scripts using golang, which moved 880,382 data rows from EU Postgres DB into US's in 128 seconds, lower than 30 mins expected.
  • Built a temporary service using golang in one day, which replaced the main service and served over 200 requests per seconds during data maintaining period.
  • Implemented and integrated new top-up features into existing golang and python services within two weeks after starting this position.
  • Implemented and designed new HTTP service within one month using golang, also wrote the script in Jenkinsfile that tests the code, builds into a docker image, and then deploys to AWS beanstalk.

Senior Software Design Engineer

GrandPeak Technology Inc.
Taipei, Taiwan
January 2015 - June 2018
  • Designed and implemented gambling games web service using golang, which integrated with several microservices and could handle 8,000 requests per second.
  • Directed four partners’ developer teams to build APIs for our gambling game services integration, and solved problems encountered in using the APIs.
  • Deployed and managed gambling games web service to AWS platform crossing EC2, RDS, S3, and Elastic Beanstalk.
  • Designed and implemented the gambling math API server, providing over 120 APIs in 25 games, and created math-core integration framework, which reduced integration time from 5 days to 1 day using golang and C++.
  • Built API document generation pipeline using go-swagger, completing two API documents which a total of more than 120 API interface descriptions in swagger 2.0 specification.
  • Constructed internal continuous integration system (CI) using Jenkins and Gitblit, which managed over 17 projects build pipelines, saved compiling games time for three developers. Also taught team members to use Jenkins and git.
  • Designed slot gambling game framework, and implemented 90% game functions using Unity C#, which applied for developing in next 16 slot games.
  • Implemented a game client network library to communicate with gambling games web service using C#, the library used in 16 Unity games.
  • Implemented game lobby app using Unity C#, which integrated Firebase analysis and could load 16 slot gambling games. The app published for Android and iOS.

Software Engineer

International Games System CO., LTD.
Taipei, Taiwan
November 2011 - Sepetember 2014
  • Participated in the development of two Unity projects, working with more than 15 team members, which one of the project development for three years.
  • Acted as the communication bridge between the software developer’s, game designers, and game artists with 15 members.
  • Helped five artists to import art assets into Unity, and wrote shaders, post effect and 3ds max tool for artist’s requirements.
  • Taught five game designers using Unity editor tools to create game levels, and developed new editing tools base on requirements.
  • Solved problems encountered by 16 members when using SVN and Git version control system, including tool operations, conflicts handling and data loss caused by wrong actions.
  • Implemented 40% arcade shooting game functions, including game UI, IO, central framework, battle system, game events and game audio.
  • Implemented 80% custom game editor in unity, reduced complexity of editing level time for designers, likes battle editor, which edit monster properties, attacking player timing, monster weakness, etc.  
    • Game event system, includes if-conditions, logic operators, and game world affect actions  
    • Other helping editors, like to inform warning when switching build settings, notes showing when editing animation events, and so on.
  • Optimized game rendering and improved rendering performance 50% up from 30 fps to 60 fps
  • Defined game I/O interface and implemented I/O data communication via serial port using C++
  • Persuaded project manager and software engineer leader to use a new resource framework that decreased the time of building a new game setting files from 8 hours to 0.5 hours.
  • Designed an entertainment casino game framework, and implemented 90% game features using Unity C#.
  • Built an entertainment casino game prototype within three days using Unity C#.
  • Wrote Unity shaders and post-effects scripts to satisfy game artist’s requirements.

Education

National Dong Hwa University

Master of Computer Science and Information Engineering
Hualien, Taiwan
2009 - 2011

GPA: 4.32/ 4.50

National Dong Hwa University

Bachelor of Computer Science and Information Engineering
Hualien, Taiwan
2005 - 2009

GPA: 3.94/ 4.50


Skills

Programming Languages & Tools
  • Golang
  • C#
  • C++
  • Unity3D
  • HTML
  • JavaScript
  • Git
  • AWS
  • Docker
  • Python
  • PHP