Career Profile
An Android Developer with 14+ years of experience in Software development across diverse sectors including Finance, Electronics, and Software. Specializing in designing, testing, and implementing Android applications for various platforms, I've also excelled in leading both projects and cross-functional teams. My journey underscores a commitment to mastering cutting-edge technologies to enhance development efficiency. Passionate about continuous learning and knowledge-sharing, I've contributed my expertise to both large enterprises and dynamic startups. My leadership experience equips me to guide teams toward successful project delivery while nurturing a collaborative and innovative environment.
Experiences
Toast empowers restaurants of all sizes to build great teams, increase revenue, improve operations, and delight guests. We pair our deep understanding of the restaurant industry with powerful cloud-based software and restaurant-grade hardware to deliver an intuitive, all-in-one platform, across the point of sale, guest marketing, digital ordering & delivery, and payroll & HR.
- Spearheading critical projects within the Card Reader team, with a focus on integrating new card readers into the main POS application and supporting a pivotal aspect of the platform - facilitating seamless card payments for restaurants and their guests.
- Leveraging expertise in Android development to optimize system design, process high payment data, and ensure the delivery of delightful user experiences for both internal teams and restaurant customers.
- Actively maintaining the codebase, fixing bugs and contributing to elevating code quality by implementing best practices and fostering a culture of continuous improvement, resulting in a higher standard of software within the Card Reader module and across the entire project.
- Championing security measures as a security advocate, ensuring the integrity and safety of the codebase within our team and also throughout the broader Toast mobile application.
- Playing a key role in the growth and development of team members by providing mentorship and support to enhance their technical and soft skills, fostering a cohesive and high-performing workforce.
- Proactively embracing learning new technologies, to develop internal tools within our team, elevating efficiency and scalability for our endeavors in a constantly evolving landscape.
- Serving as the primary point of contact for change requests, enhancements, inter-team meetings, and technical decisions within the team’s code domain.
- Organizing technical decision-making meetings among team members and keeping them updated on recent changes and strategic decisions.
- Acting as the go-to resource for inquiries about the Card Reader codebase from other teams and individuals across the organization.
- Shielding the team from high-pressure situations by providing support when team members face workflow challenges or conflicts, helping them resolve issues effectively.
- Collaborating with the project manager to prioritize quarterly and annual initiatives in alignment with the roadmap.
- Assisting the engineering manager with decision-making and addressing team-related issues.
- Holding weekly sync meetings with the Payments department director to discuss current and upcoming challenges, changes, and progress.
Radio Systems® Corporation is the leading manufacturer of pet products since 1991 with an overall mission "to build the most trusted pet brands" in over 52 countries, headquartered in Knoxville, TN. Our family of brands include PetSafe®, Invisible Fence® and SportDOG™. Our portfolio includes a wide array of electronic training and containment systems, waste management products, fountains, pet doors, innovative treats and much more. My responsibilities:
- Developing the My PetSafe® by adding epic and new features by using Kotlin, JetPack and RxJava to satisfy business requirements.
- Maintaining the existing projects and fixing bugs by working closely with other teams such as QA.
- Providing technical mentorship to encourage the growth of team members via pairing opportunities and reviewing PRs.
- Collaborating with other teammates in an international organization to increase the quality of the code and improve the workflow by creating documents and guidelines.
- Take ownership of projects and epic features I have implemented to iteratively enhance customer experience.
- Participate and contribute to principal codebase changes meetings and drive resolutions to needs.
- Improving the codebase time-to-time by refactoring the code in the manner of the latest libraries, UI, accessibility, frameworks and architecture.
- Collaborate with UX, product manager, QA and other engineering teams regarding different projects and JIRA boards to build best-in-class solutions in a complex and fast-moving environment by following the Scrum and Kanban methodologies.
- Always at the forefront of game-changing technologies such as Wear OS and Augmented Reality for our projects.
- Experience with continuous delivery of high quality, reliable and scalable services to production.
Founded in Kampala five years ago, SafeBoda has become one of the fastest growing companies in East Africa and has over 10,000 professionally trained riders. SafeBoda is serving more than a hundred thousand customers every week across the East African cities. SafeBoda is a mobile application that connects qualified, professional and trained riders to passengers in need of convenient, safe and affordable transport at the click of a button. My responsibilities:
- Developing the SafeBoda Passenger and Driver Android applications, which include different epic features such as Payment, Transport, Delivery.
- Rewriting project from scratch and implementing new features by using Kotlin and latest technologies in the vertical-teams environment.
- Proficient in balancing getting things done with platform stability by writing Integration tests and Unit tests.
- Communication with the QA department hour-to-hour to fix reported bugs.
- Have an eye to making a scalable platform for the future.
- Being in a well-organized environment by using the Scrum methodology.
- Analysis of the reviews, comments, and reports from various types of sources like Play Store, Firebase, Social Media.
- Keep knowledge up-to-date on Discovery days and participate in related Meetups.
- Reviewing PRs and trying to increase the knowledge of the other colleagues at any level.
- Collaborating in daily Stand-ups, Retrospective meetings, Sprint planning.
- Responsibility for implementation of CI/CD, Test Lab, and Code Coverage.
- Conduct technical interviews for hiring Android engineering staff and raising the performance.
Sheypoor is a free online classifieds marketplace for Iran where anyone can buy, sell and search goods and services quickly, easily and free. On Sheypoor, you can find anything you can think of from property and vehicle to mobile, laptop, furniture, antiques, clothing and much more. Main tasks and achievements:
- Developing the Sheypoor Android application.
- Writing Unit testing for each module.
- Refactoring codes and fixing various software bugs in a cross-functional team.
- Converting Java codes to the Kotlin step-by-step.
- Working with Jenkins as CI/CD.
- Communication with the QA department and fixing reported bugs.
- Work effectively within an agile environment and join in daily meetings.
- Working with Objectives and Key Results (OKR).
- Mob and Pair programming experience.
- Monthly Hackathon experience.
- Mentoring my colleague at Sheypoor in the Android development team.
- Responsibility for coordinating team members to deliver goals before deadlines as a Technical Coach.
- Coaching members of the B Team among previous responsibilities as a Senior Android Developer.
- Technical Management, Recruitment Support, Planning and ensuring adherence to agile software development best practices.
- Working with the-all teams collaboratively, with an agile mindset to deliver a high-quality product.
- Help team members for personal growth, creativity and making a great product.
- Providing training and one-on-one coaching to help people identify their strengths and passions.
Projects in this startup company were done by co-workers remotely, so all members had a freelance job on weekends. I invested in this company which had focused on Android application development. Main tasks and achievements:
- Coordinating the team of mobile, web and design.
- Finding potential customers and making clarified contractions with them.
- CityWideTaxi Android application, build for the WekaPlex Taxi Service Provider in Canada.
- Noalib Advertisement SDK.
- Consulting and Mentoring at Sharifin Company.
- Checking the progress of projects daily.
- Viralens Android specialized Application for an eyeglasses factory.
- PayMetr insurance project for Connected Cars (IoT).
- Translate high-level ideas and business concepts into practical solutions.
- Fixing bugs and improving projects.
- Mentoring a Junior Developer at Sharifin Company in the Android development team.
- Mentoring a PhD Student in the University of Freiburg in relation to C#.
Maadiran is the leading private Iranian conglomerate group focused on consumer electronics, home appliances, and business solutions sectors. My main tasks and achievements as an R&D member:
- Analyze, reduce product development costs and fix various software bugs in existing functionality.
- Video-on-Demand Android application development with Payment methods for buying media.
- Development of an Online Shopping Android application with NoSQL database and location-based service.
- Leading the Android team, Reviewing Git pull requests, and keeping technical knowledge of the team up-to-date.
- Responsibility for Android Smart Boxes and Smart TVs (AOSP) development and maintenance.
- Working with Bamboo as CI and automated build.
- Communication with the QA department and fixing reported bugs.
- Joining weekly meetings and discussing current projects.
- Deciding on the choice of software architecture, libraries, and frameworks on Android projects.
- Following SDLC to avoid delay in release time and reduce future bugs.
- Working effectively within an agile environment and International team.
- Mentoring my colleague at Maadiran for one and half years in the Android development team.
A Startup company in which built by three old friends including me, that had focused on Android. The most known customer of the company was Havayar Industrial Group. Main tasks and achievements:
- Developing Havayar Industrial Group CRM with ASP.NET and C# language under MVC architecture.
- Developing free Android applications to the market for introducing the company's brand and gaining new customers.
- Code optimizations to ensure performance and compatibility.
- Customer responsibility and analyzing their feedback.
- ShahreKhabar News feed Android application.
- Checking analysis and crash reports.
- Market analyzing and surveying for possible customers.
- Brainstorming with other team members for creating new ideas for the Android application.
A software-based company that meets customers and companies' orders, besides it is an innovative and inventive software company, especially in mobile fields. Main tasks and achievements in this full-time job were as follows:
- SMS Panel management J2ME application to send SMS on a massive range.
- IKCO Sport and Cultural Club website.
- Aftab CRM which is Service-as-a-Service (SaaS) developed with ASP.NET, MVC architecture, and MSSQL database.
- Gaining time management and working lonely accompanied by other members.
- Zar Macaroon and Research Center websites.
- Managing Android projects and reporting directly to the manager.
- Searching for best practice codes and applying them to projects.
- Communication with the support unit of the company and surveying customers' suggestions.
A financial company developed an Accounting Windows Desktop Application called Parnian. My university classes were held on weekends, so I worked full-time at the company. Main tasks and achievements:
- Worked as a C#.NET programmer in the Windows software development team.
- Join in meetings and negotiations on problems and bugs.
- Fixing bugs.
- Checking different design patterns and suggests them for improvement.
- Improve codes.
- Improve UI and make better User experiences.
- Manual testing.
Projects
Some of my projects listed below. to see full list, please look at my Linkedin profile.
Skills & Proficiency
Android Application Development in Kotlin and Java
AWS, MQTT
Material Design, Android UX/UI standards, Different screen sizes, Pixel-Perfect, Zeplin, Invision, Sketch, Figma
MVVM, MVP, Clean Architecture
Android Architecture Components, Android JetPack
Kotlin Multiplatform
Android JetPack Compose
Object-Oriented Programming (OOP)
Dependency Injection libraries: Butter Knife, Dagger 2, Hilt
RxAndroid, RxJava, RxKotlin, RxBinding, RxLifecycle, EventBus, Concurrency, Multithreading
Understanding and applying different Design Pattern in Software
AndroidX, Android SDKs, Support Library
Databases and ORMs: Room, SQLite, Realm, ActiveAndroid, GreenDAO, Stetho, Sqldelight
Firebase, Fabric, ACRA, Parse, HockeyApp, Firebase Cloud Messaging (FCM), Localytics, Amplitude, CleverTap
GSON, LoganSquare, Moshi
Network libraries: OKHttp, Volley, Retrofit, Socket, Ktor, and Chucker
Agile methodologies: Scrum, Kanban, Push/Pull Development System, Pair Programming, XP, Waterfall, Lean
HTTP, JSON, Swagger, XML, OAuth, REST architecture in the Web-Services, Protobuf
Source Code Control System (SCCS) and Version Control: SVN, GIT, Bitbucket, GiLab
Slack, Teams, Confluence, Team Foundation Server (TFS), GitLab, JIRA, GitFlow, and Pivotal Tracker
Professional in the aspect of Security in Programming, Code Obfuscation, Proguard
Analysis, Design and Software Project Management
Experienced in creating procedures and documentation
Software Development Process: SDLC, Bamboo, Bitrise, CircleCI, Continuous Integration (CI), Continuous Delivery (CD), Gradle, Jacoco, Mantis, Codecov, Jetkins
UI Testing, Espresso, Unit Testing, Mockito, JUnit4, AndroidJUnitRunner, Robolectric, A/B Testing, UI Automator
Android Studio, Eclipse, Linux, Android Bluetooth, Android USB, Raspberry Pi
ConstraintLayout, DataBinding, Animation, ViewBinding
Universal Image Loader, Glide, Picasso, Nuke, HLS, Google ExoPlayer, Google Map