At Sygic, we like to experiment with the latest technologies. When it comes to software and hardware solutions, we focus on efficiency.
The core of our products is written in C++ and with a little help of STL libraries, we can fully concentrate on the development itself. We like to use the latest standards and technologies, which are available on all of our supported platforms. Currently we use C++ 14 and we are getting ready for C++ 17. Our most favorite environment for development in C++ is Visual Studio 2019.
In order to make our apps easy to use for all our 150 million clients, we creative a likeable GUI for both Android and iOS. When developing for Android, we use primarily Android Studio with a building tool Gradle, while playing with the newest technologies such as Kotlin and RxJava. Within the iOS platform, we stick with Objective C , Swift and Xcode.
Apart from mobile development, we also work on eshop, web and various backends. For these solutions, we use mostly PHP but also React and Node.js, playing with Go and Elixir. Docker help us to boost the development and keep a single environment even when working on multiple projects. Releases are much more safe with test running on Codeception, PHP Unit, Capybara/Cucumber, and Jenkins taking care of the rest. Kubernetes is our choice for running in cloud.
As to others languages, tools and technologies, used for testing, continuous integration and various analysis, we rely on Lua, Espresso, Kiwi or tools such as Cppcheckor Lint, to name a few.
Because apart from Jenkins building tool we also use a whole range of Atlassian products, Bitbucket is a natural choice for a git server. Besides standard operations such as push, pull, merge or rebase, Bitbucket pull requests enable us to review the code.
It is no surprise that with all the Atlassian products used, Confluence helps us to share knowledge, notes and other wiki like information and Jira helps us to track tasks and epics. Needless to say, all Atlassian products come with various plug-ins, such as the one for Agile and Scrum. Last, but not least for internal communication we use Slack.