What does a Software Engineer do?
As a software engineer, you will:
- Build prototypes to demonstrate technological opportunities
- Design system architectures
- Write production quality code
- Manage deployments to cloud infrastructure
Because our team focuses on pushing new initiatives, you will also have to:
- Identify potential projects that improve the public good
- Design novel systems that work around bureaucratic constraints
- Advocate and explain these technical ideas to other government agencies
We are also looking for senior software engineers! In addition to the above, senior software engineers will be expected to:
- Establish best practices for developer operations
- Share your expertise and mentor other engineers
- Help with recruiting
You're not just here to write code, but also to figure out what we should be building and how we should build it.
Your job will be to bring expertise and capability to the public sector. Sometimes this means coding new systems from scratch. Other times this means using the best solutions the development community has to offer. We use cloud services, open source software, and commodity hardware as far as possible. These often include, but are not limited to: GitHub, AWS, React Native, MongoDB, and Stripe amongst others. Knowing what to build and what to reuse lets us avoid wasting time on solved problems and focus on delivering actual value.
You will work on meaningful projects that solve problems pertinent to our society, from transportation, to education, to healthcare. The public sector is full of opportunities where even the simplest software can have a big impact on people’s lives. You will have direct ownership of your work with over 70% of our projects starting as ground up initiatives. Rather than work on commercial ventures commonly found in the startup scene, we're here to improve how we live as a society through what we can offer as a government.
What it is like working here
Rapid Prototyping - Instead of spending too much time debating ideas we prefer testing them. This identifies potential problems quickly, and more importantly, conveys what is possible to others easily.
Ownership - In addition to technical responsibilities, this means having opinions on what is being done and having ideas on what should be done next. Building something that you believe in is the best way to build something good.
Continuous Learning - Working on new ideas often means not fully understanding what you are working on. Taking time to learn new architectures, frameworks, technologies, and even languages is not just encouraged but essential.
Who we are looking for
We look for people who:
Have a demonstrated ability to build software - Prior work and personal projects count for much more than specific degrees.
Write code to solve abstract programming problems - Clear thinking, the ability to debug, and understanding the limits of an approach matter much more than getting the “correct” answer.
Talk and reason about code with other engineers - We work as a team so you need to be able to not just solve problems, but have other people understand your solutions.
Take initiative to make things happen - Our job is to push for change in government, so we need to challenge the status quo and not wait for instruction.
Want to work for the public good - We are public servants, we serve the public. This sometimes means ignoring political pressures and misguided policies. We need people who will push back if something is not in the public interest.
Overall we look for people who have ability, initiative, good communication, and strong values.