CodeConf 2017

22 Oct @ ICC, Kowloon

the hong kong programming conference
Organized by Codeaholics

For Hong Kong

It's a programming conference aimed at all programmers in Hong Kong.
We want to share our skills and opinions.
We want to inspire each other with our passion.
We want to build a closer, stronger community.

Early birds get FREE T-Shirt

Buy Ticket

we hk coders

  • We aim to provide a forum for local developers to share these skills, and inspire their peers.
  • With a mixture of local and international speakers, we provide talks which are targeted and relevant.
  • We believe that conferences don't need to be big and expensive to be valuable.
  • We believe that the Hong Kong developer community is skilled and diverse, but that often these skills end up hidden away in big organisations.


09:30 - 10:00


10:00 - 10:15

Opening Remarks

10:15 - 10:45

Davide Benvegnù

Go Serverless - Design Patterns and Best Practices

Serverless compute makes it is soooo easy to create an http endpoint or just run arbitrary code in the cloud.
But with great power comes great responsibility and often users make fundamental design mistakes that end up effecting their Serverless performance.

After a brief Azure Serverless services introduction, will dive into Serverless design principles and architecture considerations effecting performance and overall functionality.

10:45 - 11:15

Jamie Wilde & Taylor Host

Computer Vision & Machine Learning: Finding Runners

What is computer vision?
Can machines find runners in an image, locate their running bib and read the race number?

With RunnerTag we built a system to process race photos, identify the bib locations in the images, and read the race numbers.
We'll discuss the challenges to image recognition at this scale, and how we moved from OpenCV based Classifiers (HaaR LBP) to how we built and trained our own SSD Convolutional Neural Network.

11:15 - 11:45

Denis Tsoi

From Junior to Senior Developer: Lone Wolf to Wolf Pack

We will investigate the path of becoming a Senior Developer; such as forming attributes that define a successful developer, as well as developing frameworks to self-evaluate and improve your career progression.
From there, we will then touch upon how to call upon others to form packs that will help influence the culture of the company, as well as forming bonds and support networks to creating a positive and sustainable work environment

11:45 - 12:15

Tomas Tauber

Looking at Bitcoin and Ethereum from the Programming Language Perspective

This talk will explore Bitcoin "Script", a Forth-like language that is behind Bitcoin's transactions, and EVM bytecode, an instruction set for Ethereum's smart contracts.
The talk will describe features, limitations and various issues related to these programming platforms.
Lastly, the talk will briefly mention some alternatives and future developments.

12:15 - 13:30


13:30 - 14:00

Eddie Lau

Tech Team Culture - Panel Discussion

Will discuss on stage with Ben Cheng from Oursky, Steven Mak from Odd-e and Paul Gresham from Credit Suisse about their tech team culture.

Oursky, Odd-E and Credit Suisse are well-known because of their developer-friendly office environment, hiring strategy, employee benefits and pragmatic software development approaches.

14:00 - 14:30

Thomas Weiss

CQRS applied: implementation, challenges and benefits

Command query responsibility segregation (CQRS) is a software design approach that has gained a lot of traction recently.
Not only does it help in rationalizing application design, but it also brings many benefits in terms of maintenance, evolvability and testability.

In this session, we will share how CQRS was pragmatically applied to a real-world project, discuss which mistakes have been made along the way and highlight how it eventually improved our development and operation activities.

14:30 - 15:00

William Taysom

AwesomeRecord = Git + ActiveRecord

What if your little Rails App is quite complicated and not quite CRUDy?
What if it only ever runs once?
And yet what if you do need to rewind your app to a past state in order to branch off in a new direction?
How would you use ActiveRecord differently?

Our answer is AwesomeRecord: a heretical ActiveRecord wrapper.

  • Every transaction introduces a commit.
  • Key tables on entity_id and commit.
  • Remember everything that ever happened.
  • Go back in time or back to the future as you please.
  • Migrations? Gone! Instead of mapping tables to record classes, map record classes to tables.

See the promise – and peril – of ActiveRecord reflected through a bizarro requirements carnival mirror.
Chuckle at the thin man.
Gasp at the fat horror.
Stand in awe.

15:00 - 15:30

Bart Verkoeijen

Cross-platform .NET apps and microservices

With the amazing advancements of Microsoft embracing open-source, during this talk Bart will demonstrate how you can develop a cross-platform C# application on a Mac in macOS, that runs as a Linux container, and is deployed into the cloud as a Docker container, by leveraging .NET Core.
Showing the capabilities of VS Code, Visual Studio for Mac, true native cross-platform .NET, and Microsoft's Azure capabilities to run non-Windows based workloads.
Arming yourself with the know-how of using .NET microservices, so that you have yet another possible tool for the job.

15:30 - 16:00

Tea Break

16:00 - 16:30

William Wong

Creative coding X Machine learning

Machine learning tools have become more available and people who use programming skill for creative projects, e.g. generative music, visualization, interactive art, started adopting the skill.
In the talk, I am going to share a few tools artist and creative coders use, and why they like using them.

16:30 - 17:00

Kirill Pavlov

Boosting command line skills with python and awk

It is often required to manipulate the data as fast as possible, be it either column average calculation or simple join and filtering.
Servers often do not have convenient tools, such as Python (numpy/pandas) of R, moreover, the data might not fit into memory.

This talk shows how to make fast but inconvenient command line tools great again.
This is based on work done in Yandex and allows to process Gbs of data with one-liner commands.

17:00 - 17:30

Richard Cohen

Kotlin for Android

The biggest cheer at I/O 2017 was for the announcement that Google would be supporting Kotlin as a first class language for Android app dev.

We're very close to that being delivered in Android Studio 3.0, so - what is Kotlin?
Where does it fit in the Android world?
Did they do it just so they could finally hire Jake Wharton?

Why would you want to use it?
How does it compare either Java?
Why wouldn't you want to use it?
What does the future hold?

In summary:
A language overview, comparison with Java, and how to do Android dev with it

17:30 - 18:00

Pedro Pimentel

Agility is Unsettling

Adopting agile can cause quite a lot of turmoil depending on how companies are setup.

It’s something some experts in cultural transformation call Liminality, the quality of ambiguity or disorientation that happens in the middle stage of a ritual.
This process, as we know, causes fear, panic, depression and even some neuroses.
As Coaches, we want to help everyone transition this phase without much of those issues, so we need to understand what causes liminality and how to make it work for us.

18:30 - 20:30

After Party


The Ticket

** Early Birds get a FREE T-Shirt ! **

300 HKD including lunch

88/F, Credit Suisse, ICC, Kowloon, Hong Kong

Buy Early Bird Ticket

Join codeaholics slack group and speak code!

This was the site for 2017. Come back to the present!