Last Updated on October 8, 2020 by WebsiteDesigner.sg
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
- SQL
- APIs
- Example would be public facing APIs
- https://www.developer.tech.gov.sg/technologies/data-and-apis/data-gov-sg
- Example would be public facing APIs
- 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
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.
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.