What I Learned In One Year as CDO of San Diego

Maksim Council

Fairly recently, I celebrated my 1 year anniversary of being with the city of San Diego as the Chief Data Officer. Naturally, I’ve been reflecting on my first year in government, and one of the things that strikes me the most is the amount of things that I learned.

Some things I learned on my own – in many cases I invested in supplementary learning in order to succeed. Others I can directly attribute to conversations with my boss, Almis, my teammates in Performance and Analytics, the City’s IT staff, and so many others that if I list them all, this would be a spreadsheet, not a blog post.

To be completely honest – I had my hesitations about taking a local government job. I was worried I wouldn’t advance my technological skill, and potentially lose many of the marketable skills I possess. However, looking back on this year, taking a government job has proven to be one of the smartest and challenging things I’ve ever done. There is no other place I can think of that would push me so far out of my comfort zone, in so many different directions, while providing me the help and support to succeed.

Technical Skills


Tools for the Job. I’m proud to say that I have a very wide expertise in a diverse range of technologies, languages and stacks. I walked into this job with a preconception that my large toolbox can solve a variety of problems quickly. Instead, I quickly realized that in order to use my toolbox effectively, I needed to understand all the intricate non-technological complexities such as strategy, culture, processes, and even words used to describe things. What’s more, I had to expand my toolbox with more open source and not-so-open-source tools. The City is a large enterprise, and not everything can be solved by cloning a repo or a $30 a month subscription. This intangible skill of understanding City operations and figuring out the details of how to apply the correct technology has been one of my biggest learnings this year.

R Language. This past year, I learned the R language - the first data-focused language I’ve used. In addition to learning the language itself, I learned how to communicate research and data analysis through detailed and reproducible reports.

Google Apps Script. I wouldn’t necessarily say that I “learned” it, but I definitely became much more familiar with the capacities of Apps Script for handling large amounts of documents programmatically. This code ran a lot of our initial data inventory.

GIS. Through our wonderful GIS manager, ArcGIS and CartoDB, I became much more familiar with GIS operations and concepts. However, I would place myself very far from expert level.


Cybersecurity. Something we often don’t think about when it comes to cities is the massive need for cybersecurity. Cities are constantly getting hit and need robust and well-managed cybersecurity programs in place. I have become good friends with the CISO and the Cyber team in San Diego and learned quite a bit about their strategies, technologies and methods.

Enterprise IT. We often like to make fun of “antiquated” City technology like SAP and Oracle. However, these are still massive companies running multi-million dollar projects and are not going away soon. I’ve worked quite a bit with IT to understand the ecosystems and infrastructure that manage these large datastores within the City.

So Many Datastores. This brings me to the diversity of datastores within the City. From a technical level, I’ve been exposed to a variety of SAP, Oracle, Microsoft and ESRI products. This year, I’ve had lots of technology land on my plate. Even though this isn’t very sexy, going down the journey of learning these technologies has been a blast.

Networks. Working with IT to understand the City’s networks, I’ve learned a ton about the City’s DNS architecture, networks, configuration management, desktop management, Active Directory and so much more. The City also does a lot of cool things, such as producing its own TV station. We even have a truck that can pull up to a location and provide wi-fi and cellular communications in emergencies.

Strategic Skills

Technological Interventions. Operational improvement opportunities that would otherwise remain hidden often surface when a public-facing data visualization or analysis is on the horizon. It’s a fortunate thing I work in a department that cares to fix those as well. I have also begun to explore how to use what I call “technological interventions” strategically to discover problems in processes of collecting, generating and sharing data across systems.

Communicating with Executives. In the course of my work, I had to learn how to work with elected officials and high level executives. I learned how to properly scale the level of detail while explaining complex technical concepts and challenges. Scaling detail is extremely important because it’s often necessary for me to walk a fine line between confusing the person I’m talking to and providing them with the amount of information necessary for them to make a decision.


Managing up became very important as well. My boss is extremely flexible and understanding, but oftentimes he doesn’t need to (or really want to) be deeply involved in the details of my decision making and thought processes: he empowers me, which is both scary and great. It makes sense too: he really doesn’t need to know all the variables I’m weighing when deciding on a technology or working on a project. By managing up, I’m able to keep his expectations at the proper levels while giving myself a good amount of flexibility to change my mind.

Managing Meetings. Government is notorious for having a meeting-loving culture. I learned how to manage and limit the amount of meetings that I end up involved with, while making sure that I maintain relationships and remain apprised of what’s going on.

