Resume

Sign in

Enterprise Search Developer and Architect (Elasticsearch, Solr, etc)

Location:
Ottawa, ON, Canada
Posted:
May 12, 2020

Contact this candidate

Resume:

adc6rq@r.postjobfree.com ** Summitview Drive

Kanata, ON K2M 0L5

https://www.linkedin.com/in/kalhomoud/ 613-***-**** Passionate, driven and forward-thinking Enterprise Search Architect and full-stack Java Developer with several years of development experience and architecting solutions. Skilled in Enterprise Search technologies, specifically Solr and Elasticsearch platforms, in addition to architecting and developing solutions, with proven abilities in managing technical projects in a fast-paced environment and leading technical teams. Experienced with cloud concepts and technologies, mainly Amazon Web Services, such as AWS Elasticsearch, EC2, S3, Elastic Beanstalk, Lambda, RDS, SNS, SES and Route 53. Security Clearance

Level II (Secret)

File Number: 96107054-0002155012 Expires 2027-12-22 Technical Knowledge

Languages and Frameworks

Java { JEE, Android SDK, Spring Boot,

Apache Jersey, Apache Wicket, SolrJ }

Shell Scripting, C#/.Net, C/C++, HTML,

CSS, JavaScript, JSON, XML

Search Technologies

Apache Solr, (AWS) Elasticsearch, ELK

Stack { Elasticsearch, Logstash, Kibana },

Apache Nutch, Lucene, LucidWorks

Tools and Server Technologies

Application Server

Jetty, JBoss, Tomcat, Websphere

Version-Control Systems

Git { Github, Bitbucket }, SVN, CVS

Software Development Methodologies

Agile (Scrum and Kanban) { JIRA, ClickUp }

Waterfall

Continuous Integration

Jenkins, Bamboo

Build Automation

Apache Maven, Gradle, ANT

Cloud Technologies

Amazon Web Services (AWS) { AWS

Elasticsearch, EC2, S3, Elastic Beanstalk,

Lambda, RDS, Aurora, SNS, SES, Route

53, Cognito }

Red Hat OpenShift

Database

MySQL, AWS Aurora, DynamoDB, Oracle

DB

Testing

Selenium, JUnit

Concepts

XaaS { IaaS, SaaS, CaaS, PaaS }

Service-Oriented Architecture, Object-

Oriented Design, UML, Design Patterns,

Refactoring, MVC, Web Services,

Networking, Internationalization, Search

Engine Optimization

Development Tools

Eclipse (and MyEclipse), IntelliJ (and

Android Studio), Visual Studio

Operating Systems

Linux, Mac, Windows

Professional Experience

IT Modernization of the Canadian Intellectual Property Office Senior Enterprise Architect September 2019 – March 2020 Innovation, Science and Economic Development Canada The Canadian Intellectual Property Office (CIPO) is a specialized operating agency of Innovation, Science and Economic Development Canada. They deliver intellectual property (IP) services in Canada, mainly Trademarks, Patents, Industrial Designs, and Copyright, and educate Canadians on how to use IP more effectively.

• Worked closely with CIPO's business architects analyzing the business process of all lines of business

• Analyzed the existing legacy architecture and identified inefficiencies, flaws, and limitations of the current systems

• Designed and built technical architecture for the transactional and the informational business components

• Evaluated and developed technical architecture using AWS managed services with automation and microservices in mind

• Produced and presented multiple roadmap strategies to migrate from the existing legacy systems identifying the advantages and disadvantages of each

• Strong knowledge of Amazon EC2, Amazon S3, AWS Lambda, Amazon Elastic Beanstalk, Amazon Simple Notification Service (Amazon SNS), and Amazon Simple Email Service (Amazon SES), Amazon RDS, Amazon DynamoDB, Amazon VPC, Amazon Route 53, Amazon Elasticsearch, and Amazon Cognito. Smart Search, Trademarks Search

Senior Software and Enterprise Search Developer and Architect

February 2019 – August 2019

Innovation, Science and Economic Development Canada The Canadian Trademarks Database comprises all active and many inactive marks that were either applied for or registered pursuant to the current Trade-marks Act or former trademark legislation. Smart Search deliverable 1 is a project intended to migrate all existing search solutions from Verity K2 to Apache Solr. In addition to the migration, the Canadian Trademarks underwent legislative changes as per the Madrid system for the international registration of marks.

