Backend Engineer Intern
Join our merry band of smart city enthusiasts who have a deep passion to improve the environmental and financial sustainability of the city while providing a delightful user experience. The smart city industry is ripe for disruption and we want you to join us to enable our partners and customers to achieve tangible savings and bottom-line growth. Be part of our diverse, quirky, and high-performing team that is dedicated to our vision and has enormous fun doing so.
We are looking for Backend Developers to build Java applications e.g. complex groups of back-end services. Your primary responsibility will be to design and develop these applications, and to coordinate with the rest of the team working on different layers of the infrastructure. Thus, a commitment to collaborative problem-solving, sophisticated design, and product quality is essential. If you have hands-on experience developing software with agile methodologies, we’d like to meet you.
- Design, build, and maintain efficient, reusable, and reliable Java code
- Ensure the best possible performance, quality, and responsiveness of the applications
- Identify bottlenecks and bugs, and devise solutions to these problems
- Help maintain code quality, organization, and automation
- Document development phases
- Ensure our applications are secure and up-to-date
- Bachelor’s degree or above in Computer or Software Engineering, with a good foundation in algorithm/data structure
- Familiar with Web development technologies, such as Java Spring/boot, python flask, etc
- Familiar with the design and application of distributed systems, such as Redis, etc.
- Basic knowledge of rationally using common distributed technologies for problem-solving
- Familiar with database-related technology such as Mysql/ElasticSearch
- Strong interest in software technology; possess good learning attitude and strong communication skills and the ability to work well in a team
- Proficient understanding of code versioning tools, such as Git
- Smart Building Backend Product and Delivery
- Fulfill and exceed expectations for requirements/tasks assigned comprising of but not limited to development and research tasks.
- Fulfill required tasks with a high degree of quality.
- Update or prepare documents for better knowledge management of the team.
- Learn and apply new technologies required for the job i.e. Java Spring Boot Development and Usage of Databases.
- Learn and design RESTFUL API for the company’s backend services.
- Gain exposure and proficiency in the testing of self-developed applications/services.
- Practice Agile Software Development Methodology
- Facilitate scrum events, including but not limited to daily stand-up meetings, review and retro meetings, planning meetings, etc.
- Assist to manage the sprint stories/tasks.
- Build good communication and teamwork in an agile environment.