Evaluating technology in the context of the City, or rather in the context of enterprise IT requires weighing many factors. I learned a lot about how to evaluate technological solutions in this type of context. How does a piece of software fit into the larger IT roadmap? What do the service level agreements and maintenance options look like? Is it better to get Open Source or proprietary solutions? How will this impact the City’s cybersecurity risk exposure? What is the price point and what are the related procurement rules dictating the process we’ll go through? All these factors weigh into evaluating a piece of software in a large IT environment.

Hacking People, no USB cable required. No, really, I learned how to get 65 non-technical people who have other jobs to answer my questions about what data they have, make it extremely easy for them to do so, and not have them hate you afterwards. Oh, and only have one large meeting through that whole process.

Shipping. I learned quite a bit about how to balance the inherent complexity of being a CDO of a massive organization with designing the correct architecture, building a sustainable infrastructure, and well, shipping.

More Shipping. Elaborating on the point above, I tend to lean more on the perfectionist side of being a programmer. I’ll think deeply about choosing the right framework, picking the right stack and overall making sure I’m doing things “right”. In the past, this caused unnecessary slowdowns in some of my projects. However, in this past year, when I had a much smaller part of my time to be a developer, I noticed myself being able to adjust my “perfectionist” strategies towards a strategy where I just write some code, and refactor if I’m going to keep it. It seems like a minor shift, but being able to accept imperfection in my own code has allowed me to prototype a lot more, a lot faster.

Technology Perception Gaps. I’ve learned to see and more clearly understand the gap between the public’s perception of Open Data and the technology and effort needed to deliver data that isn’t just open, but is accurate and complete. While this gap exists in the Open Data space, I would argue that this gap exists in many perceptions that the public has about City IT.

Learning from Private Sector. I often seek out sources of inspiration for my work by attending private sector events, training sessions, and simply communicating with technology communities that I’m used to working with. I also love to interact with other governments to see how they’re doing things. However, not everything that works in the private sector works in the government space. I learned quite a bit about how to learn (and not learn) from the private sector and relate it to our work at the City.

Open Data Activation Points. I’ve begun to see “Activation Points” for open data – where opening data ties in smooth as butter with a current City initiative. (Sustainability, Performance Management, Public Records Act Requests (PRA)).

Building and running a data team is a leadership, strategic and tactical challenge. I have learned, and am still learning a lot about how to build one, ramp it up, and align the correct pieces for delivery.

Departments / City Operations


Lifeguards. I learned a ton about what lifeguards do, how they operate, and some of the technological challenges of the job.

Police. I explored how the City’s Police Department works with bar owners in the Gaslamp to create a safer area, handle barbreak (when all the bars let out) and prevent crime.


Street Work. I know much more about how the City’s street work gets done, and the different types of repair jobs. I was also surprised to find out that the City does a proactive job of making sure that money isn’t wasted by having the same street repaved multiple times in a short period. Because of various responsibilities different departments have when it comes to digging up a street, they do a lot of work to coordinate the timing of the construction.

PRAs. Many people outside of government or journalism don’t even know about PRAs. Working with the City’s PRA coordinator, I’ve learned a ton about the legalities of the process and how they work within the City.

Emergency Response. Do you know what to do if an earthquake hits? Your City officials do - they often conduct training and simulations for different disaster scenarios. I got to explore this as well. They have a “situation room” in one of the buildings, stocked with food and computers. Learning about the City’s ways of managing disaster has been nothing short of amazing.


Crap. I learned all about what happens to the crap we flush. It’s actually way more interesting than it sounds. This is a story that encompasses poop, energy generation, earplugs, and seals. Where did I learn about this? The Point Loma Wastewater Treatment Plant - an automated plant that serves 2.2 million residents run by only 50 people.

Communications and Community

Talking Louder. I have been a quiet and shy speaker for most of my life. However, when I started this job, I quickly learned (with Almis’ advice) that I needed to overcome that. I took several months of improv classes (which were a blast) and while I’m still working up to having a booming voice, I can definitely say that I haven’t been asked to speak louder in a long time.


Press. I learned a lot about how to talk and work with the press. It was really fascinating to learn the role of press in government and how the City handles communication with journalists.

Public Speaking. I still need to tally up how much public speaking I’ve done this year, but it was definitely more than I’ve ever done in my life. There’s plenty of things I learned in this arena this year, such as structuring effective presentations, storytelling, and other skills.


Ignite Talk. I gave an Ignite Talk about the data flowing through a City block. Obviously, I learned how to give an Ignite talk, which in itself is a very difficult, but ultimately rewarding experience. But through that process I discovered how much I knew about the data flowing through cities – and how much I have yet to learn.

