We are looking for a Senior Software Engineer that will develop information systems by studying operations; designing, developing, and installing software solutions; support and develop a software team. The Senior Software Engineer will lead a team of developers responsible for building new and support existing Softwares.
- Consulting; Technical Leads are part of the senior team that manages the client and is called upon to facilitate user requirements sessions, design technical specifications, and manage the development of documentation to meet client expectations. In conjunction with a Project Manager, Technical Leads are expected to provide both technical and solution expertise for clients and client engagements.
- Solution Development; Technical Leads design solutions for various client needs. TLs support the analysis of client processes and recommend new business models, workflows, or solutions to best meet client needs.
- Technical Leadership; Technical Leads manage all technical aspects of the project and also contribute directly by writing code, managing builds, and performing other hands-on tasks. TLs have the ability to exercise independent judgment in methods, techniques, and evaluation criteria for obtaining results.
- Team Management; Technical Leads may manage small teams to successfully deliver agreed-upon solutions of the highest quality, exceeding customer expectations. They mentor and guide less experienced consultants. They are expected to be role models for best practices and to provide technical knowledge sharing.
- Expertly implement designs using modern programming practices, Participate in the architecture and design of systems.
- Perform code reviews and ensure exceptional code quality.
- Functionally decompose complex problems into simple, straightforward solutions, Serve as a technical lead on our most demanding, cross-functional projects.
- Fully and completely understand system interdependencies and limitations, Possess expert knowledge in performance, scalability, enterprise system architecture, and engineering best practices.
- Assist in the career development of others, actively mentoring individuals on advanced technical issues, and helping managers guide the career growth of their team members.
- Exert technical influence over multiple teams, increasing their productivity and effectiveness by sharing your deep knowledge and experience.
- Minimum of 5-8yrs software development experience and 3-5yrs real management of the engineering team, experience in a project-based consulting environment.
- Expertise in architecting and designing software solutions for various problem types.
- Extensive knowledge in the areas of custom software development: OO Design Patterns; microservices, middleware, etc.
- Strong proficiency with server-side languages (Node.js and Python preferred), Strong proficiency with Java.
- Proficiency in using MongoDB
- Understanding of data security compliance and security best practices, Experience in profiling, debugging, and troubleshooting systems
- Solid understanding of databases and data modeling/design techniques; data interface protocols; database deployment and scalability; database tuning.
- Extensive experience with designing systems for scale and reuse, source code management strategies, and release management.
- Strong and effective verbal and written communication skills; as well as strong and effective presentation and facilitation skills.
- Willingness to travel to client locations and collaborate with distributed delivery teams as needed.
- Solid knowledge of system administration and software and hardware configuration and production system deployments; ability to make informed recommendations to customer IT staff.
- Ability to troubleshoot pre-and post-production implementations including security and load balancing & performance issues.
- Cloud DevOps experience strongly preferred
- Understanding differences between multiple delivery platforms, such as mobile vs. desktop, and optimizing output to match the specific platform
- Experience with video technologies preferred but not required.
- Experience working in an Agile development environment.
- Experience working on teams with a heavy emphasis on DevOps, Automation, CI/CD, and Quality.
- Experience with AWS or similar cloud platform (e.g. Google Cloud, Azure, OpenStack), Strong written and verbal communication skills.
- Comfortable working with a remote team operating in multiple time zones.
- Experience with a variety of data storage solutions (e.g. Elasticsearch, Dynamo, RDS, PGSQL).
- Experience with fault-tolerant message queuing/brokering systems (e.g. Kafka, SQS, Kinesis)
- Experience building a moderately complex Android app with knowledge of dart.
- Willing to learn and work on different mobile platforms/frameworks when needed.
- Networking and integrating third-party APIs. Working with a version control system (i.e., Git).
- Proficient at an intermediate level in either Java/Kotlin for Android and Objective-C/Swift for iOS.
- Good understanding of Object-Oriented Programming concepts i.e Classes and objects, Inheritance, Encapsulation, and Polymorphism.
- Working knowledge of core data structures provided by a language, i.e arrays/lists, tuples, dictionaries, hash tables.
- Proficient at an intermediate level in mobile platform frameworks — UIKit(iOS), MapKit, ARKit, RxJava, RxSwift.
- Working knowledge of UI Design libraries/frameworks — Material Design (Android).
- Bonus published apps on the Play Store will be an advantage.
- Intermediate level understanding of fundamental database concepts — i.e database tables, querying databases, normalization, joins, database management systems.
- Good understanding of at least one database for Mobile dev — i.e SQLite, RealmDB, and Good understanding of cloud mobile database backends — i.e Firebase.
- Working knowledge of ORMs/ODMs — i.e Room ORM, SqlDelight, CoreData.
- Knowledge of network security and deep knowledge of unit, integration, e2e, and UI testing, as well as testing frameworks/libraries — JUnit(For Java), Espresso, Appium, XCTest(iOS).
- Working knowledge of software engineering collaboration tools– Jira, Pivotal Tracker, Git, Mercurial.
- Familiarity with language/platforms, build IDEs/tools — Simulators/Emulators, and Gradle(Android), Android Studio, XCode.
- Working knowledge of at least one CI/CD tool — i.e Jenkins, Travis CI, Circle CI.
- Working knowledge of the app stores for the respective mobile platforms — i.e Google Play Store, Apple’s App Store.
- Working Knowledge of analytics tools — i.e HockeyApp/App Center,
- Working knowledge of networking concepts — DNS, OSI model, TCP/IP, UDP, FTP, IP Addressing
Lastly, take two of the online personality tests in this link and provide your results URL to each of the tests in the final section before your resume.
|Job Category||Full Time|