● Led technical team to reverse engineer existing Trademarks Online Search and migrate search technology from Verity K2 to Apache Solr by harvesting hundreds of undocumented business rules

● Designed Solr schema to support existing and new Madrid data fields

● Revamped existing indexer to parse and index Trademark data and their media files from new ST.96 WIPO format

● Implemented API changes and frontend changes using Java (Spring Boot) and SolrJ

● Created multiple backend shell scripts and scheduled global and weekly updates

● Conducted client meetings with decision-makers from Canadian Intellectual Properties Office (CIPO) to help them identify requirements and convert business requirements to technical requirements

● Helped CIPO determining how to test new system after two major changes: adding new Madrid data fields and migration to new search technology while data faced rapid ongoing changes

● Provided consultation to other departments with Enterprise Search challenges

● Participated in hiring process by interviewing new consultants. Technologies: Apache Solr 6.6, SolrJ, Java 1.8, Oracle DB, Websphere, JBoss, Maven, Linux, Eclipse, Zookeeper, Shell scripting, Agile

Software and Enterprise Search Developer and Architect Professional Services Lead

April 2012 – July 2019

Norconex Inc. Gatineau, Quebec

Responsible, as a Software Developer and Architect, for providing clients with custom-built search applications and services. Worked with many Norconex key clients to install and configure their Enterprise Search installation while building different interfaces and services around it. Also involved in development and management of many other client Enterprise Search projects, as well as in creation of multiple Norconex products and applications, including Norconex HTTP Collector and Norconex SiteSearch.

● Architected, developed and maintained Enterprise Search Java applications based on Solr and Elasticsearch platforms for small, midsize and multi-billion-dollar companies

● Designed and documented search-based web services and REST APIs

● Customized web crawlers to perform indexing tasks as requested by client

● Utilized third-party web services and APIs to return custom search results using Java- based applications

● Performed analysis, research and development tasks for internal proprietary and open- source projects

● Developed Norconex Collector committer for Google Search Appliance (GSA)

● Co-developed Norconex Collector committer for Apache Solr utilizing SolrJ

● Initiated the development of Norconex Site Search product as a SaaS on AWS leveraging several AWS services such as AWS Elasticsearch and Elastic Beanstalk

● Collaborated with clients and business stakeholders to clarify requirements, define solutions and resolve issues

● Implemented solutions in timely and effective manner and managed multiple projects in fast-paced environment while ensuring exceptional product quality

● Managed software release and deployment processes

● Developed and published multiple Android applications using Java for different clients (full stack)

● Developed internal Java web application that manages client engagement records and schedules daily tasks performing create, read, update and delete (CRUD)

● Occasionally designed search web pages using HTML, CSS, JQuery and JavaScript. As Professional Services Lead:

● Led, guided, trained and managed team of in-house software developers

● Addressed technical questions from potential clients and helped define their business requirements and scope of work during physical and virtual meetings

● Prepared professional services’ estimates and participated in writing winning RFP/RFI responses including Government of Canada RFPs

● Interviewed and hired junior to senior software developers through multi-step hiring process

● Developed and delivered custom presentations and demonstrations

● Conducted proof-of-concept search solutions

● Helped stakeholders with short- and long-term planning. Norconex Client Projects

Nuans Search

Senior Software and Enterprise Search Developer and Architect

January 2018 – July 2018

Innovation, Science and Economic Development Canada Nuans name search is a sophisticated corporate search system that compares a proposed business name or trademark with federal and provincial databases of existing corporate names and trademarks. This comparison determines the similarity that may exist between the proposed name and existing names in the databases, then produces a report of the most relevant names.

● Regular client meeting assisting them to refine their business requirements for corporate search based on end-users’ feedback and expected behavior

● Reconfigured Solr 6.6 based on NUANS corporate search new requirement

● Designed Solr Schemas for Company and Trademark to work with various custom field types

● Created custom Apache Solr analyzers (filters and tokenizers) to work with English and French companies and trademarks

● Reconfigured existing Solr filters such as phonetic, stemming (English and French), Shingling and N-gram

● Created advanced Lucene query based on user input (distinctive terms, alternative spelling, etc.)

● Implemented new API changes using Spring Boot and SolrJ

● Assisted NUANS team with SolrCloud and Zookeeper installation on multiple nodes for multiple environments (Dev, UAT, Pre-prod) to ensure scalability and failover capability