Reporting to Council. I also got to prepare a report to the City council and present it - a learning experience in and of itself. As a side note, as part of getting the Open Data Implementation Update ready for council, I ended up making a pull request to a major open-source software project.

Community Building. I always felt that in order for Open Data to be successful in San Diego, we needed to have a strong Civic Tech community. Before, this was far from the case. Now, we’re much closer – I’ve learned a ton about how to put the right people in the right place to get the community moving. I’m very excited about the work Open San Diego has accomplished in the past year.


Connecting Geeks to Government. In addition to building the community, I’ve always strongly felt there was a missing connection between CfA Brigade members, residents, and City employees. Bringing various people in the City-people I greatly respect-to talk about what they do with the brigade has been an invaluable learning experience both for me, the brigade, and the employees. I think we often forget how freaking cool City government can be.



Passion. I was surprised about how I feel after a conversation with a City employee (not everyone of course, but so many of them). For example, I talked to someone about parking meters and was inspired and excited after that conversation. It’s amazing to see people that have just as much passion for their craft as many programmers do for theirs.

Data geeks. I’m not talking “analysts”. I’m talking about the people that geek out over Excel macros and SQL queries. Or GIS. There aren’t many of them in the City, but they’re there. It takes a while to find them too. But once you do – wow – they can teach you so much and are such a pleasure to work with.

Data Literacy. How people think about what data is, how they define data, how they understand KPIs and metrics has been a challenge that I have enjoyed learning about and solving.


Open Doors. Many people already recognize the potential for decreased workload and better communications that opening data carries. I was extremely surprised how many people approached me, excited for their data to be opened up.

State of The City. Did you know that just like the President does an annual State of the Union, many mayors do a State of the City Address? I didn’t. It was amazing to see it get put together, how many people work on it, and some of the things I learned by attending. Also it was pretty sweet to get a shout from Mayor Faulconer just a month into the job.

Dependencies. I noticed a distinct difference between how I’m used to working to how I have to work in the City. In my previous jobs as a software developer and architect, I could generally forge my own path and minimize a lot of critical reliance on other people. In the City I feel highly leveraged – oftentimes the support of others is absolutely critical. I haven’t thought too far down this path yet, but will be exploring it.

Delegation Pres

Internationalizing. I’ve had the opportunity to present to Macedonian and Philippine delegations. In the Mayor’s conference room. About Open Data. Nuff said.

CNAMEs. When we were launching OpenGov - our budget tool, I thought it would be great for us to map it to http://budget.sandiego.gov. The saga that happened while I was trying to do something fairly simple – just map a CNAME to a domain – was a journey I will never forget.


Vendors. Working with vendors has been good, bad and ugly. There is so much to write about here: from evaluating proposals and negotiating; to the “classifications” of vendors I’ve begun to unofficially define based on what they sell and how they sell it; to how they can have better strategy and products. We have developed numerous ways to streamline the process of vendor pitches by having a standard method and questions that they have to use to get in touch with us.

City Awards and Competitions, run by various think tanks and vendors are also something I’ve been reflecting on lately. While having some value, a lot of times they appear to be run more for the benefit of a vendor looking to score more government contracting opportunities.

Time Management. I’ve had to implement rigid time management methodologies because of the amount of noise often coming on my plate. While this may seem like an underwhelming learned lesson, I would say this is what has allowed me to become the most effective.

Project Management. When you have an organization of 11,000 people, IT projects quickly start to look a little different. Sometimes there’s a legitimate need for a strong project management methodology. Sometimes there isn’t. I’ve learned quite a bit about how the City runs large IT projects–and small ones.

Hiring. As part of hiring my first employee, I got to be on the hiring side, all the way through the recruitment process. I ended up taking notes for myself, for, you know, the next time I have to look for a job. It was super valuable.

Sup Academy

Supervising. Because I was getting a new employee, I had to go through the City’s “Supervisor’s Academy”. This was a seven day course, outlining everything from City support for employees experiencing various issues, to ethics, to leadership. I found it extremely useful and learned a ton about, well, being a good supervisor.

Ethics. I learned a bit of how ethics and campaign finance work in the City context, and had some fairly interesting conversations with the Ethics commission, including one about the limits on what expenses can and cannot be covered by a conference organizer who invites me to present at a conference.

In summarizing my experience at the City, the main thing that surprised me this year was how much I was pushed out of my boundaries, and how many things I’ve done that I never thought I could or would do. Everything from learning a new language, doing an Ignite talk, to learning how to be a better communicator and leader, I can attribute to being a City employee in one way or another. Now that year 1 is behind me, I’m stoked for year 2.

