I create useful software with teams of skilled professionals. It's the bread and butter stuff of my career and it doesn't seem to get old. I'd like to continue to do that for the foreseeable future.
I also love teaching, tutoring, mentoring and instructing. I've been involved at Rails Camp, Elixir Camp, CampJS, Rails Girls, InstallFest, Development Hub, Python Study Group, C/C++ Study Group, and General Assembly.
I am not available to live anywhere except Sydney as I have a young family, however I am experienced at working remotely.
I've worn various job hats in small businesses. Programmer, release manager, trainer, project manager, systems administrator, software architect, lead developer, company secretary, director, adult education instructor.
It has been great fun trying my hand at all these different roles, and now I feel old, thanks.
Coding was my feeder passion. Late nights staring at a glowing screen, taking joy in the touch of creation. Since then I've consolidated my skill through university training, corporate training, team work, and constant self education. I practice writing code that is extremely clear, consistent with what's around it, type checked and automatically tested, reliable, and maintainable.
Instruction and Mentoring
Senior developer roles involve this skill yet it's never formally trained, so I took advantage of training and practice at General Assembly to further develop myself in this area. Boy did I learn a lot. It was very humbling. I improved a lot as measured by my NPS score.
Management and Team Building
I've had some experience on and off in this challenging role throughout my career. As I grow more experienced and confident over the years, I find the prospect of nurturing and motivating a team of clever cookies more appealing, and one day I know I will take this career path.
Solutions Design, Software Architecture and UX Design
I've helped architect telephone billing systems, media rich web applications, content management systems, office control systems and social mobile applications. I've jointly conducted and recorded user interviews. I love meeting customers who benefit from the software I write, before and after they use it. I strive for consensus and clarity, clear priorities, and decision making that is deeply grounded, empirical and pragmatic, and iterative processes that produce good tools for the people who have to use them.
Tools of the Trade
I loved Ruby when I first found it around 2001, and then Rails came along. Hello career. Whipping up web sites, APIs and static sites, spamming APIs, munging data, solving problems. The thing I like best about Ruby is how quickly you reach a solution to a problem you're having. It's still the best "problem solving" language I know. It works so well as glue between other systems, a shell script replacement, or a workhorse for processing text or other data.
A lot of programmers are picking up Elixir because it's got a great syntax, immutable data structures, pattern matching, mature tools, and attractive performance characteristics for web development. If I started a new web service tomorrow, I'd start it in Elixir and Phoenix without any reservations. I've used it professionally since 2017.
Node, Gulp, Express, Cuke, Mocha, Nyc, NSP, Eslint, Sequelize, PM2, Keystone, Co and generators and Bluebird promises.
HTML5, CSS, SVG, SASS, vendor prefixes, progressive enhancement, mobile first, LiveReload, responsive designs, Android and Mobile Safari, virtual machines, BrowserStack.
Layers, masks, drop shadow and emboss, pixel alignment, save for web and devices, weird arcane keyboard shortcuts.
Interface builder, breakpoints, view controllers, transitions, ARC, developer certificates. Drag and drop that library in there and statically link it.
An old hobby. Boost, googletest, the rule of three, const correctness, resource management, stack unwinding bugs, the ABI, compile to assembler and stare at it in awe.
Empowered little teams, red-green-refactor cycles, incrementally releasing to the glow of a pretty green build light.
Other things used professionally: Java, Python, Perl, assembly, Git, Bash, Vim, Emacs, Spacemacs, MS Code, too many things to list really.
Senior Developer at 3P Learning nee Blake eLearning
Senior Developer at Small Multiples
I learned a lot about Node, ES6, Express, Ava, Mocha, D3, Leaflet, Google Maps, Mapbox, React, Redux, PM2 and Keystone DMS. I wrote and managed Ansible based AWS deployments and some Git based Heroku ones too.
Technical Instructor at General Assembly
My time was spent explaining tricky concepts to people, lesson planning, and assisting, advising and mentoring students.
Contracted Developer at Shippit Pty Ltd
I learned how barcodes and data matrices work and the Ruby and C libraries that produce them. I liaised with AusPost to implement parcel labelling to meet their requirements. I helped advise the start up business on hiring and technology. I built out some Rails administrative features.
Software Engineer at Studiosity nee YourTutor
I helped stabilise and expand a web based online tutoring platform for school students. It's pretty cool that it all works straight out of a web site with live chat and interactive drawing, even all the way back in time to IE8.
I used a lot of AWS, Ansible, Socket.IO, EventMachine, Redis, CoffeeScript and of course Rails.
I also did some design and UX things like travelling and interviewing clients, watching students use iPads, writing up nice summaries, sketching and presenting.
Developer at Protein One
I hooked up with this cool little design studio where I helped build WordPress sites for small businesses and an interactive children's lit application for iOS called Dandelion.
Director at We Are Brand New
I teamed up with a few friends to start a business that specialises in building early stage ideas for interactive web based products, from concept through to release candidates, including UX, IA, branding, design, rapid prototyping and iterative improvement. Control freaks I guess.
I learned about client liaison, business structuring, accounting, branding, marketing, business planning, Sencha Touch, Backbone.js, Spine, CoffeeScript and PhoneGap.
Senior Software Developer for REA Group
I helped interview and build an agile team and lead it to produce HubStudio, a real estate agency focused white labelled DIY web site CMS written in Ruby on Rails.
ThoughtWorkers and some fantastic REA developers from Melbourne trained us on a complete agile software development process including card walls, pair programming, red-green-refactor cycles, CI servers, BDD and incremental delivery.
Software Developer for Snepo Research
Ruby on Rails, Facebook/Bebo API integration
Software Engineer for TileFile
Python, Rails, ActionScript, interviewing and managing the team
Software Engineer for Symbio Networks
PHP, Java, Ruby, C, WSDL, Bash, SQL, dependency build tools
Lab Supervisor for UNSW CSE
C++, Python, Ruby
Bachelor of Engineering (Software Engineering)
I started at ANU and finished at UNSW with second class honours first division (whatever that means). I loved AI, distributed systems, 3D graphics and algorithms.
Year 12 Certificate, Narrabundah College, ACT
University Admission Index 97.8, Best in Computing Studies.
I love spending time with my kids, hacking on my own code, learning languages, roller skating, going to drama classes, reading sometimes awful self help books, drawing pictures of people, writing poetry and stories while sitting around a fireplace, playing computer games that require perseverance and skill, life drawing, hanging out in swamps, commuting via bicycle, helping my resident PhD student with her R, trying to be witty, and using Oxford commas.
Greg is extremely capable and knowledgeable. He has a deep understanding of many of our more complex systems, and is very good at thinking about difficult architectural problems and ways that we could be doing things better and smarter.
Greg produces work of an exceptionally high standard. He is passionate about code quality, and about keeping systems as simple as possible and easy to understand for others (or our future selves). I always know that if Greg is working on something, it is in safe hands.
Greg is friendly and approachable. He is great at explaining things to others and is a pleasure to collaborate with on projects.Alastair Pharo, Engineering Team Lead and Manager at 3P Learning, 2022
Greg is the best developer I have worked with.Sharon Gray, Production Manager, 2012
I worked in Greg's team while he was the lead developer for the server development team. Greg was very approachable, open to discussion, passionate about technology, and I was impressed with his knowledge and intelligence. He will be an asset to any technology company.Fiona Lim, Senior Programmer, 2010
Greg's attention to detail makes him an excellent addition to any team. I was always impressed with his ideas and code, making my life easier as a sysad to release the software. His extra effort to ensure code made it to production bug free didn't go unnoticed.Jenny Gordon, Senior Systems Administrator, 2010
Greg was the one who got me started on one of the most important tools I employ nowadays on most of my jobs: Ruby. Sharing insights with him early when I was still learning the language pushed me forward to learn more.
Apart from that, he's an excellent person to work with. As his co-worker I had a really enjoyable time, at times cooperating, and at times reporting to Greg directly.Julio Cesar Ody, Senior Systems Engineer, 2010
Greg is an exceptional Software Engineer and Manager. He is smart, open to new ideas and technologies and has a talent for understanding issues and requirements and stating them in concise and clear language.
Greg's code is wonderful. He is a programmer who knows his trade and produces software of outstanding quality. Greg was a pleasure to work with and I would thoroughly recommend him.Sara Falamaki, Senior Software Engineer, 2010
While working with Greg I was ever impressed with his approach to software development. Beyond being one of the sharpest engineers I have met, Greg was always able to convey complex problems to any audience. He always demonstrated great patience with his peers and was an excellent mentor to those around him.Simon Rodwell, Lead Frontend Developer, 2010