● Provided direction for indexing and optimizing reindex of 12 million documents for corporate names and trademarks

● Worked with Shared Services Canada resolving virtual server issues

● Provided more advanced and enhanced architecture solution documentation for short, medium and long term, including migration plan to the cloud. Technologies: Apache Solr 6.6, SolrJ, Java 1.8, Oracle DB, JBoss, Maven, Linux, Eclipse, Zookeeper, Shell scripting, Agile

Crawler Replacement

Senior Search Engineer/Architect December 2017 – January 2018 Perforce Software

Perforce had implemented two different crawlers and were unable to obtain the performance required. Crawls were taking days with no quality results. This project replaced the existing crawlers with the Norconex HTTP Crawler, which provided successful crawls of the 2 million documents in a fraction of the original time.

● Installed and configured new crawlers

● Provided ongoing relevancy and tuning based on stakeholder input to improve indexing time quality and speed

● Testing indexed data by querying Solr and analyzing results

● Provided Perforce with crawler documentation.

Technologies: Java 1.8, Apache Solr, Norconex HTTP Collector (web crawler), Linux, OpenSemantic Search

MediaWiki Custom Search

Senior Search Engineer/Architect July 2017 – August 2017 Spatial Corporation

Spatial Corporation was having issues with its existing Solr installation. The initial project involved fixing relevancy and latency issues, duplications and increasing overall search functionality. Built out new crawlers and search functionality that was pushed to production; continued to work on ongoing fixes and consult with recommendations on how search can be improved through added enhancements and features.

● Developed search architecture for their members’ documentation website including installation of new crawlers and indexing

● Provided ongoing search support to revise relevancy and tuning based on stakeholder input to improve quality and speed of search results

● Provided Spatial with Solr documentation, making recommendations for additional features and enhancements where required

● Modified their PHP search application web app to interact with custom Solr client. Technologies: Apache Solr 6.4, PHP, Linux, Java 1.8, Git, Norconex HTTP Collector (web crawler)

GSA Migration to Elasticsearch

Senior Search Engineer/Architect and Java Developer April 2017 – June 2017 American Hospital Association

Founded in 1898, the American Hospital Association (AHA) is a national organization that represents and serves all types of health-care networks and patient communities including nearly 5,000 hospitals and 43,000 individual members. Our project involved migrating AHA from their Google Search Appliance (which has gone end of life) to a new Elasticsearch platform.

● Created design document that included architectural diagram detailing installation of Elasticsearch server, configuration of nodes, installation and configuration of crawlers

● Installed Elasticsearch to serve as centralized Search for all AHA current and future websites indexed with features including highlighting, boosting, relevancy, spell check (did you mean?) and faceting

● Configured web crawlers to index websites’ content, supporting incremental crawls and ensuring crawlers will add, update and delete content based on changes to websites

● Tested and optimized crawlers to ensure content is indexed correctly

● Developed REST API for easy integration with AHA websites and built to be able to include any additional websites added in future

● Created search application to include features and benefits such as query cooking logic, fixing of bad content, applying hidden filters and applying popularity boost on specific URLs.

Technologies: Elasticsearch, Java, Norconex HTTP Collector (web crawler), Eclipse, Linux, Java 1.8, Git, AWS (Amazon Web Services) Cloud

Apache Solr Proof of Concept

Senior Search Engineer/Architect and .Net Developer January 2017 – April 2017 Clinical Care Options

Clinical Care Options is a company dedicated to improving patient care by providing easy-to-use access to current medical information to clinicians. This project involved building a fully functional proof of concept for their InPractice.com site, to migrate from their existing search to an open- source solution. As part of this project, Norconex also provided technical search engine training to the Clinical Care Options team providing guidance on how to set up and support their search infrastructure.

● Developed search architecture for InPractice textbooks and other sections of InPractice website using SolrCloud 6.4

● Architected, installed and configured Apache SolrCloud 6.4 and Zookeeper using 2 shards and 2 replications using a cluster of 5 nodes to ensure failover, fault tolerance, high availability and redundancy

● Crawled and indexed InPractice textbooks and maintaining custom fields for categorization in their Solr schema

● Provided Clinical Care team with documentation and guidance to set up remaining sections in-house, then reviewed completed tasks, making recommendations where necessary

● Led weekly status calls/knowledge transfer sessions with Clinical Care Options technical team to train them on Solr configuration and ongoing maintenance requirements

