Alex Bowe

Email : bowe.alexander@gmail.com
Blog : www.alexbowe.com
Twitter : @alexbowe
GitHub : www.github.com/alexbowe

  • Researching succinct data structures and parallel algorithms for scalable genomic analysis. Reduced a 32GB problem to a 5GB problem in memory.
  • Academic with industry experience, working on low-memory AI, physics and development tools for games, and web database applications.
  • Designed and delivered curriculum for Hyper Island‘s Digital Data Strategist course in Stockholm (as an invited lecturer).
  • Four years tutoring and leading teams of tutors underneath me.
  • Received Knuth Reward Check for finding an error in The Art of Computer Programming Volume 4A, and proposing a fix.
  • Achieved highest award for every subject at university, and the highest honours thesis score in my year.

Talks

  • Alexander Bowe, Kunihiko Sadakane, Taku Onodera, Tetsuo Shibuya,
    Succinct de Bruijn Graphs,
    Workshop for Algorithms for Large-Scale Information Processing, 2012
  • Alexander Bowe, Kunihiko Sadakane,
    A Simple Parallel Algorithm for Tree Functions,
    Asian Association for Algorithms and Computation, 2012

Papers

Education

Ph.D. in Computer Science (Succinct Data Structures) – in progress
National Institute of Informatics, Tokyo, 2014 (expected)
GPA: N/A

First Class Honours in Computer Science (Information Retrieval)
Royal Melbourne Institute of Technology, Melbourne, 2010
GPA: 4.0

Bachelor of Computer Science (Computational Mathematics) with Distinction
Royal Melbourne Institute of Technology, Melbourne, 2009
GPA: 4.0

Education Highlights

  • Developed a succinct representation of a de Bruijn Graph, reducing the memory requirement of a human genome assembly to 5GB (from 32GB).
  • Developed a generalised parallel GPU algorithm for tree problems of a certain form.
  • Wrote my honours thesis on Multiary Wavelet Trees in Practice – a compressed text index never previously implemented or analysed empirically, but used frequently as a theoretical device in proofs. Discovered an entirely new data structure in the process.
  • Used Hadoop and NLTK to implement an automatic, distributed keyphrase extractor.
  • Researched and presented summary of MapReduce framework for GPUs in CUDA.
  • Implemented and profiled a small Database Management System in C
  • Implemented a lexer and parser for a toy language using Flex and Bison.
  • Implemented a simulation of an operating system process scheduler.
  • Researched and wrote an essay about the origins, rationale and practicality of Erlang.

Employment History

Hyper Island
September 2012 – Current
Invited contributor for a Digital Data Strategist course, designing and delivering curriculum which focused on algorithm design and scalable analysis. I also assisted the students with the project ideas and implementation.

Infinite Interactive
August 2009 – September 2009
Worked on the game Puzzle Quest 2. I established a framework for particle systems using Lua, easing the creation of complicated effects, and created a graphical tool in C# to define and visualise cubic splines. Prior to this, paths were specified numerically, and there was no way of seeing it until the game was compiled and running. This enabled the job to be done quickly by the artists rather than the programmers. I also redesigned a memory-efficient, incremental A* search in C++, which reduced memory use by approximately 89% on the Nintendo DS.

Royal Melbourne Institute of Technology
March 2007 – November 2011
During my studies I held the position of head tutor for Computing Theory. My duties included delegating tasks among other tutors, and designing curriculum. I also delivered material as a tutor for several subjects, including Operating Systems, Assembly, and Software Engineering. This contributed to my leadership skills, clarity of explanation, and confidence in public speaking.

Serraview
September 2010 – November 2010
Wrote automated component and unit tests for a web application. These were directly guided by the requirements document. I documented untestable requirements, and provided advice to make them testable.

Infomedia
October 2009 – February 2010
Worked on a web database application in Adobe Flex, with a PHP and MySQL backend, utilising an MVC framework. Here I proposed the use of a unit testing framework, and provided test templates.

Open Source Contributions

  • libcds2 : Succinct Data Structure Library. Architecture and project management.

Activities

  • Blogging about programming, mathematics, and productivity.
  • Co-organised bi-weekly discussions on algorithms, including professors and students from University of Melbourne and Royal Melbourne Institute of Technology.
  • Learning Japanese using statistical analysis of corpora.
  • DJing and event organising in Shibuya.

Awards

  • Received Knuth Reward Check for finding an error in The Art of Computer Programming Volume 4A, and proposing a fix, 2013
  • Informally noted as the “best CS honours student” of 2010 by several professors, 2010
  • Vice-Chancellor’s list for Academic Excellence (finished in the top 2% of RMIT Higher Education students), 2010
  • Vice-Chancellor’s list for Academic Excellence (finished in the top 2% of RMIT Higher Education students), 2009
  • Graduated with Distinction (had a GPA higher than 3.0), 2009
  • CS&IT award for Academic Excellence in the final year of Bachelor of Computer Science at RMIT, 2009
  • CS&IT award for Academic Excellence in the second year of Bachelor of Computer Science at RMIT, 2008
  • Hoang Huy Pham memorial prize for Academic Excellence in the first year of Bachelor of Computer Science at RMIT, 2007
  • University of New South Wales Australasian Schools Mathematics Competition High Distinction (top two percentile) medal, 2004

Keywords

  • Interests: Succinct Data Structures, Algorithms, Embedded Systems, Compression, Information Retrieval, GPGPU, Parallel and Distributed Computing, Bioinformatics, Natural Language Processing, Machine Learning, Artificial Intelligence, Algebra
  • Languages: Python, Erlang, C, C++, CUDA, Java, Actionscript, M68K Assembly, Bash, Sed, Awk, Mathematica
  • Libraries: NLTK, NumPy, SciPy, Boost, STL, Thrust, PyParsing
  • Paradigms: Functional Programming, Object Oriented Programming, MapReduce, OpenMPI, OpenMP
  • Design: Design Patterns, Refactoring, Optimisation
  • Tools: Flex and Bison, XUnit, Git, SCons, Vim, IPython, Zsh
  • Graphics: OpenGL and GLSL, Gnuplot, matplotlib, Dot
  • Project Management: Scrum, Agile, Pragmatic Programming, XP
  • Other Interests: Marketing, Business, Finance, Trading, Psychology