Sysco LABS Software Engineering

Software Engineering

Sysco LABS’ diverse and industry leading product suite is made possible by our team of highly qualified, innovation-driven team of software engineers. In developing and managing our software engineering talent, we take after our counterparts in Silicon Valley.

How we work

Our overall design and development methodology is agile/SCRUM. We are organized into multidisciplinary teams of approximately eight team members, each comprising development, quality assurance, a product owner and a scrum master. A standard sprint lasts two weeks. True to the scrum methodology, we conduct sprint planning meetings before each sprint, and as a team, arrive at a deliverable workload and a DoD (definition of done) for each deliverable. Sprint activities are guided by these. At the end of each sprint, we conduct a sprint retrospective to evaluate how well we have followed the sprint plan, and to see where we can improve future sprints.

We take an integrated, full-stack approach to development: our developers are involved in all aspects of the development process, from design, architecture, UI, database design to coding and unit testing. Our software engineering team works closely with QA in analyzing feature requirements to a level of detail sufficient for a design discussion, which is the starting point of the design process. Developers construct their own software designs with the guidance of architects and domain experts (such as the database engineering team), rather than simply executing a design handed down to them by a Team Lead or an Architect. As a result, our software engineers not only experience a greater feeling of ownership towards the work they do, but are also sufficiently multi-skilled to be able to switch between different types of work when the need arises.


How we ensure code quality

Software Engineering

• We follow the specified industry guidelines for each programming language/technology stack we use, in addition to our own in-house standards and guidelines.
• All our code undergoes pre-merge code reviews before being merged into the master branch of the source code repository.
• Static analysis tools such as Sonar, built into our continuous integration process, automatically checks our code for problems.
• Unit tests capture any low-level bugs that escape both the code review and static analysis processes.

Sysco LABS’ software engineering team is at the forefront of technology innovation in web based applications. The size and complexity of our product suite require us to evaluate and utilize many of the latest tools, technologies and standards in the industry. For example, we have already built production-ready applications using relatively new SPA (single page application) frameworks such as Ember.js and UI libraries such as React.js on the front end, and JavaScript server frameworks such as Meteor and Sails.js on the back end. The “Big Data” needs of some of our products have led us into working with a range of tools and technologies not often used in the local software industry: Apache Cassandra, Apache Spark, R (language) and Elasticsearch. We continue to develop these and other new capabilities in our efforts to improve and grow our products. This technology focus makes Sysco LABS an exciting place for software engineers to work!

The Technology Stack

R ProgrammingphpObjective CNode JSMySQLmongoDBJIRAMeteorJenkinsJavaScriptJavaHTML 5GuiceGitEmberElasticsearchCSS 3CouchDBConfluenceCApache StormiOS SDKApache SparkApache CassandraAndroid SDKSailsReactRabbitMQ