● Developed Search Application Web app using C#/.NET and SolrNet client

● Provided ongoing search support to revise relevancy and tuning based on stakeholder input to improve quality of search results.

Technologies: Apache SolrCloud 6.4, C#/.NET MVC, SolrNet, Visual Studio, Linux, Java 1.8, Git, Norconex HTTP Collector (web crawler), AWS EC2

Study Programs Search

Senior Search Engineer/Architect and Java Developer August 2016 – December 2016 Universities Canada

As a membership organization, Universities Canada advocates for Canadian universities at a federal level and provides online information for students regarding university study and scholarship offerings. Norconex has worked on various projects for SQL output redevelopment and creation of form applications, and also provides ongoing hosting and support of their search infrastructure and database.

● Team lead and project manager; provided regular status reports to client along with status meetings to keep them apprised of overall project

● Architected and developed web applications, interfaces and services

● Helped with importing Oracle database to MySQL and updating CRUD application accordingly

● Maintained and enhanced Study Programs and Advertisement REST API on top of MySQL database using Scalatra and Slick (Scala) to handle CRUD requests

● Deployed and configured Apache Solr 5 search engine and index

● Maintained and enhanced search application (Java) to interact with search engine using SolrJ

● Enhanced and migrated their search-based Job Emails Alerts from using local-based web servers to using Amazon SES cloud service

● Provided ongoing search support for their entire search stack. Technologies: Apache Solr 5, MySQL, Scalatra, Slick, Linux, Scala, Java 1.8, SolrJ, AWS SES, AWS EC2

Toyota Enterprise Search

Search Engineer and Java Developer October 2012 – July 2016 Toyota Motor Sales USA

World leader in the automobile manufacturing industry, Toyota wanted to make their content more accessible to customers by having search accessible from anywhere on their major sites. Involved the creation of Toyota main site search, Re-Imagining Toyota.com (RiT) website search, Toyota Owners search, Lexus Search and other internal and external website searches and search services. Implementations provided search functionalities on different data set from different repositories both internal and external to Toyota. Also provided static and dynamic

“Managed Answers” based on specific entity extraction rules and different business rules as well as auto-suggest on Toyota’s main site. The first Toyota search platform put in place was based on Autonomy IDOL. In December 2011, Norconex helped replace Autonomy with a Solr-based solution (using LucidWorks). All search applications were written in Java and were migrated transparently to use Solr with the same functionalities without impacting customer experience. Additional search development and support is ongoing. Duties below were performed on both platforms unless explicitly stated (IDOL and Solr).

● Lead Search architect and developer for all Toyota Motor Sales USA enterprise search requirements

● Dealt directly with Toyota USA headquartered near Los Angeles and their Interactive Marketing team to brainstorm, present solutions, assess feasibility of marketing ideas and be their resource person for search inquiries (involved trips to customer site)

● Responsible for architecting highly customized search solution (Java/SolrJ) to provide advanced search functionality and integrate with Toyota.com website

● Implemented and maintained web-based application with service-oriented architecture for multiple search-based (Solr) web sites (using Tomcat) to handle user queries

● Gathered requirements and different information from various internal and external data sources

● Conducted on-site interviews with different business stakeholders to establish Toyota search platform requirements

● Prioritized and created proposals based on requirements, priority and technical feasibility of certain requirements

● Established cost and feasibility of search-related implementations

● Created system design and specification for search platform

● Implement automated testing solutions for global Toyota search application using selenium for front-end and JUnit tests for code and back-end

● Designed scripts and Java applications (with SolrJ) for maintenance of all small subsystems of search platform

● Developed, tested and implemented search platform Java web-based applications (on Tomcat) and all smaller sub-systems attached to it for content acquisition and content decoration

● Produced manuals on how to manage and maintain application

● Produced deployment guides for developers with every production deployment request, including Apache HTTP Server configuration changes, such as proxy rules and reverse proxy rules

● Lead knowledge transfer sessions with D&IS (Toyota IT) group

● Optimized search (Solr) implementation for cross-language (English-Spanish) searches and query speed

● Fine-tuned relevancy ranking to provide better results

● Provided support and maintenance to D&IS group to keep search platform running efficiently in production

● Created indexing processes using search APIs and REST-based HTTP APIs to update and refresh content

● Installed and configured web crawlers to crawl and index Toyota’s main site and microsites

