Android Developer

  • Sqwirl Lab
  • Beirut Digital District, Rue Nassif Yazigi, Beirut, Lebanon
  • Nov 18, 2017
Full time Information Technology

Job Description

Position and Talent requirement

Qualification: Computer Science / Engineering student - alumni

Experience: not restricted to professional experience, the person needs to have a decent portfolio of projects, a fresh graduate maybe qualified in such case. If you’re passionate about programming, mainly android/Java OOP then most probably you are a good fit. Github Open Source Projects available under the candidate’s account is a plus.

Knowledge:

  • At least 1 year experience of purely Android Development
  • In Depth knowledge in Object Oriented Programming using Java:
    • Inheritance
    • The concept of Interfaces
    • Polymorphism
    • Abstract Classes
    • Encapsulation
    • Method Overriding vs Overloading
  • In Depth knowledge in the Android Application Life-Cycle
  • Knowledgeable in different architectural models:
    • MVC
    • MVP
    • MVVM
    • The differences between them and is capable of deciding when to use each and why.
    • Implemented at least Two projects in One of the above.
  • Knowledgeable in JUnit testing, Espresso Tests and Scripts Testing is a plus (applying it will be a must):
    • Implemented automated testing on at least one project, UI Testing, Functional Requirements Testing
  • Knowledgeable in XML and in the latest views released such as the Constraints based approach, difference between Layouts (Linear/Relative), side effect of choosing a layout on the memory and when to use each.
  • Experience with GMaps
  • Experience with Socket.io is a plus
  • Knowledge in PubSub Technologies is a plus:
    • Pusher
    • PubNub
    • GCM/FireBase
    • Experience with Push Notifications
  • Capable of writing a full fledged application from scratch
  • Knowledgeable in communicating with Restful API requests, working with Async Tasks:
    • Retrofit
    • LoopJ
    • Volley
    • Knowledge in one of the above is required, more is a plus.
    • GSON/JSON is required
  • Knowledgeable in Handling Concurrency / Mutex issues - is a plus, Awareness is a must
  • Knowledgeable in Handling Threads and Memory Leakages - is a plus, Awareness is a must
  • Knowledge in RxAndroid / RxJava is a plus.
  • Knowledge in Kotlin is a plus.
  • Experience with Payment Gateways is a plus
  • Experience with Facebook / Twitter and other Social Media APIs is a plus
  • Experience with OpenCV is a plus
  • Experience with Code Obfuscation is a plus
  • Experience with SEAP is a plus
  • Experience with VR is a plus
  • Experience with OpenGL is a plus
  • Experience in Proper Logging and Error Handling:
    • Knowledge in Libraries like Timber is a plus
    • Knowledge in Fabric.io is a plus
  • Experience in Debugging and Optimizing the code for less Battery Consumption is a plus

Languages: Java - OOP - Android are essential for the job. Arabic and English for communication skills.

Nature: Full time position, and you get to work with a cool team of developers and designers. 

Deliverables

Develop Native Android Apps: You will be working on a lot of different Apps, one key thing is to develop as many generic components as possible without consuming too much development time and while meeting the deadlines with quality code (Scalable, Clean, Understandable and reliable - you need to handle your exception – keep it simple straight). 

Maintain - Debug - Scale existing Android Apps:  Bug free code does not exist, unless you believe in doing a correctness proof to each and every project. Automated testing will be given high priority, optimizing existing apps is something we always look forward to, no matter how much the code is clean, you can always learn and find ways to make it better.

Personal Skills

Algorithmic mind. Good listener. Interpretive thinker. Attentive to details. Positive and pro-active. Flexible and able to react quickly. Good communications skills. Good personality and flexibility in changing mindsets about writing code and architectural thinking. In Depth Knowledge of Graph Theory is a plus