It is rare that I use my blog to explicitly blow my own horn. I prefer to write about technology, leadership, and the good works of others, but I find myself in different circumstances now. I learned this week that my current position will be eliminated as of 31 December, 2022. After that, I will be available for my next role. Until then, I am actively looking in addition to winding things down where I am now.
Regarding my next role, I have taken nothing off the table. I am open to consulting engagements or full-time positions. I am also considering starting my own company, which would be a consulting firm with the intent to grow rather than remaining a one-person outfit. I am writing this post because LinkedIn profiles and one-page CVs rarely paint a complete picture, so this is a companion piece that is intended to fill in the gaps.
I have been in my current position for nearly six years. Given the size of the company, it has been a mix of leadership and hands-on technical work. Since we have always been eyeing growth, I skewed toward leadership, because it is important for a company to avoid single-threading functions through individual people as much as possible.
The company has changed a lot since I’ve started. Three years into my tenure, we were acquired and the line of business I was hired into was ended. At that point, my role converted to a more traditional CIO role. Prior to the acquisition, I was focused on building a geospatial data pipeline for our data-as-a-service product. That pipeline took field-collected data, processed it, and made it analyst-ready. The pipeline relied heavily on PostGIS and FME. My role was somewhat hands-on but my primary focus was building an effective team, which I think I did. By the time the DaaS was shut down, we were implementing AI/ML object detection in photos and videos to make media content searchable.
Before I delve too deeply into the technical aspects of my recent work, I want to focus on my approach to leadership. I subscribe to the Authentic Leadership approach, though I am not perfect at implementing it. That means I generally take a values-based approach to leadership and my primary value is helping the teams that I lead be successful. Success in the immediate sense means helping them be successful in meeting organizational goals and priorities by ensuring that they have the tools, knowledge, and understanding to do so. I am not interested in telling any one person how to do their job. It is far more important that they understand the definitions of “done,” “success,” and “excellence” and then let them innovate within those boundaries.
Success also means helping them prepare to grow in their careers after they no longer work with me or with the current organization. No one wants to be doing the same things ten years from now that they are doing today. It is part of my responsibility as their current leader to help them prepare for the future.
Finally, I see it as vitally important that my teams know what is important to me, not simply what is important to the organization. That doesn’t mean I dump my entire personal life on the floor for them, but it does mean they understand and see the basis from which I try to lead. This is important because I expect my teams to also hold me accountable. If I am not doing what I say, then I want them to call me out on it.
When my role shifted to being more of a pure CIO, the security aspect of my role was elevated. At that point, our platform had not had any kind of independent security audit performed, though we did have regular internal security checks, mainly in the form of penetration testing. After our acquisition, we had funds available to initiate independent verification, so I initiated a SOC 2 process. Over the next twelve months, I led a process of selecting auditor, performing an initial readiness assessment, addressing findings from that assessment, initiating the less rigorous SOC 2 Type 1 audit, and following that up with a SOC 2 Type 2 audit, which we have since maintained annually.
That process required coordination between stakeholder groups – primarily Engineering, IT, and Finance to define in-scope systems and implement necessary processes to improve our audit performance. Over time, our findings have reduced to only minor procedural ones and our evidence-collection time has been cut in half. I have leaned mostly on IT staff for the day-to-day work during the audit and they have risen to the occasion each time.
Additionally, we have engaged with an outside vendor to perform independent penetration testing. The bottom line from all of this work is that our platform is now independently validated as being demonstrably secure. It always was, because we have great engineers, but now our key customers don’t need to simply take our word for it.
Another aspect of my role is that I have been leading our professional services team. It is counter-intuitive to have that function under the CIO, but I spent 24 years prior to my current role as a federal consultant. Selling and managing billable hours is my jam so, in our product-oriented organization, it fell to me.
The professional services team has been a blessing. They have deep product knowledge and understand a variety of customer use cases. All I really needed to do was to clear the road for them so I set about developing and implementing process to give us better surveillance on upcoming work. I also collaborated with the sales team to increase participation in scoping calls by engineers, yielding better estimates and improving upfront customer expectations. We also implemented some automations between Salesforce, our timekeeping system, and Jira to streamline billing and give us better visibility into estimates versus actuals. Believe it or not, FME sits at the core of that automation. Spatial is FME’s super power, but if you’re only using it for spatial, you are leaving a lot of capability on the floor.
Another success related to professional services is that I developed and implemented our first recurring-revenue product for professional services. It is a managed services product with some flexibility built in to address occasional surges by customers. To make that a sustainable product, I drew on my previous life managing cost-plus federal contracts to design the managed services mechanism. In addition to simply getting professional services into the recurring-revenue game, it has also leveled out our resource usage and made workload planning much more predictable.
Our professional services engineers are each outstanding and, if there is justice in the world, they’ll be leading their own teams in the not-too-distant future, so I took seriously the mentoring part of my leadership described above to do whatever I could to prepare them for their futures. I am beyond excited for them.
It is important to note that about half of the professional services team operates out of Colombia as of this writing. Integrating them into the existing team was not without hiccups, but their presence has been nothing but a blessing for us. Supremely capable from a technical stance, the southern team has welcomed us into their culture and I will genuinely miss our daily interactions. Personally, I am a better leader for working with them. I will continue my Spanish lessons.
This is a classic CIO function. In my current role, it consisted of endpoint management and management of the various SaaS platforms we used (accounting, billing, CRM, etc.). In addition to the security work above, our biggest single challenge related to IT was migrating from a mix of on-premise and remote prior to the COVID pandemic to being fully remote since. We had some of the infrastructure in place in the form of mobile device management (MDM), but it wasn’t fully realized. The pandemic pushed us to lean fully into it.
We were already a Mac shop and Apple’s business support has been key. With our MDM (Jamf) instance registered with Apple, there is never a moment in the lifecycle of a MacBook where it is not under our management – from the time it comes out of the shrink-wrap and is powered on to the time we are offboarding an employee, we are able to fully manage them remotely (aside from actual hardware issues, which are rare).
Our remote-first approach was extended outside the US when we expanded our team to Colombia. This actually provided very few wrinkles and we are able to confidently say that our fleet of machines outside the US poses no greater risk than those inside the US.
Our IT team (two people), is enthusiastic about their work and is always looking for ways to improve. Our CEO paid me a great compliment when he told me that he never has to think about IT. The mark of a successful IT shop is to be as invisible as possible and I’m happy we’ve been able to achieve that through our growth.
This was a relatively new add to my portfolio. As we diagnosed blind spots in our understanding of product usage and other business reporting, I realized that the infrastructure from our old DaaS product could be re-purposed for internal analytics. FME remains a central workhorse, integrating data from all of our key systems (which are all non-spatial) into a BigQuery data warehouse, which replaced PostgreSQL from the DaaS.
While all of our systems have APIs, I opted for a data integration approach because building a spider web of APIs is often fragile and can fail exactly when you need it. The approach I selected pulls all of the key data into BigQuery, where we can use SQL to standardize analytics for delivery to business intelligence tools or others, such as Salesforce.
We had two main ways of populating the data warehouse: traditional ETL (though light on the “T”) via FME, and event streaming via Segment. The former ran on a daily cadence sufficient for most reporting. (FME can support better temporal resolution, but we didn’t need it.) The latter was more real-time for understanding more detailed product usage behaviors.
Data is always volatile and there was always tweaking to infrastructure, analytics, and reporting but we generally have succeeded in improving in-flight visibility. Again, a strong team has been essential and it’s been a joy to help solve this problem with them.
The data operations team also owned a key special project in which we migrated our billing system from a home-grown system to Stripe Billing. My role was primarily developing a phased approach based on classes of users and subscriptions. In practice, Stripe was far less easy to work with than it appeared during the evaluation phases and we ran into a lot of hiccups, especially around QA. The personnel doing the work were operating out of Colombia and were simply not going to accept defeat. The project manager there and I developed a great working relationship, to the point where we could wordlessly anticipate each other. That’s quite a feat operating over Zoom and in Google Docs from different continents. The experience raised the bar for me in expectations of remote team cohesion and has been a driving force for me. Thirty years into my career and working with someone over twenty years my junior, I learned something new. Always be open.
I could do a whole post on lessons learned from just the Stripe project, but I will leave it here.
My role in a large portion of the work described was team leadership, which is really as it should be. We are, however, still a small organization, so I also got my hands dirty fairly regularly. That mostly took the form of SQL, especially in BigQuery. BigQuery SQL is remarkably similar to PostgreSQL so that’s been a big help. I don’t crack open Postgres as much these days, but the production databases behind our product use it and I sometimes need to work there to validate data I’m seeing in the data warehouse. To date, there has not been any issue, so our ETL processes are solid.
I also built some Node tools to augment our ETL with regard to Stripe data and most of my API-level interactions with Stripe use Node.
All-in-all, I’d say 25% to 30% of my overall time is spent doing some sort of technical work. The rest is leadership, admin, and team management. That’s probably the right mix for someone with a magic “C” in their title in a late-series-A organization.
It’s been a great ride. I’ve gotten to work with some of the best people in the world on two continents. I have grown and been challenged as a leader. I have had to confront and reassess my own professional identity.
On a more practical level, I’ve learned a lot about the uniqueness of a product-oriented, sales-driven company. I have developed a respect for people who work in sales. I have gotten experience working with “offshore” teams and, because of my people-first orientation, I have grown to detest the term “offshore team.” There are only teams, and if you insist on an artificial division, then you don’t have a team.
This has been the ride of the past 5 – 6 years of my career in more detail than you’ll get out of my LinkedIn profile or my CV. I will be available at the start of 2023 and, if any of this has resonated with you, I would love to talk.