● Performed migration of Autonomy search platform to a Solr one, migrating search indexes and keeping all functionalities, and creating custom solutions to replace missing features

● Architected, installed and configured Lucidworks/Apache Solr 4.3 with replicated collections using a master with at least 2 slaves to ensure failover, fault tolerance, high availability and redundancy

● Use of bug tracking system to facilitate interaction with Toyota QA team

● Used Interwoven TeamSite, QuickBuild and other software mandated for daily use by Toyota

● Upgraded search platform to more recent version as required. Technologies: Apache Solr 4.x, Lucidworks, Java 1.6, Eclipse, Solrj, Apache Nutch, Apache HTTP Server, Tomcat 6-7, Linux, web service, SVN, Git, Teamsite, QuickBuild, HTML, CSS, JavaScript, XML, JSON

ClinicalKey Search

Senior Search Engineer/Architect and Java Developer August 2015 – March 2016 Reed Elsevier

Elsevier is one of the largest publishing companies in the world. Its publishing accounts for 25% of the world market in science, technology and medical publishing. They publish 250,000 articles annually in 2,000 journals along with 20,000 books. The company now offers more and more of its many millions of articles and books through its online subscription-based search application, called ClinicalKey. Total yearly downloads amount to 240 million. This sophisticated search-driven application relies on multiple Apache Solr servers as its core platform for online searching and delivering of information. ClinicalKey search infrastructure comprised at the time 240 million documents on 30 Solr servers, on 4 different environments. As part of the Reed Elsevier team, I was involved in numerous Solr-based search-related projects.

● Participated in analysis and design of client’s search architecture and data schema

● Resolved performance problems of existing implementation (search engines, configuration, JVM tuning, relevance ranking tuning, etc.)

● Installed and configured search engines and indexes for different Clinical Key multilingual websites

● Implemented and migrated various Java web applications and backend Solr post-index operations using SolrJ

● Significantly increased performance of post-indexing operations, which use SolrJ

● Created and maintained massive pipeline process to transfer and transform over millions of documents on daily basis

● Implemented many back-end processes to utilize AWS Lambda and AWS DynamoDB (for CRUD) to replace many slow legacy processes

● Implemented reporting tools that monitor all post-index operations

● Migrated legacy Apache Solr 3 JEE application to the latest Apache Solr 5 (at the time)

● Participated in daily meeting based on Agile Methodologies to discuss requirements. Technologies: Lucene, Apache Solr 5, SolrJ, Java 1.8, MongoDB, MapDB, Amazon (AWS) Lambda, AWS EC2, AWS DynamoDB, Maven, Ant, Linux, Eclipse, Zookeeper, Bash scripting, Agile

Server Administrator and Web Developer January 2001 – April 2012 Host Horizons

Host Horizons was a web-based online company providing web solutions including web hosting, dedicated servers’ management and administration, and web design and development serving the Middle East market.

● Provisioned and architected dedicated physical colocation 1U and 2U web servers for production environments based

● Analyzed clients’ requirements for leased dedicated servers

● Supervised installation of physical web servers shipped to US-based data centres

● Configured, administrated and maintained remote Linux web servers

● Installed and configured security software and application for hosting servers

● Managed clients’ websites using cPanel/WHM

● Organized and maintained clients’ relationships and accounts using ClientExec CRM

● Designed and developed commercial websites and web apps using PHP/HTML/CSS

● Architected and designed text-based centralized search engine; installed and configured indexes for PHP/SQL-based search engines to search individual websites and handle end-user queries

● Installed and configured Java/Tomcat-based web mailing lists with SPAM prevention

● Installed and maintained vBulletin online forums and created custom plugins to quickly CRUD posts on the go

● Configured hardware-based load balancers

● Configured Cisco routers using command console.

Technologies: Linux CentOS 5, Java, PHP, CGI, Apache Web Server, cPanel/WHM, Clientexec, Cisco WS Switch, Dell Servers, Supermicro Servers

Education

BASc in Computer Engineering, Engineering Management and Entrepreneurship Option

2007 – 2011

University of Ottawa Ottawa, Ontario

Associate Diploma in Instrumentation and Control

Engineering Technology

2000 – 2004

Jubail Industrial College Jubail Industrial City, Saudi Arabia Languages

English – Full professional proficiency

Arabic – Native proficiency



Contact this candidate