Software Developer Singapore (2020 Guide)

This is the ultimate guide for a software developer in Singapore in 2020.

And let us be clear about something:

This is NOT your average “Software Developer in 2020” predictions post.

Yes, we’ll cover the most important Software Development trends this year.

But you’re also going to see fresh ideas that are working great right now.

So if you’re looking to become a software developer, you’ll love this new guide.

A Software Developer is a person who plans, create, build and test programs.

Benefits

Here are some benefits for you to decide whether you should take up a software development job.

Automation

Programming is a highly valued skill because of its ability to automate tasks.

A mundane task of data entry that takes days for a person can be completed within minutes by a python program.

Flexibility

A great benefit of being a software developer is everything can be done online such as

  • All your code can be stored on online repositories e.g Github, GitLab, Bitbucket
  • All your meetings can be done on video streaming platforms e.g Zoom, Microsoft Teams
  • All tasks can be planned via online softwares such as Asana, Trello, Jira
  • Communication with employees, colleagues can be done via Slack, WhatsApp

There is no reason why you are unable to work from home unless you work in highly sensitive environments such as

  • Banks
  • Government
  • Defense

Types

Software development is a complex industry where there are many different fields which we will be touching on.

Beware: this is a long guide, so you may want to bookmark this to reread again.

Frontend

Frontend Developer in Singapore is a one who programs software that interacts with the front facing side of an application such as a website, web app or mobile app.

In simple terms, it is what you see on a website like the color, text, the size of a button.

Commonly Used Technologies:

  • HTML (Hyper Text Markup Language)
  • CSS
    • SCSS
    • SASS
  • JavaScript
    • React.js
    • Vue.js
    • Angular.js
    • Ember.js
  • Mobile
    • WebView Cordova (PhoneGap, Ionic)
    • React Native (React.js)
    • Weex (For Vue.js)

Backend

A Backend Developer in Singapore is a person who writes programs to interact with data.

In simple terms, things you cannot see on a website or app.

Things that can be interacted would be

  • Database
  • APIs (Application Programming Interface)
  • Cache

Commonly Used Technologies

  • Server side
    • Node.JS
    • Java
    • Python
    • C#
    • PHP
    • Ruby
    • Go
  •  Database
    •  SQL
      • mySQL
      • Postgres
    • NoSQL
      • MongoDB
      • DynamoDB
  • APIs
    • Example would be public facing APIs
      • https://www.developer.tech.gov.sg/technologies/data-and-apis/data-gov-sg
  • Cache
    • Apollo Client
    • GraphQL

Full Stack

A full stack developer in Singapore is one who does both frontend and backend development.

Usually, this person is a generalist who knows multiple technologies. And they may not be a deep specialist in one technology.

Fields

 

DevOps

DevOps is a field where one creates automation for the entire infrastructure of an application.

Usually the process is called CI/CD which is a short form for continuous integration/continuous delivery.

A simple CI example would be when you push your code to GitHub, there is a program that listens to this and automatically builds your website and host it for you. Usually you have to manually do these steps on your own.

Another example would be build your app on Docker where you can distribute your app regardless of environments.

Commonly Technologies & Programs

  • Jenkins
  • Travis CI
  • Circle CI
  • Docker
  • Kubenetes

 

Embedded

An embedded software developer in Singapore writes software to interact with equipments such as IOT (internet of things) devices and mobile.

Examples of embedded development tools

  • emulators analyzers
  • oscilloscopes

 

Artificial Intelligence (AI)

An AI software developer is one who creates software that has artificial intelligence capabilities such as deep learning, image recognition, speech processing.

An example would be writing a program to identify how many flowers are there in a photo using OpenCV which is a python library.

Commonly Used Technologies

  • Python
  • Matlab
  • R

 

Cyber Security

A cyber security software developer is one who creates software to analyse, protect or penetrate a system/application.

For analysing a system, one can create a software to sniff on network packages on your Wifi.

For protecting an application, an example would be to create honeypots for web scraping bots so that you can prevent your data from being copied.

For penetration, an example would be to test if your website can be compromised using pen test tools.

Commonly Used Technologies

  • WireShark
  • Java

Levels

Internship

A software development intern in Singapore is usually one who has no prior working experience as a developer.

The purpose of internship is to gain valuable experience from full time developers such as processes, programming tips and concepts.

Fresh Graduate/Junior

A fresh graduate / junior software developer is one who usually has internship experience as a programmer and has no experience in development full time.

A fresh graduate / junior developer is usually eased into a job by being paired with a senior developer.

Usually the junior developer will be on hands with the keyword, and the senior developer driving the programming process by talking.

Senior Software Developer

A senior developer is one who has at least 5 years of working programming experience.

Usually, they are able to operate independently without much guidance.

Lead Software Developer

A lead developer is one who leads a team of developers that comprises of senior and junior developers.

They are usually involved in planning and prioritising tasks for each developer.

Usually, they have the most experience with the product and is often the go to person for help.

Important Concepts

Here are some important concepts to brush up as they are very common requirements.

Testing

Unit Testing

Unit testing is a type of test that is done on a small portion of your application.

One of the most popular methodology would be test driven development (TDD)

Commonly Used Technologies

  • Jest
  • Enzyme
  • Mocha
  • Chai

Integration Testing

Integration testing is a type of test that simulates user interactions with the application.

For example, you can write a program to automatically key in username and password on a login page and instruct the program to click on the sign up button.

Common Used Technologies

  • Selenium
  • Cypress

Development Methodologies

Agile Singapore

Agile is a development methodology where projects are completed iteratively.

Types of agile processes

  • Scrum
  • Kanban

To learn agile, you can learn it from an agile coach in Singapore or agile courses in Singapore.

Some courses may provide agile certification in Singapore too.

Waterfall Singapore

Waterfall is a development methodology where projects are completed sequentially.

 

How to become one

 

Degree

There is a trend where people say that you can be a software developer without a com science degree.

However, if you browse most of the jobs online, a common requirement is that you need at least a degree in computer science or computer engineering.

Singapore Universities

Programming Tuition

With programming tuition in Singapore, you are able to learn and train your programming skills taught by an experienced tutor that have both qualifications and years of working experience as a software developer.

With a personalised coaching, you can also learn all the shortcuts that the tutor uses for development.

Books

Here are some recommended books for beginners or one who needs a refresher.

Agile Software Development, Principles, Patterns, and Practices

JavaScript: The Good Parts: The Good Parts 1st Edition

Thinking in Java

 

Side Income

Tuition

If you are an experienced software developer, you may consider teaching beginners who are looking to become a developer.

There are different kinds of programming tuition

  • One to one
  • Group
  • Tuition centers

Find out how you can get programming tuition assignments in Singapore.

Freelance

If you have spare time and the experience, you may consider becoming a freelance software developer.

Pros

  • Flexibility
  • Freedom of technology stack

Cons

  • Many bosses compared to 1 boss in a job
  • Payment can be delayed

Meetup Groups

Here are some meetup groups that you can use to mingle around and make friends that have a similar interests.

Singapore JS

Singapore Python User Group

React Singapore

 

Finally, we have reached the end of this guide. We hoped that you have found something useful in your journey as a software developer in Singapore.