Brendan Molloy

Göteborg, Sweden

+46 76-885 69 98

brendan@bbqsrc.net

Summary

Passionate professional software developer with strong communication skills and the ability to learn quickly. Able to communicate requirements with both technical and non-technical stakeholders. Committed to high-quality, reusable code and user experiences that will stand the test of time.

Employment History

Senior Software Developer
The Techno Creatives 

December 2017 – Present

A broad array of projects, including an "analogue smart-watch" using Bluetooth to receive data from Android/iOS devices. Implemented OpenAPI v3-based projects and code generation.

Role quickly developed into a quasi-architect role. Have had the opportunity to mentor junior devs.

Consultant
Divvun (University of Tromsø, Norway) 

2009 – 2017

Long-term client. Projects mostly relating to speller technology for indigenous and minority languages (particularly Sámi and northern Canadian aboriginal languages) such as spellcheckers or custom software keyboards.

Working on several small contracts throughout 2017. These projects have used: Python, C, C++, Objective C, Swift, Java, JNI, JavaScript, and a variety of obscure and less obscure build tools. Platforms include: Windows, macOS, Linux, Android, iOS and the web.

Some of the projects below involved subcontractors to supplement the work while I took on the role of CTO of Localift. Recent projects include:

  • 2017: Implement a versatile package manager for managing all components of the Divvun ecosystem, starting with Windows support (Rust, C#).
  • 2017: Deploy keyboards to Windows 7–10 environments, with additional keyboard management tool. (Inno Setup, Rust, Python, code signing, blood, sweat, tears)
  • 2017: Port a C++ speller library to Rust (Rust, C++)
  • 2017: "MacDivvun" spellcheck service for macOS (Swift, C)
  • 2016: Create speller web API in Node.js for use by journalism clients (JavaScript, C++)
  • 2015: Update C++ speller library hfst-ospell to support mmap loading of spellers to support iOS (C++, Autotools, blood sweat and tears)
  • 2015: Port Android default keyboard to support custom locales and custom spellers (Java, C++, JNI, Autotools, sometimes crying)
  • 2015: Fork an open source iOS 8 keyboard to support custom locales and custom spellers (Swift, C++, Objective C, Autotools, also sometimes crying)
  • 2015: Create kbdgen project to support generating keyboards from standard templates for iOS, Android, Windows, macOS and Linux (Python)

Chief Technology Officer
Localift

April 2016 – May 2017

Responsible to the development and deployment of a ride scheduling and monitoring app for Android and iOS, including a backend built on Node.js and PostgreSQL. Built and managed small team from June 2016.

Developed minimum viable product alone for Android, iOS and backend alone over first three months. Rapid development of native apps was made possible due to strong adherence to functional reactive programming principles (Rx) and reliance on code generation (OpenAPI v2). Approximately one-third of the current code bases for iOS and Android consists of code generated from the same base templates, limiting code duplication and maintenance.

Required to leave company on orderly but unilateral terms due to inability to receive salary.

  • App features include: lift tracking, lift scheduling, mapping integration (geocoding, place search, map interactions), friend lists, groups, messaging, push notifications, calendar integration, Facebook integration
  • Built and deployed iOS (Swift), Android (Kotlin/Java) and Node.js (JavaScript) backend alone in early sprints
  • "Acceptance Test Driven Design" approach using Cucumber as cross-domain feature description language and automated testing language
  • Infrastructure has significant coverage by unit and integration tests
  • Maintain features including: lift tracking, friend lists, geocoding (GIS), group management, authentication, SMS infrastructure, email infrastructure
  • API nodes driven by OpenAPI v2 schemas and high-performance routing
  • Take part in interaction between founders, stakeholders and potential investors
  • Implement and manage continuous integration infrastructure
  • Deploy and manage production servers (API nodes and database)

Senior Software Engineer
Avoka Technologies

July 2011 – April 2014

Full time research and development position, initially focused on adding a new output mechanism to an XML-based form design and deployment product that initially could only render to PDF, to achieve full HTML5 rendering support across all major desktop and touch browsers.

In mid-2013, promoted to senior role. Shifted to working on a new product focused exclusively on HTML form outputs, with HTML as the document language (as opposed to XML) and AngularJS as the framework for developing the editor and form dependencies, and extensive use of LESS for styling, including as the language used for serialisation of styles.

  • Heavy focus on JavaScript development for managing interaction model of forms
  • Large amount of XML/HTML parsing and generation
  • Backend coding in Java to support generation of HTML from XML data
  • Enterprise environment with customer interaction
  • Strong focus on modern, interactive user experiences
  • Forms supported on all modern browsers, and IE8–IE11

Programming Officer
Pirate Party Australia

June 2012 – August 2015

Volunteer position, leading a group of programmers on various projects such as internal party system development or projects in the public interest.

Google Summer of Code Participant
Apertium

May 2011 – August 2011

A Google Summer of Code project completed for a natural language project called Apertium. The project entails the development of a quality control framework to better control the integrity of morphological dictionaries in a methodical manner, not unlike unit testing for programming languages.

Parts of this project are still in use today by organisations such as the
University of Tromsø.

  • Significant XML manipulation
  • Development of XML schema for statistics storage format
  • Web page and graph generation for reading statistics visually
  • Create testing applications including coverage, regressions and ambiguity
  • Experience using subversion and git

Further Information

I use git, but can use SVN if coerced. I generally develop on macOS, but am flexible in which operating systems and IDEs I use. I've been using Visual Studio for C# lately and it's honestly quite nice.

As a cross-discipline developer, I have experience with building web projects, efficient web backends, embedded projects, terminal-based applications, test harnesses, native apps for mobile devices, and desktop apps. As a consequence, I am fairly proficient in several programming languages.

In the last 3 years I have been required to use in a professional context (in alphabetical order): C, C#, C++, Java, JavaScript, Kotlin, Objective C, Python (2–3), Rust, Swift (2.3–4).

Tech buzzwords I've interacted with recently include: OpenAPI, GraphQL, React (and React Native), Redux, Rx, MVVM, functional reactive programming.

Specific examples of suitability for a role or proficiency in a given context may be provided upon request.

Education

2016
Bachelor of Science in Information Technology, with Distinction
University of Technology, Sydney