In a Nutshell
- Gaditek is headhunting an artificial intelligence (AI) / machine learning (ML) developer to help us leverage data for training models and automating business-critical processes.
- Our ideal candidate will have a proven technical background as well as a track record in the leadership of software development teams and delivery of projects within a software development environment.
- You will be joining a team of diverse skills and experience and the job requires a motivated individual who is experienced in taking responsibility and can independently deliver results on both departmental and business projects.
- Develop software solutions by studying information needs, conferring with users, studying systems flow, data usage, and work processes; investigating problem areas and following the software development lifecycle.
- Help our teams make better decisions by helping them understand their problems better.
- Determine operational feasibility by evaluating analysis, problem definition, requirements, solution development, and proposed solutions.
- Prepare and install solutions by determining and designing system specifications, standards, and programming.
- Work closely with Architects and Business Teams to estimate work efforts on ongoing and upcoming projects.
- Be involved in the full software development life-cycle in coordination with other engineers, QA, and designers and should be confident and adept in articulating ideas in a clear, well thought out manner.
- Update job knowledge by studying state-of-the-art development tools, programming techniques, and computing equipment; participating in educational opportunities, reading professional publications, maintaining personal networks and participating in professional organizations.
- Supports and develops junior software engineers by providing advice, coaching and educational opportunities.
- Ensure that code meets specifications. Writes code that is easily maintainable. Is able to debug own code for preliminary testing. Must practice standard software development methodologies and standards.
- Code, test, and implement configuration changes to software applications to meet both functional and technical requirements.
- Generate innovative ideas and support new ideas or approaches that enhance service.
- Ensure that all architectural/coding guidelines are followed by all team members working with him.
- Provide guidance to and review the work of other team members as well as investigate ways to potentially improve existing code and implement improvements.
- Participate in requirements debriefing and finalizing requirements.
- Participate in root-cause analysis, communicate options for resolution and provide recommendations to customer-facing technology problems
Assist in providing ballpark estimates for prioritization.
- Provide Learning of Effort (LOE) and Work breakdown System (WBS) after system design is complete.
- Be responsible for making sure daily check-ins have been performed.
- Performing periodic dirty builds from the checked-in code to make sure the team is on the right track.
- Be responsible for releasing builds to internal QA teams and customer UAT teams.
- Help and mentor Junior & Fellow Engineers with technical challenges.
- Work in the direction of the Architect from a development practice perspective.
This includes but is not limited to the following:
- Design/Architectural guidelines
- Applicable software coding conventions
- Source/Configuration management procedures
- Testing practices
- Resolve any items/bugs/changes assigned by the Quality Assurance Team.
- Write a unit-test code and perform unit-tests on the developed software.
- Understand and execute the unit test plans and document results properly. Investigate, analyze and report any corrective action on reported defects.
- Coordination with peers and Architects for accurate and recommended development approaches for assigned tasks.
Perform daily check-in of the source code.
- Check the projector for daily task assignments and update the status with the progress.
- Code software fixes or change requests as assigned on the projector.
Qualification & Experience
To perform this job successfully, an individual must be able to perform each essential duty mentioned satisfactorily. The requirements listed below are representative of the knowledge, skill and/or ability required.
Technical Eligibility (Important)The Software Engineer must have a strong set of skills on at least 2 different programming technologies, tools, languages or frameworks.
One should have a combination similar to the following with knowledge of data engineering practices (databases, data models, automation, data governance):
- COMBO 1: High-level programming, Hadoop, Cassandra, SQL
- COMBO 1: High-level programming, Elasticsearch, Mongo, SQL
- COMBO 2: High-level programming, Spark, CouchDB, SQL
- COMBO 3: High-level programming, BigML, PowerBI, SQL
- At least sixteen years of academic education with a bachelor’s degree in computer science or data science-related disciplines like statistics or mathematics (but have taken essential programming courses, data structures and algorithms).
- A master’s degree in the software development discipline will be preferred.
- Minimum Experience – 1 year of professional experience as a Software Engineer or above capacity.
- Maximum Experience – 3 years of professional experience as a Software Engineer or above capacity.