Software Development Engineer

Posted:
10/17/2024, 12:34:47 AM

Location(s):
Bengaluru, Karnataka, India ⋅ Karnataka, India

Experience Level(s):
Junior ⋅ Mid Level ⋅ Senior

Field(s):
Software Engineering

Why Verifone

For more than 30 years Verifone has established a remarkable record of leadership in the electronic payment technology industry. Verifone has one of the leading electronic payment solutions brands and is one of the largest providers of electronic payment systems worldwide.

Verifone has a diverse, dynamic and fast paced work environment in which employees are focused on results and have opportunities to excel. We take pride in the fact that we work with leading retailers, merchants, banks, and third party partners to invent and deliver innovative payments solution around the world. We strive for excellence in our products and services, and are obsessed with customer happiness. Across the globe, Verifone employees are leading the payments industry through experience, innovation, and an ambitious spirit. Whether it’s developing the next platform of secure payment systems or searching for new ways to bring electronic payments to new markets, the team at Verifone is dedicated to the success of our customers, partners and investors. It is this passion for innovation that drives each one of our employees for personal and professional success.

Key Responsibilities: 

  • Design and build applications for the Android platform, mainly focusing on mobile and POS devices. 
  • Collaborate with product owner, developers, and cross-functional teams to design, and develop new features. 
  • Maintain the codebase, including bug fixing and improving application performance. 
  • Write and maintain unit test cases to ensure code quality and reliability. 
  • Use debugging tools to troubleshoot and resolve issues in the application lifecycle. 
  • Optimize applications for performance, speed, and responsiveness and implement best practices for memory management and battery efficiency. 
  • Participate in the entire application lifecycle, focusing on coding and debugging. 
  • Adhere to agile development practices and participate in regular scrum ceremonies planning. 

 

Qualifications: 

  • Bachelor’s degree in computer science, Engineering, or a related stream. 
  • Strong knowledge of Android SDK, different versions of Android, and how to deal with different screen sizes. 
  • Good understanding of Java programming, including core libraries, OOP principles, memory management, and multithreading, specifically for Android development. 
  • Strong knowledge of Android system services, Bound service, AAR, Retrofit API, JNI Interface, Android Gradle build system and IPC (Broadcast Receiver, Intents, Messenger, AIDL). 
  • Good understanding of Android Gradle build system and JNI interface. 
  • Familiarity in Android application development using modern design patterns such as MVVM, MVP. 
  • Proven experience in implementing applications with SQLite databases. 
  • Experience in integrating Android application with external data sources, RESTful APIs and third-party services. 
  • Strong knowledge of the ISO 8583 standard for financial transaction messaging 
  • In-depth understanding of EMV standards for secure card transactions and knowledge of various card schemes (VISA, Master Card, Amex, etc.) 
  • Proficiency in Master/Session and DUKPT (Derived Unique Key Per Transaction) key management schemes. 
  • Strong knowledge and experience PIN and message encryption for secure transactions, including the use of encryption algorithms such as 3DES and AES (128/256 bit). 
  • Proficient in using code versioning tools, particularly Git, for efficient source code management and collaboration. 
  • Strong understanding of Agile Scrum methodology with practical experience in real-time project environments. 

  

Preferred Skills: 

  • Experience with Python programming, including scripting, automation, and integration with Android applications. 
  • Knowledge of the open-source Android ecosystem and the libraries available for common tasks (Networking, UI design, database management, etc) 
  • Familiarity with Kotlin programming language and willingness to learn if not already proficient. 

 

Our commitment

Verifone is committed to creating a diverse environment and is proud to be an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability, age, or veteran status. Verifone is also committed to compliance with all fair employment practices regarding citizenship and immigration status.