Life as a Government Software Developer. Meet Karen Carter.
Welcome to our interview series, where we introduce you to developers of all levels from all walks of life. Prepare to be inspired!
Karen Carter is a software developer for an entity of her state government in the United States! She talk about what it’s like to be a developer for the government and gives tips for where to look for jobs other than big tech companies. This interview is fantastic!
What’s your current position?
I’m the lead software developer at the New Mexico Department of Agriculture.
What’s your day-to-day like?
First I check for any bugs or new feature requests that have come in and make sure that our nightly scripts have run without errors. Then I work on my primary task, which is usually programming new features on an app, but also includes things like configuring web servers to run our apps, setting up automated scripts, developing database schema, etc.
During the day if I have questions about a feature I’ll walk over to my coworker’s office, or email if they’re not local. If the intermediate or junior devs have questions I’ll help them out, as well as working with the server guy, helpdesk folks, etc. as needed.
I deploy whenever I finish a new feature, and perform code reviews when the other devs finish a feature.
If we’re at the end of a sprint we’ll have a meeting with the product owner and users for that app to go over our progress and plan for the next sprint.
Maybe a bug comes in, then the devs will talk about it and one of us will work on it.
If a new feature request comes in, we’ll discuss it with the user and figure out how high of a priority it is; if we’re not too busy we’ll get to it right away, otherwise it’ll be put into the queue for later.
Can you tell us about how you got into coding, and why you chose this career path?
I first started coding for fun when I was in 8th grade. I played online text-based games called MUDs with my friends and then started programming for MUDs, too.
In high school, I took programming and other computing classes and participated in programming-based competitions. At first I thought I wanted to keep programming as a hobby, not a career, so I majored in Physics and Astronomy when I went off to college.
I realized I was having way more fun in my computational physics class than in any of the other physics classes, so I switched my majors to Computer Science and Mathematics and never looked back.
I’ve never wanted to do anything else since then. I love programming, and the more I learn the more I love it.
What types of applications do you develop?
Business applications that are used by other employees at the Department of Agriculture to record the myriad of data we produce and process.
The Department has a ton of different statutory requirements resulting in many different kinds of data, and thus many different apps. Licenses and registrations, lab test results, inspection results, certificates…
How do you manage 20 different business applications in your department? Are you actively developing on all of them at the same time?
The two biggest things that help us keep all those apps straight is good communication, both within the IT department and with our users, and keeping good documentation.
We’re typically actively developing 1-3 apps at the same time. The others are in maintenance mode, so we fix bugs or develop new features as needed on the other apps, but that doesn’t come up that often. Once or twice a month at most.
What do you have to consider when developing software in the government that you might not have to think about in a startup?
We always have to be thinking about the laws that pertain to our Department. There are times where we have to go and look up the actual statute to see how the app should function, for example what kinds of late fees there need to be for someone who didn’t renew their license on time.
When a new law is passed, we may have to put together an app ASAP with little notice in order to comply with it. Sometimes this works in our favor, though, as when we’re considering just how dynamic something needs to be.
If it would require a change in the law to change the way the app works, then it’s pretty safe to hard-code it: we’d have plenty of lead time to make changes if that ever happens.
What is the culture of engineering teams like in the government?
This will depend a lot on the specific government entity, but in general it’s very team-oriented. You’re ultimately working for the tax-payers, trying to do your best work for their benefit, and the team succeeds or fails as one. We have no time or resources for cowboy coder nonsense.
In a department like ours, our primary users are our coworkers, so it’s a much more personal experience developing apps to help your coworkers do their jobs more efficiently. You see your users every day, so if the app is buggy or hard to use, you’re going to be hearing about it in-person.
Probably the biggest difference from tech company culture though, is that there’s no trying to come up with new ideas for the next app or fretting about user engagement or anything like that. Instead our coworkers come to us when they need or want a new app, and there’s always a long list of apps to work on next.
And of course our users aren’t going to stop using our apps because a competitor did it better… The reason we create custom apps is that there aren’t any commercial ones that do what we need.
What’s your favourite part about working as an engineer in the government?
It’s hard to choose just one! I love that work/life balance is an actual thing, and not just lip-service. People aren’t expected or encouraged to work tons of extra hours.
The fringe benefits (especially health insurance since I’m in the US) are also fantastic. Plus I know my work has real value to society and directly benefits the citizens of my state when I work on apps that pertain to food safety, consumer protection, and all the other important things our department is responsible for.
What opportunities for software engineers are there in the government that people are not aware of?
The biggest thing I think people don’t realize is just how many software development jobs there are at all different levels of government.
In New Mexico there are a lot of federal jobs, but anywhere you are there will be jobs working for the city, county, or state, too. School systems, universities, state and federal departments of all sorts… There are so many different agencies.
I frequently run into this assumption (especially in online interactions) that if you program for a living, then you must be working for a tech company. The reality is that there are many areas where government is the biggest employer of developers.
What do you think is the biggest challenge for women in code?
I would say that at the lowest level, the biggest challenge is the stereotypes that have taken over in recent decades. It’s hard for women to even think about going into a field that has become so male-dominated, and then when you push through and do it anyway, you encounter people who treat you differently on the basis of those stereotypes.
By many measures (such as the share of Computer Science degrees going to women) there are even fewer women going into software development now than when I entered the workforce, which is why I find it so important to push back and show everyone that women can and do code.
What advice would you give to a woman who wants to explore software engineering opportunities in the government?
Check all the job sites and LinkedIn, but also think about the different government agencies around you and go check their specific sites. There tends to be less budget for advertising and recruiting, so many government entities will post job openings directly on their sites.
And if you know anybody who works at a government entity you’re interested in, make sure to talk to them. Many times they’ll know about job openings before they’re even posted. Work that network!
Quick fire round
When I can’t solve a bug, I…
go for a short walk or make tea to give my mind a bit of a break. If I still can’t figure it out I move on to Google, then books, then talking with other senior devs I know.
My favorite programming language is…
Ruby. It’s such a beautiful and elegant language!
Dream company to work for…
If I could work remotely, working for a non-profit like World Vision or Habitat for Humanity would be amazing. Doing work that’s useful to the world is important to me, and I don’t want to leave New Mexico.
If I had unlimited resources, I would develop…
this is pretty silly, but I would love to create an interactive Pokemon database that would help you figure out how to most easily catch all the Pokémon based on the games you have. I have a bit of a Pokémon obsession.
In 5 years time, I want to…
be doing pretty much the same thing at work, but producing even better-looking and easier to use apps. And at home, hopefully I’ll be teaching my daughter about coding and electronics and cool stuff like that.
Your favorite quote…
“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. Code for readability.” –John F. Woods