Software Engineer

Job description

Who we are

Open Government Products is an in-house team of engineers, designers, and product managers who build technology for the public good. We proactively identify areas where technology can help, test our prototypes with actual users, and bring our best ones to launch. This includes everything from building better frontend applications for citizens, to automating the internal operations of public agencies. We use and release open source software, keep a flat hierarchy, and bypass bureaucracy to focus on delivery. We work on real problems, build for the user, and push for change.

Projects we have worked on include:

Data.gov.sg - An open repository of all the Singapore Government's public data. It helps people understand the data using visualizations and articles, and provides real-time APIs for developers to use.

Beeline - A data-driven shuttle bus platform. Bus routes are created from user suggestions and public transport usage data. Users can book, pay for, and track rides using a mobile app.

Parking.sg - A mobile app alternative to parking coupons. It lets users pay, extend, and refund their parking sessions just using their phones.

Form.sg - A form builder tool for agencies to self-service and create online forms that capture classified data, with the goal of replacing paper forms.

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

Additionally, more senior 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.

 

Requirements

Who we are looking for

We work mostly in JavaScript. However, we don’t require experience in any specific programming language or technology. Core competency in at least one language and the ability to learn is what matters to us.

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.

 

We regret that as a Singapore Government Agency, only Singapore Citizens and Permanent Residents will be considered.