I create useful software with teams of skilled, hard working, good natured professionals. It's the bread and butter stuff of my career and it doesn't seem to get old.
I also love teaching, tutoring, mentoring and instructing. I've found myself involved with Rails Camp, Rails Girls, InstallFest, Development Hub, Python Study Group, C/C++ Study Group, and General Assembly.
I've worn various job hats in small businesses. Let's see. 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, but I feel old now thanks.
Senior developer roles tend to involve this skill and 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.
Programming 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 don't claim to be great at design and I hold a deep respect for those who are. I can do a little and I'd love to learn more.
I read a stack of managerial books once that inspired an interest in this challenging role. Let me throw around some words I like. Meaning, purpose, autonomy, productivity, efficiency, effectiveness, failure, validation, expectations, visibility, empowerment, simplicity, energy levels, exercise plans.
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 really like meeting the customers and clients 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.
I loved Ruby when we first met around 2001, and then Rails came along. Hello career. Rails, Sinatra, writing web sites with Middleman, spamming APIs with Typhoeus, solving problems with Faye and Redis. The thing I like best about Ruby is how quickly you reach a solution to a problem you're having.
Node, Gulp, Express, Cuke, Mocha, Nyc, NSP, Eslint, Sequelize, PM2, Keystone, Co and generators and Bluebird promises.
HTML5, CSS3, SVG, SASS, HAML, Slim, vendor prefixes, shivs, progressive enhancement, mobile first, LiveReload, responsive designs, Android and Mobile Safari, a million IE virtual machines.
Layers, masks, drop shadow and emboss, save for web and devices, weird arcane keyboard shortcuts. You love it.
Interface builder, breakpoints, view controllers, transitions, ARC, developer certificates. Just drag and drop that library in there, a'ite?
An old hobby. Boost, googletest, the rule of three, const correctness, resource management, stack unwinding bugs.
Say yes to empowered lil teams, red-green-refactor cycles and incrementally releasing to the glow of a pretty green build light. Yes!
Also a random grab bag of things professionally: Java, Python, Perl, assembly, Git, Bash, Vim, Emacs, Spacemacs, etc. Recently I've been learning a little Elixir, Haskell and Clojure (because I like functional programming in theory even if they over-abbreviate).
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.
My time was spent explaining tricky concepts to people, lesson planning, and assisting, advising and mentoring students.
I learned how barcodes and data matrixes 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.
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.
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.
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.
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.
I finished off a RoR Facebook/Bebo app, completing the feature set, fixing outstanding issues, and deploying it for the client. I rewrote some back end functionality to make it simpler and more reliable.
I helped build a start up company from humble beginnings sub-letting in a cramped space to a multi-million dollar company sporting some superstar developers of the Sydney web community.
I designed and developed multimedia rich web applications. I coded Rails, Python, ActionScript, architected, interviewed and helped manage the team.
I designed and developed billing software for telephone switches. I improved a telephone record transfer system. I worked in a team of 5-6 developers and 2 systems testers with languages such as PHP, Java, Ruby, C, WSDL, Bash script and SQL.
I also managed the source code management system and build procedure for all the company's projects.
I co-supervised two lab classes of around 20 students each. I also ran a popular after hours consultation for students having difficulties with C++ or Python. I gave a lecture introducing Ruby to Python programmers.
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.
University Admission Index 97.8, Best in Computing Studies. That's right. Best.
I love spending time with my kids, hacking on my own code, reading awful self help books, drawing pictures that are relevant to those around me, writing poetry and stories at night time in proximity to others who are doing likewise, playing computer games that require perseverance and skill, life drawing, hanging out in swamps, incidental cycling, trying to be witty online, and using Oxford commas.
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 coworker 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, 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 Flash Developer, 2010