Position: Android Engineer
Company: SoftServe
Experience required: 2y
English level: intermediate

WE ARE

The project is focused on developing the conference room camera. That is really a high-potential direction on American and European markets now. The device will work on the latest Android OS. We will develop firmware for that particular hardware. So it would not have any issues with backward compatibility of legacy or outdated devices and features.

We are closely working with the customer and have communication on a daily basis. The customer is located in Silicon Valley, so you should expect status meetings in the evening.

We have a really good relationship with the customer and willing to continue that. From SoftServe's part, we already have 15 Software Engineers and expect you to be a part of the team.

REQUIREMENTS & SKILLS

At least three years of experience in Android development
Excellent understanding of Java 8 and/or Kotlin
Good understanding of Android fundamental components (Service, BroadcastReceiver, Activities + lifecycle for all components, Android permissions system)
Strong Computer Science fundamentals, including Algorithms, Computer Architecture, modern Operating Systems and Computer Security.
Experience with Android Unit Testing (JUnit, Mockito)
At least some understanding of Android system services, interprocess communication, AIDL, Binder
Good understanding of concurrency, synchronization, ability to write highly optimized thread-safe code
Knowledge and practical use of common Software Design Patterns
Any experience with Linux system, diagnostic tools, bash scripting
Any experience with Windows system, Windows BAT and/or Python
Excellent debugging skills - ability to solve problems without classical debugger
Some experience with writing native code (C, C++) on Android and JNI bridge
Communication skills and problem solving ability

Nice to have:

At least basic understanding of Android internals - Android booting process, system services, Binder IPC
Experience with Linux/Android diagnostic tools: kmesg, strace, dumpsys, e.t.c


RESPONSIBILITIES:

Implement new features for video collaboration products across the Android and Embedded Linux software stack
Troubleshoot, root cause and fix software bugs either from the field or those reported by our internal engineering teams
Be at the front end of incoming customer escalations, triage issues and identify root cause or assign to an appropriate engineering team
Create tools and processes that would make it easier to diagnose incoming issues