Getting Started With Confidence
Getting started as a software developer requires some research before you can do much, but learning through solving problems will help you become productive and proficient faster... Read more
I'm an executive leader with 20 years of experience in Software and Network Engineering spanning Australia and the US. As Chief Engineer at x15ventures in Sydney, I built the engineering team that builds and scales the ventures. Promoted to Distinguished Engineer, Retail Banking Services, I defined the group Cloud Native and API Strategy to drive the transformation toward a micro services cloud architecture for CBA Group. At Apple, in Cupertino, I was responsible for the engineering teams that developed the Mail, Contacts, Calendar, Reminders and Settings apps, the out-of-box device setup experience, and the iCloud Data Protection frameworks. I spent time at Amazon Web Services in Seattle and Ireland working on applying machine learning to network monitoring and anomaly detection at a massive, global scale. Outside of work I'm a father, an astrophotographer, musician and maker.
I lead teams to solve complex problems and achieve impactful outcomes by being an integrated part of the problem solving process and the development of talent within teams. I pride myself on staying active as a coder and technical contributor either on the job or through side projects to keep my skills sharp and knowledge relevant. When leading engineers in an executive capacity, my role is to bridge between what the business wants and what the engineering team can deliver. Crucial to building trust and confidence within the team is being able to talk their language, understand the complexities in their work, and to enjoy the pursuit of excellence through software engineering.
I'm a driver by nature and have learned how to modulate my management approach to suit the individuals that I'm working with and their own style, capabilities, and confidence level. I don't have a prescribed management style, but instead strive to build learning organizations through leveraging a shared self, organizational and situational awareness. Each team is different, every person an individual, and each challenge we face will require a different approach. The most creative and innovative solutions require us to leverage experience and embrace ambiguity.
Distinguished Engineer
Building great digital experiences and leading the market requires an API layer that consistently and intuitively exposes the underlying capabilities and data that powers the organisations products and systems. In my role as Distinguished Engineer at CBA Retail Banking Service I defined the group's Cloud Native and API strategy; a North Star for how to evolve the complex banking landscape toward an increasingly technology and software driven organization.
Snr. Eng. Manager
Remained a hands-on contributor of code while leading an organization of 50 engineers. Delivered many sessions at WWDC and worked on the initial version of Apple Pay, App Store and Software Update. As a Senior Manager in iOS, managed the Mail, Contacts, Calendar, Reminders, Settings and Setup Assistant (out of box experience) apps as well as the frameworks for Accounts, Authentication and Mobile Device Management. Directly responsible for the design and implementation of iCloud Family Sharing, Two Factor Authentication for Apple ID, and iCloud Data Protection.
Snr. Eng. Manager
Lead a global organization of 50 software engineers, system engineers, and data scientists to build, deploy and maintain the software that monitors the global Amazon Web Service (AWS) network. Lead a fundamental shift from threshold based monitoring to machine learning applications to detect anomalies at a massive scale with teams in San Jose, Denver, Seattle and Dublin, Ireland.
Chief Engineer
As the first Chief Engineer at x15ventures, I built up the engineering team that delivered the first few in-house built ventures. x15ventures is CBA group's startup builder and scaler subsidiary. Our mission was to show that a high quality product can be built in much less time by using modern tools, languages and workplace environments; and to then translate these lessons back into the bank to improve software engineering across the group.
CSE-3
Started at Cisco straight out of high school in a logistics support coordinator role. Spent nights and weekends in the lab learning everything I could about Cisco's hardware and Software. Became one of the youngest ever Cisco Certified Internetworking Experts within a year. As a Customer Support Engineer, remotely troubleshot, and resolved problems for Cisco customers.
I help organizations make technology choices that are aligned with their vision and realize growth potential. I've learnt to develop frameworks for decision making practices that empower individuals and teams to arrive at sound technology choices through accountability and autonomy. I can lead an organization through the key milestones of their growth from delivering an minimum viable product, to readying that product for broad market penetration, to scaling up the workforce and infrastructure to support growth, and the continued evolution and reinvention of a product or service. I'm experienced in enacting architectural shifts to divest non-core activities and increase efficiencies, and I've worked extensively with teams to plot a course through transforming and modernizing their front-end, native app and back-end code bases and infrastructure.
I can increase the delivery capabilities of an engineering organization through hiring, talent development, organizational restructuring and performance management. Building trust between managers and reports, establishing open dialogs for feedback, and instilling a culture of sincere appreciation and recognition enables a company to emerge stronger from any challenge. I believe strongly in the practice of situational leadership with appreciation for the different social styles present in a workforce. I am able to modulate the level of directive vs. supportive input I provide to match the capabilities vs confidence of a team or an individual. I've created, restructured and grown teams in the US, EMEA and APAC markets and am sensitive to the cultural strengths and opportunities to build diversity in thought through global expansion.
I can be hands-on when a team needs deep technical guidance, or hands-off when a team can arrive at the solution but needs organizational help realizing that outcome. I remain an active software developer and code regularly in Swift, Objective-C, JavaScript with NodeJS or React, and C. Keeping my coding skills sharp allows me to dive deep into solving an architectural problem at a whiteboard, or a code-level problem with an engineer. Paramount to my ability to be successful in any role is being the bridge between the technical language and concepts of an engineering organization, and the many other functions within the organization. I achieve this through articulating concepts and outcomes in a way that resonates with my audience by first understanding their concerns, motivating factors and mental model of the problem or situation.
Getting started as a software developer requires some research before you can do much, but learning through solving problems will help you become productive and proficient faster... Read more
Rapidly evolving paradigms, languages and technologies create in an innate desire to rewrite old code. Outside of very specific circumstances, the urge to rewrite rather than incrementally improve is an anti-pattern that slows down the pace of delivery and puts the business at risk from subtle logic lost in a rewrite.
The relentless pursuit of simplicity is the discipline to avoid initiatives that are not core to the mission of your business, the dedication to abstract away all complexity from the customer in achieving that mission, and continually divesting all activities that are not central to how you provide value to your customers.
Leveraging a mental models allows us to build software that surprises and delights the user by avoiding the trap of functional yet frustrating software.
We make difficult conversations unnecessarily worse for all parties by delaying, procrastinating and ruminating. Don't delay, but do prepare enough so that you can confidently own the message you're conveying. Remember that everyone in the room is human, and after the meeting follow up to ensure clarity and progress toward the outcome you seek. If handled well, trust will be forged between both parties.
Social Style and similar typologies give you a framework for understanding the personality archetypes that exist in the workplace. From this framework you can strengthen your ability to manage to different styles as well as how to your own style to suit a given situation. Learning about social styles raises awareness of the leadership weaknesses that are apparent in your style.
In Crucial Conversations, the authors introduce the Agree, Build and Compare framework for guiding conversations towards agreement. These are the three modes we can assume as we prepare to respond to someone in a conversation. You agree when something is said that you truly agree with, you build upon statements you agree with but feel the need to add more detail to, and you compare between your view and the other persons view when you disagree.
Structuring an organizing with teams that are assigned ownership of value-drivers (products, features, services), and individuals that are appointed as directly responsible for specific outcomes sets up the foundation for self-organization, empowerment and autonomy. Ownership and accountability are related but crucially different.
Hand-writing your daily, weekly or ad-hoc todo lists introduces a surprisingly effective physical tax that prevents that list growing beyond what is achievable. Two years ago, I switched to hand-writing my daily to-do list and I find it to be one of the most important foundations to keeping me on track and helping to maintain a sense of reality about when I can commit to getting things done. Prior to that I had used countless to-do apps, and before then was trapped in the inbox-as-a-todo-list fallacy.
When I write, I start by defining the single purpose of the document and then I'll write just a few sentences that capture the key points I want to make in the introduction and the three or four supporting paragraphs. These few sentences are encased in square brackets and become the blocked-out structure of the document. Scroll down to see the blocks I used when writing this document. With this framework established, I then write the paragraphs that expand on the blocks one paragraph at a time.
Writing to a fixed-length is an exercise that benefits the author by forcing you to distill your thinking down to the essence of the idea you want to convey. Through this process you become clearer and more confident in your own thinking. The result is a document that is crystal clear, that will be easy for the reader to grasp, and that you can leverage to gain traction for your idea.