Read more »

CfA Summit Presentation

Speaking at the Code For America Summit

At the end of September I got a chance to speak at the 2015 Code For America Summit with my boss, Almis Udrys.

We had the opportunity to do a lightning talk about the government talent pipeline. We went through an overview of the process of my getting hired at the city of San Diego, which was an interesting process indeed.

You can catch the video here:

Some of the key points we tried to hit:

Go to the Candidate

The candidates government are often looking for tend to not go trolling around for jobs on government websites. Find them where they already hang out – StackOverflow, Meetup Groups, Mailing lists.

Involve the Private Sector

Private sector participation lends credibility to our process, ensures community buy-in, and helps governments evaluate a candidate’s compatibility in both the public and the private sector.

Communicate the Challenge

Working in a startup with a 100 people is very different than working in an organization of 11,000. Being responsible to a few shareholders is very different than having to answer to a few million taxpayers. Cities need to be better at communicating the challenge inherent in this type of scale to applicants. Taking on these types of challenges is a once in a lifetime opportunity.

Be Agile

For government to be competitive in attracting technologists it must be innovative, flexible, and make decisions quickly.

Show Humanity

When I found out I was going to interview with the Mayor, wasn’t sure whether I should take off the piercings. A thought process involving a wise Russian, a loud Argentinian and several Coronas, I decided that I needed to get hired as myself.

As I walked into the Mayor’s conference room we all sat down. He asked me if I wanted a cup of coffee. Like an idiot I said yes, so the Mayor got up and made me a cup of coffee.

During the interview a question prompted me to open my laptop, and I did, not giving a thought to the plethora of stickers I had on the lid, including a middle finger sticker. So my laptop proceeds to flip off the Mayor.

A culture where the Mayor gives the go ahead to hire the pierced guy whose laptop flipped him off ripples through all ranks of the organization. If cities have a culture anywhere near as awesome as the City of San Diego does today, they should put that front and center in the hiring process.

Support and Mentoring

Governments need match the technological skills you’re bringing with mentorship and support.

Overall, I definitely enjoyed preparing and doing the talk which seemed to hit a lot of points for people.

The conference overall was an amazing experience. It was such a pleasure seeing everyone I’ve worked with and interacted with over the years.

One of my coworkers that came to the conference with us had never been to a conference before. Ever. This was amazing to me. I’m so glad that the CfA Summit was her first one. The warm atmosphere and the awesome community definitely gave her a great welcome and she had a blast.

Read more »

The Greek Financial Crisis

These are some of my favorite YouTube video producers, and they recently just made a really great explainer about the Greek crisis and how the situation got to be so bad. For the record, I’m not pretending to be super knowledgeable about this, but I have been following it on and off.

One of the more interesting comments he makes during the video is how for the past ten years the Greek government has been mis-reporting their financial situation. And when a new party would take over, they would make a really big fuss about how the previous administration was lying, only to continue the cycle themselves. (Remember – just going off the video – I haven’t researched this too much).

It is worth thinking a little about the role of [lack of] government transparency in this situation. This may or not be related, and may not be the core of the problem at all, but I’m willing to posit that it was a factor.

If it was the responsibility of the Greek Government to report all the numbers related to budgeting, debt, and deficit to the public fully and in a machine readable format, I can’t help but wonder if this situation could’ve been avoided, or at least lessened. I’m guessing the Greek Government would continually report aggregated statistics with no way to reproduce the results. The further you get from the raw data, the more room there is for mistakes and manipulation – malicious or not.

However, I’ll also point out that government transparency is only half the game. The other part would’ve been on citizens, reporters, watchdog groups and other EU members to take this data, analyze it independently and provide the analysis in a reproducible format. This way it’s not just data without the insights, but rather something actionable, credible and reproducible.

Just thoughts and a rant. I read the Economist and I watch the news, but I’m no expert so don’t listen to me.

On a much lighter note, (at least as light as the Greek financial situation can be) here’s another great video about the crisis, but this time with some rapping involved:

Read more »

Quick and Dirty PDF Table Extraction

Recently, I had to do a quick, dirty and un-automated extraction of some table data from PDF. I need to take a single table out of a financial statement and extract it to CSV.

While you can find plenty of tutorials on how to automate this process, I didn’t really find a whole lot on doing it just once for a specific PDF. So I wrote a quick tutorial.

Read more »

Webhooks: A Different Pattern


is one of the many problems of software development for governments. Many different departments may have different systems and even different use cases for interacting with your application. It is often not feasible to try to integrate with every different system.

Read more »