Faits :
A.
Par ordonnance du 4 décembre 2017, le Ministère public de la République et canton de Genève a classé la procédure dirigée contre X._ (ch. 1 du dispositif), refusé de lui allouer une indemnité ou réparation pour tort moral (ch. 2) et l'a condamné au paiement des frais de la procédure arrêtés à 21'050 fr. (ch. 3).
Par arrêt du 6 juin 2018 (ACPR/320/2018), la Chambre pénale de recours de la Cour de justice de la République et canton de Genève a partiellement admis le recours interjeté par X._, a annulé le ch. 2 de l'ordonnance du 4 décembre 2017 et a renvoyé la cause au ministère public pour qu'il statue sur l'indemnité due à l'intéressé pour la détention provisoire excessive.
B.
Par ordonnance du 23 août 2018, le ministère public a fixé à 2'300 fr. l'indemnité en raison de la détention excessive.
Par arrêt du 20 février 2019, la Chambre pénale de recours de la Cour de justice de la République et canton de Genève a admis le recours, a annulé l'ordonnance du 23 août 2018 et a fixé l'indemnité due à X._ à titre de détention excessive au sens de l'<ref-law> à 4'600 francs.
C.
Pour l'essentiel, ces deux arrêts sont fondés sur les faits suivants:
C.a. Le 25 mai 2016, la société A._ SA, dont le siège est à B._, a déposé une plainte pénale contre X._ ainsi que contre inconnu pour soustraction de données, accès indu à un système informatique, détérioration des données, utilisation frauduleuse d'un ordinateur, service de renseignements économiques, subsidiairement pour vol, ainsi que pour violation du secret professionnel et violation du secret bancaire.
C.a.a. Dans sa plainte, A._ SA exposait avoir été informée, le 20 mai 2016, par les ingénieurs informatiques de la maison mère et du bureau d'avocats C._, établi au Panama, que des activités inhabituelles avaient été détectées sur deux de ses postes informatiques situés à B._, à savoir une importante augmentation des connexions aux fichiers confidentiels des clients stockés au Panama - de l'ordre de 2'500 connexions par jour au lieu des 30 à 70 habituelles. Ce constat pouvait laisser entendre qu'un programme informatique avait été installé sur ces postes pour se connecter de manière automatique aux données confidentielles du bureau panaméen. Dans ces circonstances, un vol et une destruction de données sensibles étaient à craindre. Les deux postes informatiques en question étaient exclusivement utilisés par X._, l'unique informaticien de la société à B._. Celui-ci avait été licencié pour des motifs économiques, à l'instar d'autres collaborateurs, le 29 avril 2016. Les accès massifs aux données avaient débuté trois jours avant le licenciement dont X._ avait pu se douter. Durant les vacances de celui-ci, du 18 au 23 mai 2016, les connexions avaient cessé pour reprendre massivement le 24 mai 2016 dès midi.
C.a.b. Redoutant que des informations confidentielles ainsi obtenues soient utilisées pour leur nuire, notamment en les transmettant à des tiers, A._ SA a sollicité un action rapide du ministère public.
C.a.c. Sur la base de la plainte précitée, le ministère public a ordonné l'ouverture d'une procédure contre X._, soupçonné de vol de données informatiques. Dans ce cadre, diverses mesures d'investigations ont été ordonnées, notamment une observation secrète du prévenu et une perquisition de son domicile, ainsi que l'utilisation de dispositifs techniques de surveillance.
C.a.d. X._ a été arrêté le 31 mai 2016. Entendu en sa qualité de prévenu, il a été informé qu'il était soupçonné d'avoir, dès le 29 avril 2016, date à laquelle il avait appris son licenciement pour motifs économiques, depuis son poste de travail à B._, extrait, manuellement ou à l'aide d'un dispositif informatique, un volume important de données de clients du serveur A._ SA au Panama, avant de les réexpédier sur un site ou un serveur en Malaisie, agissements susceptibles d'être constitutifs d'abus de confiance (<ref-law>), de vol (<ref-law>), de soustraction d'une chose mobilière (<ref-law>), de soustraction de données (<ref-law>), d'accès indu à un système informatique (<ref-law>) et de détérioration des données (<ref-law>), ainsi que de violation du secret professionnel (<ref-law>).
C.a.e. X._ a été détenu préventivement du 2 au 24 juin 2016.
C.b. L'instruction a notamment révélé ce qui suit:
C.b.a. Les différents éléments extraits de la base de données de A._ SA mettaient en évidence un comportement suspect du profil d'utilisateur " D._ " attribué à X._. Les connexions journalières aux données sensibles des clients stockées au Panama émanant de ce compte étaient habituellement comprises entre 0 et 75. Entre le 25 avril et le 27 mai 2018, elles avaient augmenté jusqu'à atteindre des pics de 1599 et de 2357 connexions, notamment en date du 2 mai 2016, jour exceptionnellement férié au Panama.
C.b.b. X._ était l'administrateur unique du parc informatique de B._ de A._ SA et disposait de privilèges liés à cette fonction. En outre, lui seul avait accès aux postes par lesquels les données avaient transité.
C.b.c. X._ a reconnu avoir utilisé son matériel informatique professionnel à des fins privées, à l'insu de son employeur, notamment pour administrer des sites internet privés, pour se connecter à des sites de rencontre ou en installant une plateforme PLEX, faisant office de serveur et de diffuseur multimédia, lui permettant d'accéder à son ordinateur depuis l'extérieur de l'entreprise. Il avait par ailleurs conservé une liste non protégée de mots de passe de A._ SA sur le bureau de son ordinateur.
C.b.d. La perquisition effectuée le 29 mai 2016 à son domicile a permis de découvrir deux disques durs, qui avaient été formatés deux jours avant l'opération. De nombreux messages électroniques professionnels ont également été retrouvés sur son ordinateur portable privé.
C.b.e. Une vingtaine de programmes malveillants, respectivement leurs traces, ont été découverts sur l'un des ordinateurs professionnels de X._. L'origine de l'infection n'a pas pu être déterminée mais remontait probablement à mars 2016. X._ avait effectué de nombreuses recherches internet sur les logiciels malveillants en question.
En outre, l'essentiel du trafic de données de ses ordinateurs était composé de 24 GB de données sensibles provenant du Panama et de 35 GB de données envoyées vers l'adresse IP xxx en Malaise, notamment entre le 24 et le 27 mai 2017. Du trafic avait également été constaté avec une autre adresse IP malaisienne. A l'époque, celle-ci était associée aux noms de domaine " E._ " et " F._ ".
C.b.f. Dans un message électronique du 22 mars 2016, le responsable informatique de la maison mère avait transmis à X._ le programme d'installation du logiciel de protection qu'ils utilisaient, à savoir " G._ ". Le 19 mai 2016, le même interlocuteur lui avait demandé d'installer les agents de ce programme.
X._ n'a toutefois procédé à l'installation de " G._ " sur son ordinateur que le 25 mai 2016, date du dépôt de la plainte pénale. A cette même date, " G._ " avait détecté et détruit le logiciel malveillant " H._ ", qui s'était installé sur la machine dans l'intervalle et au sujet duquel X._ avait effectué une recherche sur internet le 22 mars 2016.
Un autre logiciel malveillant, nommé " I._ ", a été détecté par " G._ " le 27 mai 2016. Installé sur l'ordinateur de X._ le 11 avril 2016, ce logiciel se connectait automatiquement à l'adresse IP malaisienne correspondant au site " F._ ", vers laquelle ont été exportées près de 35 GB de données sensibles. X._ avait effectué des recherches internet au sujet de ce logiciel les 11 et 24 mai 2016, notamment sur le site russe " J._ ". A la suite de la détection de l'antivirus du 27 mai 2016, il avait supprimé le fichier suspect, lancé une analyse antivirus et effectué des recherches au sujet de " F._ ". Il n'avait pas entrepris de démarches auprès de la société mère.
Le logiciel malveillant nommé " K._ " était également présent sur l'ordinateur de X._ depuis le 23 mars 2016, à tout le moins. Ce " L._ " permettait entre autres une surveillance de la machine par la visualisation de l'environnement utilisateur, la surveillance de frappes du clavier, l'enregistrement audio, le suivi de la souris, le téléchargement de différents composants vers la machine infectée et l'exfiltration de données. Il se connectait automatiquement aux domaines " F._ " et " E._ ", lesquels étaient associés à des cas de contrôle et de commandement par hameçonnage similaires à d'autres affaires de piratage.
Selon la "M._ ", le " K.L._ " et le site malaisien étaient liés à des opérations de piratage conduites ou initiées par le gouvernement du Kazakhstan contre différentes cibles.
C.c. Constatant que la poursuite de l'instruction était compromise faute de la coopération de la part de la maison mère et de la partie plaignante - dont le bureau avait été fermé après licenciement de l'ensemble de son personnel -, le ministère public a annoncé qu'il envisageait de classer la procédure.
C.d. Au cours de l'audience finale du 21 juin 2017, le conseil de A._ SA a confirmé que les contacts avec sa cliente étaient devenus compliqués, ses interlocuteurs étant systématiquement remplacés, de sorte qu'il ne parvenait pas à obtenir les informations réclamées par le ministère public. Un représentant de A._ SA a par ailleurs déclaré que l'organisation informatique était critiquable et la sécurité informatique défaillante, ce que le président-directeur général de la société mère n'avait toutefois pas suffisamment pris en compte.
D.
X._ forme un recours en matière pénale au Tribunal fédéral contre les arrêts des 6 juin 2018 et 20 février 2019 et conclut, avec suite de frais et de dépens, à leur annulation en tant qu'ils lui refusent le droit à une indemnité pour ses frais de défense, sa perte économique et le tort moral, à leur réforme en ce sens que les frais de la procédure pénale sont laissés à la charge de l'État, et qu'une indemnité de 36'720 fr. pour ses frais de défense, de 15'000 fr. pour sa perte de gain et de 35'000 fr. pour son tort moral (sous déduction du montant de 4'600 fr. déjà octroyé) lui est allouée. Il conclut également au renvoi du dossier à l'autorité cantonale pour nouvelle décision au sens des considérants sur les frais et dépens. Il sollicite par ailleurs le bénéfice de l'assistance judiciaire.

Considérant en droit :
1.
Le Tribunal fédéral examine d'office et librement la recevabilité des recours qui lui sont soumis (<ref-ruling> consid. 1 p. 358).
1.1. Le recours est dirigé tant contre l'arrêt du 6 juin 2018 que contre l'arrêt du 20 février 2019, tous deux ayant été rendus dans le cadre de la procédure pénale dirigée contre le recourant.
1.2. L'arrêt du 20 février 2019 qui annule l'ordonnance du ministère public et fixe le montant de l'indemnité en raison de la détention excessive, a mis fin à la procédure et constitue donc une décision finale, contre lequel le recours en matière pénale est ouvert.
1.3. Par ailleurs, selon la jurisprudence, lorsque l'autorité de recours statue simultanément sur le renvoi de la cause et sur les frais et dépens de la procédure suivie devant elle, ce prononcé accessoire est également une décision incidente, alors même qu'il porte sur des prétentions qui ne seront plus en cause par la suite (cf. <ref-ruling> consid. 1.2 p. 331; arrêts 6B_503/2019 du 7 mai 2019 consid. 1.1; 6B_161/2019 du 6 mars 2019 consid. 1.3). Une telle décision ne tombe pas sous le coup de l'<ref-law> (cf. <ref-ruling> consid. 1.1 p. 365 s.), car la partie qui s'estime lésée par la répartition des frais et dépens conserve la possibilité de contester ce point à l'appui du recours contre la décision finale, conformément à l'<ref-law> ou, si celle-ci n'est pas remise en cause sur le fond, dès le moment où elle a été rendue (<ref-ruling> consid. 1.3 p. 419; <ref-ruling> consid. 1.1 p. 365 s.; <ref-ruling> consid. 1.2.2 p. 333 s.; arrêts 6B_503/2019 du 7 mai 2019 consid. 3.1; 6B_161/2019 du 6 mars 2019 consid. 1.3).
En l'espèce, il convient de relever que l'arrêt du 6 juin 2018 par lequel la cour cantonale renvoie la cause au ministère public, ne mettant ainsi pas fin à la procédure, est une décision incidente (<ref-law>), même si elle tranche définitivement certaines questions préalables et statue définitivement sur les frais et dépens - ce que le recourant conteste précisément dans le cadre du présent recours. Il découle cependant de ce qui précède que le recours dirigé contre le prononcé accessoire sur les frais et indemnité est recevable.
2.
Invoquant une violation du droit d'être entendu et l'interdiction du déni de justice formel, le recourant reproche à la cour cantonale de ne pas avoir pris en considération sa réplique - considérant celle-ci comme une écriture spontanée - alors que ladite cour n'avait pas encore statué au moment où elle a reçu l'écriture.
2.1. Conformément aux art. 29 al. 2 Cst. et 6 CEDH, les parties ont le droit d'être entendues. Compris comme l'un des aspects de la notion générale de procès équitable, ce droit comprend en particulier celui, pour une partie à un procès, de prendre connaissance de toute argumentation présentée au tribunal et de se déterminer à son propos, que celle-ci contienne ou non de nouveaux éléments de fait ou de droit, et qu'elle soit ou non concrètement susceptible d'influer sur le jugement à rendre. Il appartient en effet aux parties, et non au juge, de décider si une prise de position ou une pièce nouvellement versée au dossier contient des éléments déterminants qui appellent des observations de leur part.
Toute prise de position ou pièce nouvelle versée au dossier doit dès lors être communiquée aux parties pour leur permettre de décider si elles veulent ou non faire usage de leur faculté de se déterminer (<ref-ruling> consid. 3.2 p. 192). Pour que le droit de réplique soit garanti, il faut que le tribunal laisse un laps de temps suffisant à la partie concernée, entre la remise de la prise de position ou des pièces nouvelles et le prononcé de sa décision, pour qu'elle ait la possibilité de déposer des observations si elle l'estime nécessaire à la défense de ses intérêts (<ref-ruling> consid. 4.1.1 p. 54). A cet égard, le Tribunal fédéral considère qu'un délai inférieur à dix jours ne suffit pas à garantir l'exercice du droit de répliquer, tandis qu'un délai supérieur à vingt jours permet, en l'absence de réaction, d'inférer qu'il a été renoncé au droit de répliquer (arrêts 6B_1058/2018 du 17 décembre 2018 consid. 1.1; 6B_1271/2016 du 10 novembre 2017 consid. 5.1 et les arrêts cités). En d'autres termes, une autorité ne peut considérer, après un délai de moins de dix jours depuis la communication d'une détermination à une partie, que celle-ci a renoncé à répliquer et rendre sa décision (arrêts 6B_1058/2018 du 17 décembre 2018 consid. 1.1; 1B_485/2017 du 7 février 2018 consid. 3.1; 6B_1271/2016 du 10 novembre 2017 consid. 5.1 et les références citées).
2.2. En l'espèce, il ressort de l'arrêt attaqué que la cour cantonale a jugé que la réplique du recourant, déposée trois semaines après l'échéance du délai prolongé qu'elle lui avait accordé, était tardive. Dans son recours, le recourant ne conteste pas avoir déposé sa réplique largement hors délai. Il s'ensuit que c'est à bon droit que la cour cantonale a jugé que celle-ci ne pouvait pas être prise en considération. Le fait que la cour cantonale n'avait pas encore formellement rendu son arrêt n'y change rien (cf. arrêt 5A_905/2016 du 30 mars 2017 consid. 2.2). Par ailleurs, c'est en vain que le recourant se prévaut de l'arrêt 2C_862/2016 du 4 novembre 2016 consid. 4.5 dans la mesure où dans cet arrêt, le recourant avait déposé une réplique dans un délai inférieur à vingt jours, conformément à la jurisprudence précitée, ce qui n'est pas le cas en l'espèce. Pour le surplus, le grief du recourant relatif à l'interdiction du déni de justice formel tombe également à faux.
3.
Invoquant les <ref-law>, 29 al. 2 Cst. et 6 CEDH, le recourant se plaint d'une violation du droit à la réplique. Il reproche à la cour cantonale de s'être notamment fondée sur " l'aide-mémoire des PME édité par N._ " pour lui reprocher une violation fautive de ses devoirs d'employés, sans avoir interpellé les parties à son sujet.
3.1. Le droit d'être entendu consacré notamment par l'<ref-law> implique la faculté de s'exprimer sur les preuves propres à influencer le jugement (<ref-ruling> consid. 1.1 p. 382; <ref-ruling> consid. 3.1 p. 388). Le Tribunal fédéral a ainsi jugé que lorsqu'une juridiction d'appel entend fonder sa décision sur des preuves nouvelles, elle doit en informer les parties et leur donner l'occasion de s'exprimer à leur sujet (<ref-ruling> consid. 1.1 p. 382; <ref-ruling> consid. 2b p. 137 et les références citées; arrêts 6B_546/2018 du 16 août 2018 consid. 2.1). Cette approche vaut en particulier lorsque la juridiction administre d'office les preuves complémentaires nécessaires au traitement du recours (cf. <ref-law>). Conformément à l'<ref-law>, il n'y a pas lieu d'administrer des preuves sur des faits non pertinents, notoires, connus de l'autorité ou déjà suffisamment prouvés (<ref-ruling> consid. 1.1 p. 382; arrêt 6B_546/2018 du 16 août 2018 consid. 2.2).
L'autorité viole le droit d'être entendu des parties par exemple lorsqu'elle fonde sa décision sur des faits qu'elle a elle-même recherchés sur des sites Internet, sans donner communication aux parties de ces recherches ni leur offrir la possibilité de s'exprimer à leur propos (arrêts 6B_734/2016 du 18 juillet 2017 consid. 1.1 non publié in <ref-ruling>; 6B_102/2016 du 9 février 2017 consid. 3.1; 6B_103/2015 du 21 avril 2015 consid. 2, in SJ 2015 I 386).
3.2. Le recourant se prévaut de l'arrêt 6B_103/2015 précité consid. 2, dans lequel la cour cantonale avait elle-même effectué ses propres recherches sur les loyers du marché en consultant divers sites Internet de façon à déterminer si le propriétaire d'un immeuble destiné à des femmes s'adonnant à la prostitution exigeait de ses locataires un loyer usurier, et s'était dès lors écartée des preuves retenues en première instance, sans donner aux parties la faculté de s'exprimer sur ces preuves. En l'espèce, la cour cantonale s'est fondée sur l'art. 7 al. 1 de la loi fédérale sur la protection des données ainsi que sur l'aide-mémoire pour PME, lequel est édité par l'Unité de pilotage informatique de la Confédération, une unité administrative du Département fédéral des finances (cf. art. 20a de l'Ordonnance sur l'organisation du Département fédéral des finances), et contient des règles en matière de sécurité de l'information. Contrairement à ce que soutient le recourant, il s'agit d'un document officiel émanant d'une autorité et disponible sur Internet et non de faits recherchés sur des sites Internet tels que ceux qui ont fait l'objet de l'arrêt qu'il cite. De plus, la solution cantonale se fonde essentiellement sur la violation des obligations de diligence et de fidélité du recourant (infra consid. 5.2), sans que le document officiel en question ne joue un rôle déterminant. Le grief du recourant est rejeté.
4.
Le recourant reproche à la cour cantonale de ne pas avoir traité son grief par lequel il contestait la mise à sa charge de l'intégralité des frais de première instance. Il invoque une violation de son droit d'être entendu.
4.1. Selon la jurisprudence, l'autorité qui ne traite pas un grief relevant de sa compétence, motivé de façon suffisante et pertinente pour l'issue du litige, commet un déni de justice formel proscrit par l'art. 29 al. 1 Cst. (<ref-ruling> consid. 4.2 p. 157; <ref-ruling> consid. 2.1 p. 9). De même, la jurisprudence a déduit du droit d'être entendu de l'art. 29 al. 2 Cst. l'obligation pour l'autorité de motiver sa décision, afin que l'intéressé puisse se rendre compte de la portée de celle-ci et l'attaquer en connaissance de cause (<ref-ruling> consid. 2.1 p. 145; <ref-ruling> consid. 5.1 p. 237; <ref-ruling> consid. 4.2 p. 355). La motivation d'une décision est suffisante lorsque l'autorité mentionne, au moins brièvement, les motifs qui l'ont guidée et sur lesquels elle a fondé son raisonnement. L'autorité ne doit toutefois pas se prononcer sur tous les moyens des parties; elle peut se limiter aux questions décisives (<ref-ruling> consid. 5.2 p. 70; <ref-ruling> consid. 4.2 p. 157; <ref-ruling> consid. 2.2 p. 183; <ref-ruling> consid. 5.1 p. 237; <ref-ruling> consid. 5.2 p. 236). La motivation peut pour le reste être implicite et résulter des différents considérants de la décision (<ref-ruling> consid. 3.2.1 p. 565; arrêts 6B_1185/2018 du 14 janvier 2019 consid. 3.1; 6B_649/2018 du 25 juillet 2018 consid. 1.1).
4.2. En l'espèce, comme le reconnaît d'ailleurs le recourant, force est de constater que dans son mémoire de recours auprès de la cour cantonale, celui-ci n'a pas énoncé ni détaillé de grief relatif à la violation de l'<ref-law>, se contentant de la phrase suivante: " On le voit bien: la condamnation aux frais est choquante; le Ministère public aurait plutôt dû faire application de l'<ref-law> " (recours du 15 décembre 2017, p. 12). Il est donc malvenu de reprocher à la cour cantonale de ne pas avoir examiné les conditions d'application de cette disposition. Quoi qu'il en soit, dans la mesure où elle avait considéré, après un examen détaillé, que c'était à bon droit que le ministère public avait jugé que les frais de justice devaient être mis à la charge du recourant en application de l'<ref-law>, il n'y avait plus lieu de se poser la question d'une éventuelle mise à la charge des frais à la partie plaignante en application de l'<ref-law>. En effet, l'<ref-law> prévoit expressément que les frais de procédure peuvent être mis à la charge de la partie plaignante à condition que " le prévenu n[e] [soit] pas astreint au paiement des frais conformément à l'art. 426 al. 2 ". Le grief du recourant est rejeté.
5.
Invoquant une violation des art. 426 et 429 CPP, le recourant reproche en substance à la cour cantonale d'avoir, malgré le classement de la procédure, mis les frais à sa charge et de ne pas lui avoir accordé une indemnité à titre de l'<ref-law>.
5.1. Conformément à l'<ref-law>, lorsque la procédure fait l'objet d'une ordonnance de classement ou que le prévenu est acquitté, tout ou partie des frais de procédure peuvent être mis à sa charge s'il a, de manière illicite et fautive, provoqué l'ouverture de la procédure ou rendu plus difficile la conduite de celle-ci.
La condamnation d'un prévenu acquitté à supporter tout ou partie des frais doit respecter la présomption d'innocence, consacrée par les art. 32 al. 1 Cst. et 6 par. 2 CEDH. Celle-ci interdit de rendre une décision défavorable au prévenu libéré en laissant entendre que ce dernier serait néanmoins coupable des infractions qui lui étaient reprochées. Une condamnation aux frais n'est ainsi admissible que si le prévenu a provoqué l'ouverture de la procédure pénale dirigée contre lui ou s'il en a entravé le cours. A cet égard, seul un comportement fautif et contraire à une règle juridique, qui soit en relation de causalité avec les frais imputés, entre en ligne de compte (<ref-ruling> consid. 2.2 p. 204 s. et les arrêts cités).
Pour déterminer si le comportement en cause est propre à justifier l'imputation des frais, le juge peut prendre en considération toute norme de comportement écrite ou non écrite résultant de l'ordre juridique suisse pris dans son ensemble, dans le sens d'une application par analogie des principes découlant de l'<ref-law>. Le fait reproché doit constituer une violation claire de la norme de comportement (<ref-ruling> consid. 2.2 p. 205; cf. également arrêt 6B_492/2017 du 31 janvier 2019 consid. 2.2.1 et les références citées). Une condamnation aux frais ne peut se justifier que si, en raison du comportement illicite du prévenu, l'autorité était légitimement en droit d'ouvrir une enquête. Elle est en tout cas exclue lorsque l'autorité est intervenue par excès de zèle, ensuite d'une mauvaise analyse de la situation ou par précipitation. La mise des frais à la charge du prévenu en cas d'acquittement ou de classement de la procédure doit en effet rester l'exception (<ref-ruling> consid. 2.2 p. 205).
5.2. En l'espèce, il ressort des constatations de l'arrêt attaqué que le recourant a notamment conservé une liste non protégée de mots de passe sur le bureau de son ordinateur et des messages électroniques professionnels sur son ordinateur privé, lesquels constituaient des fichiers contenant des données personnelles appartenant à la société. Il a également fait une utilisation inadéquate de son matériel informatique professionnel. Il a notamment effectué des tests et du développement pour des besoins privés sur ses ordinateurs professionnels et créé un accès non sécurisé à son matériel informatique depuis l'extérieur de l'entreprise, alors que son statut de responsable informatique et les privilèges d'accès dont il disposait en tant qu'administrateur système commandaient de prendre des mesures pour éviter toute contamination, par exemple en utilisant une machine spécifiquement vouée aux tests ou en l'isolant du réseau. La cour cantonale a également relevé qu'en attendant plus de deux mois pour installer le programme antivirus que lui avait adressé le responsable informatique de la société mère, il avait fautivement omis de suivre les instructions de son employeur, sans s'expliquer sur son inaction. Pendant ce délai, des logiciels malveillants se sont introduits dans le système et se sont attaqués aux données sensibles de la société mère. Qui plus est, compte tenu des traces retrouvées sur ses appareils, des recherches qu'il avait effectuées au sujet de certains logiciels malveillants, des lenteurs et des dysfonctionnements qu'il avait lui-même constatés sur son ordinateur, le recourant devait se douter à tout le moins que sa machine était infectée. La cour cantonale lui reproche également de ne pas avoir au moins déconnecté la machine infectée du réseau ou sollicité l'aide adéquate et avisé son employeur. Or, le 27 mai 2016, sachant qu'un logiciel malveillant en lien avec " F._ " avait été détecté sur son ordinateur, il n'en a pas avisé la maison mère.
En résumé, la cour cantonale a reproché, à juste titre, au recourant d'avoir violé son obligation de diligence et de fidélité envers son employeur. Elle a également jugé de manière convaincante qu'en laissant subsister un état de fait dangereux, le recourant avait donné l'impression de laisser volontairement le champ libre aux attaques malveillantes, notamment à celle responsable de l'extraction de données sensibles, et d'être lui-même impliqué dans celles-ci. Il s'ensuit qu'une intervention du ministère public afin d'élucider les circonstances des comportements était justifiée, notamment en vue de déterminer si le recourant était impliqué dans un vol de données ou une violation du secret professionnel.
5.3. C'est tout d'abord en vain que le recourant prétend que la cour cantonale aurait violé la présomption d'innocence dans son " raisonnement ". En effet, force est de constater qu'il n'existe aucun élément dans l'argumentation de la cour cantonale relative à l'application de l'<ref-law> qui laisserait entendre que le recourant serait coupable des infractions qui lui ont été reprochées.
5.4. Le recourant prétend ensuite - sans citer d'arrêt - que le Tribunal fédéral aurait jugé qu'une violation des <ref-law> ne saurait justifier l'application de l'<ref-law>. Il en irait de même de la transgression de devoirs contractuels de même que d'obligations purement civiles. Or, dans un arrêt récent, le Tribunal fédéral a rappelé que la violation des devoirs du mandataire envers le mandant pouvait justifier que soient mis à la charge du mandataire les frais afférents à une procédure pénale ouverte contre lui et qu'il en allait de même en cas de violation des obligations de l'entrepreneur, dont la responsabilité est soumise, d'une manière générale, aux mêmes règles que celle du travailleur dans les rapports de travail (cf. arrêt 6B_795/2017 du 30 mai 2018 consid. 1.2; cf. aussi arrêt 6B_803/2016 du 20 juillet 2017 consid. 3.3.3).
Pour le surplus, le recourant se réfère à une seule déclaration d'un représentant de A._ SA - qui ressort de l'arrêt attaqué - dans laquelle celui-ci a critiqué l'organisation informatique de la société. Le recourant en déduit que c'est l'employeur qui est responsable des lacunes informatiques qui lui sont reprochées. Ce faisant, le recourant développe une argumentation purement appellatoire et, partant, irrecevable, par laquelle il oppose sa propre interprétation des déclarations du représentant de A._ SA à celle de la cour cantonale, sans démontrer en quoi celle-ci serait arbitraire (cf. <ref-law>).
5.5. En définitive, la cour cantonale n'a pas violé le droit fédéral en mettant à la charge du recourant les frais de la procédure.
5.6. En vertu de l'<ref-law>, l'autorité pénale peut réduire ou refuser l'indemnité pour les dépenses occasionnées par l'exercice raisonnable de ses droits de procédure (<ref-law>) lorsque le prévenu a provoqué illicitement et fautivement l'ouverture de la procédure ou a rendu plus difficile la conduite de celle-ci. Selon la jurisprudence, la question de l'indemnisation du prévenu (<ref-law>) doit être traitée en relation avec celle des frais (<ref-law>). Si le prévenu supporte les frais en application de l'art. 426 al. 1 ou 2 CPP, une indemnité est en règle générale exclue (<ref-ruling> consid. 2.4.2 p. 357; arrêt 6B_572/2018 du 1er octobre 2018 consid. 5.1.3).
Au vu de ce qui précède, le refus d'allouer une indemnité au recourant ne contrevient pas non plus au droit fédéral. Le grief relatif à la violation de l'<ref-law> doit également être rejeté.
6.
6.1. Le recourant se plaint enfin d'une violation de l'art. 422 al. 2 let. d CPP au motif que la cour cantonale a mis à sa charge les frais de la brigade de la criminalité informatique, lesquels s'élèvent à 18'200 francs.
6.2. Aux termes de l'al. 1 de l'<ref-law>, " Les frais de procédure se composent des émoluments visant à couvrir les frais et des débours effectivement supportés ". Selon l'al. 2, " on entend notamment par débours [...] d. les frais de participation d'autres autorités ".
Selon la jurisprudence, au rang des frais d'autres autorités au sens de l'art. 422 al. 2 let. d CPP figurent notamment ceux des services spécialisés de police tels que les services scientifiques et des instituts médicaux. N'en font en revanche pas partie les dépenses générales consenties par la police en sa qualité d'autorité de poursuite pénale (recherches, arrestations, investigations, mise en sûreté de preuves, mesures d'identification, etc.), pour lesquelles seule une prise en considération dans la fixation de l'émolument est admissible (<ref-ruling> consid. 9.5.3 p. 474; cf. B. STRÄULI, La procédure pénale dans la jurisprudence du Tribunal fédéral: Chronique de la pratique publiée durant l'année 2015, in RPS 136 (2018), p. 310, spéc. p. 345).
6.3. En l'espèce, c'est en vain que le recourant soutient que les frais de 18'200 fr. ne sont pas des " frais de participation d'autres autorités " au sens de l'art. 422 al. 2 let. d LTF, dans la mesure où la brigade de la criminalité informatique constitue un service spécialisé de police au sens de la jurisprudence précitée.
Pour le surplus, contrairement à ce que prétend le recourant, d'une part, ces frais sont documentés dans la mesure où une note de frais détaillée figure au dossier (cf. pièce 90'036) et, d'autre part, la cour cantonale a examiné le montant des débours et a estimé que " ce coût, certes élevé, n'apparai[ssait] toutefois pas démesuré compte tenu de l'ampleur et de la complexité des analyses que l'instruction a[vait] nécessitées " (arrêt attaqué, consid. 3.3).
Les griefs du recourant sont rejetés.
7.
Au vu de ce qui précède, le recours doit être rejeté dans la mesure de sa recevabilité. Comme il était dénué de chances de succès, l'assistance judiciaire doit être rejetée (<ref-law>). Le recourant, qui succombe, supportera les frais judiciaires, qui seront fixés en tenant compte de sa situation financière, laquelle n'apparaît pas favorable (art. 65 al. 2 et 66 al. 1 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'200 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 19 juillet 2019
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Thalmann