London, England, United Kingdom
591 followers 486 connections

Join to view profile

About

Experienced Software Engineer specializing in backend software development with a strong…

Activity

Join now to see all activity

Experience & Education

  • Deliveroo

View Evan’s full experience

See their title, tenure and more.

or

By clicking Continue to join or sign in, you agree to LinkedIn’sUser Agreement,Privacy Policy, andCookie Policy.

Volunteer Experience

  • Computer Science & IT Mentor

    RMIT LEAD

    -less than a year

    Education

    Acted as a volunteer in the Computer Science & IT mentoring program; assisting students in programming and other core computer science skills. Developed and strengthened communication, problem solving and leadership skills through the mentoring experience. Supported and enhanced the learning experience of fellow students.

Publications

  • An Automated Assistant for Reducing Duplication in Living Documentation

    A dissertation created as part of University of Manchester's MSc programme.

    ABSTRACT...
    Acceptance Test-Driven development and Behaviour-Driven development are two
    software development methodologies that help software development teams to write
    better requirements specifications and to allow customers to convey their needs easily.
    Automation tools have emerged to automate this process and allow the specifications
    to be executed as acceptance tests for the software…

    A dissertation created as part of University of Manchester's MSc programme.

    ABSTRACT...
    Acceptance Test-Driven development and Behaviour-Driven development are two
    software development methodologies that help software development teams to write
    better requirements specifications and to allow customers to convey their needs easily.
    Automation tools have emerged to automate this process and allow the specifications
    to be executed as acceptance tests for the software. However, these tools have
    drawbacks that lead to difficulty in maintaining the specifications. Users of the tools
    are prone to mistakes such as repeating test scenarios since the writing of the tests is
    not automated.
    Duplication is an issue that stems from writing the tests manually. Test suites can grow
    to a large scale as a software development project progresses. It is easy to create
    duplication in large tests unknowingly. However, removing/searching for them is not
    as easy. By allowing duplicates to occur and stay, maintenance and readability issues
    would arise. This affects both the development team and the customers.
    This project aimed to reduce duplication in BDD specifications by experimenting with
    the Cucumber BDD automation tool. On top of that, the project also delivered a plugin
    tool to not only detect exact- and near-duplication in these specifications but also
    provide helpful refactoring diagnostics for them. Evaluation results showed that the
    plugin tool was able to not only cover the duplicates detected by human experts but
    also duplicates that went undetected.

    See publication

Projects

  • [MSc Dissertation] An Automated Assistant for Reducing Duplication in Living Documentation

    -

    Acceptance Test-Driven development and Behaviour-Driven development are two software development methodologies that help software development teams to write better requirements specifications and to allow customers to convey their needs easily. Automation tools have emerged to automate this process and allow the specifications to be executed as acceptance tests for the software. However, these tools have drawbacks that lead to difficulty in maintaining the specifications. Users of the tools are…

    Acceptance Test-Driven development and Behaviour-Driven development are two software development methodologies that help software development teams to write better requirements specifications and to allow customers to convey their needs easily. Automation tools have emerged to automate this process and allow the specifications to be executed as acceptance tests for the software. However, these tools have drawbacks that lead to difficulty in maintaining the specifications. Users of the tools are prone to mistakes such as repeating test scenarios since the writing of the tests is not automated.

    Duplication is an issue that stems from writing the tests manually. Test suites can grow to a large scale as a software development project progresses. It is easy to create duplication in large tests unknowingly. However, removing/searching for them is not as easy. By allowing duplicates to occur and stay, maintenance and readability issues would arise. This affects both the development team and the customers.

    This project aimed to reduce duplication in BDD specifications by experimenting with the Cucumber BDD automation tool. On top of that, the project also delivered a plugin tool to not only detect exact- and near-duplication in these specifications but also provide helpful refactoring diagnostics for them. Evaluation results showed that the plugin tool was able to not only cover the duplicates detected by human experts but also duplicates that went undetected.

    See project
  • [RMIT] Undergraduate Capstone Project [COSC2391]

    -

    Developed a real-time client-server application (based off of the game, 'Snake') using Java Sockets (initially) and Java RMI. The application is Java-based and the purpose of the application was to allow multiple players to run the game as if it was a real life application and test the student's knowledge on network programming whilst getting used to the architecture of remote method invocations. In addition, the game has a scoring feature to determine the winner of the game. This too had to be…

    Developed a real-time client-server application (based off of the game, 'Snake') using Java Sockets (initially) and Java RMI. The application is Java-based and the purpose of the application was to allow multiple players to run the game as if it was a real life application and test the student's knowledge on network programming whilst getting used to the architecture of remote method invocations. In addition, the game has a scoring feature to determine the winner of the game. This too had to be taken into account during the implementation phase.

    Challenges include:-
    -Dealing with network latency. How do we allow the players' screens to be as synchronized as possible?
    -Dealing with the size of packets/objects being sent over the network and how long would it take to process them before the data is displayed on the user's screen.
    -Keeping multiple connection threads alive and reduce dependency/low coupling & high cohesion.
    -Divide tasks between client and server. Who should send what?

Honors & Awards

  • Vice Chancellor's List for Academic Excellence in 2013

    RMIT University

  • Academic Excellence in the Bachelor of Computer Science

    RMIT University

  • Golden Key International Honour Society

    Golden Key

  • Introduction to Oracle9i:SQL

    Oracle

    Part of Oracle's Workforce Development Program.

  • Time Magazine's Person of the Year 2006

    Time

Languages

  • Malay

    Elementary proficiency

  • English

    Professional working proficiency

  • Chinese

    Elementary proficiency

More activity by Evan

View Evan’s full profile

  • See who you know in common
  • Get introduced
  • Contact Evan directly
Join to view full profile

Other similar profiles

Explore top content on LinkedIn

Find curated posts and insights for relevant topics all in one place.

View top content

Others namedEvan Sia

4 others named Evan Sia are on LinkedIn

See others namedEvan Sia

Add new skills with these courses

See all courses