BIOvercome SAPI de C.V. (Overcome)
Investigación y Desarrollo (2015 - actual)
Coordinador del equipo de programación, encargado de modelar, diseñar y dar vida a los proyectos de la empresa, así como de gestionar las tecnologías empleadas en cada uno, siempre con la misión de mantener a la vanguardia el equipo.
Responsable de implementar Google Cloud Platform en los proyectos de la empresa.
Empleé los lenguajes y las tecnologías:
Proyectos
-
keyboard_arrow_downEleonor
El proyecto más ambicioso de la empresa, construído para convertirse en el asistente digital de los médicos especialistas de México. Creado sobre Google Cloud Platform se compone de dos elementos: Una versión Web desarrollada empleando Google App Engine y una aplicación móvil desarrollada en primer lugar con Adobe Phonegap y posteriormente migrada a Objective C.
Dentro del proyecto, desarrollé completamente solo la aplicación Web, modelando los esquemas de la B.D. Orientada a Objetos, optimizando los procesos de consultas, construyendo los componentes de pantallas, implementando las A.P.Is de comunicación con dispositivos externos y todos los flujos del servidor. Al mismo tiempo que fui responsable del equipo de desarrollo, revisando los requerimientos del proyecto, los tiempos de desarrollo, la asignación y monitoreo de actividades, el seguimiento y solución de incidencias y apoyé en la construcción de flujos y pantallas.
-
keyboard_arrow_downOvercome Users
Como parte de la construcción del proyecto Eleonor desarrollé una segunda plataforma, capáz de resguardar de forma segura e independiente la información personal de cada uno de los usuarios de Eleonor o cualquier otro proyecto de la empresa. De ésta forma, se agilizaría el desarrollo de futuros sistemas y se permitiría la expansión de todos los que se encuentren inter-conectados en un mismo desarrollo.
La plataforma emplea algoritmos de cifrado:
RSAAESBCrypt -
keyboard_arrow_downBase Lib
Para la construcción e intercomunicación de de los proyectos Eleonor y Overcome Users, así como para acelear el desarrollo de aplicaciones futuras, cree éste proyecto, que se compone de funciones y una estructura que permita compartir comportamientos entre proyectos, tales como el Inicio de sesión, Registro de Usuarios, Edición de Perfil de Usuarios, Manejo de Archivos, Manejo de Roles, Comunicación Cifrada, etc.
La creación de ésta librería permite acelear el desarrollo de nuevos proyectos en hasta en un 60%, pues sólo es necesario implementar las funciones ya construídas y no se requiere la recodificación de cada uno de éstos bloques
-
keyboard_arrow_downEntity Generator
Analizando la estructura de los proyectos construídos con anterioridad (Eleonor, Overcome Users, OrciusConsolidate, OricusECommerce, etc.) Me percaté que muchos siguen un mismo patrón de desarrollo, debido a la implementación de buenas prácticas de programación y un estándar de codificación. Por lo mismo y para acelerar el proceso de codificación, así como eficientarlo y reducir la cantidad de errores y tiempo dedicado al Debug, construí una aplicación de escritorio capáz de "Programar" entidades (Entidad + Servicio + ServicioImp + Registro en XMLs) partiendo de los atributos de la entidad.
Ésta aplicación logra acelerar el proceso de desarrollo de nuevas entidades hasta en un 70%.
Express Web Consortium (Orcius)
Investigación y Desarrollo (2012 - 2015)
Coordinador del equipo de programación y desarrollo de sistemas. Encargado de mantener a la empresa al día en cuanto a tecnologías. Responsable de la adopción de Google Cloud Platform como base de los proyectos estructurales.
Encargado del reclutamiento, capacitación y gestión del equipo de programadores, así como de la administración de los recursos para la construcción de las distintas aplicaciones y la definición de alcances y visión de cada uno.
-
keyboard_arrow_downOrcius Consolidate
El proyecto más ambicioso de la empresa, mismo que se convertiría por un tiempo en el pilar y ventaja competitiva frente a otras empresas del mismo rubro. Se trata de un sistema de tres grandes herramientas, mismas que permiten la creación de sitios web de manera personalizada, la edición de los mismos mediante un administrador de contenidos y la gestión de dominios de cada uno.
ConsolidateDesktop
Herramienta de escritorio, basada en EnerwingsDesktop, a diferencia de la anterior, que construía sitios web únicos, ésta se caracterizaba por la construcción de Plantilals, lo que le permitía al panel emplear la misma plantilla en distintos proyectos y actualizarlos todos al mismo tiempo (algo que anteriormente no se podía). Para evitar problemas de compatibilidad, permite versionar cada plantilla.
También modifiqué la lógica de construcción de las mismas, permitiendo al diseñador crear tres tipos de Master dentro de las plantillas: Para Smartphones, Tablets o Escritorio
ConsolidatePanel
Plataforma Web de administración de proyectos. Se compone de 3 funciones principales:
- Administrar las PlantillasEs decir, comunicarse con la herramienta de escritorio para crear o editar alguna plantilla o alguna versión de la misma
- Controlar los sitios web creados desde el administrador de dominios, administrar las plantillas asignadas a cada uno y enlazar con las demás aplicaciones de la empresa (OrciusSocialManager, OrciusECommerce, etc)
- Fungir como Editor de Contenidos, controlando el acceso a los usuarios autorizados a los distintos proyectos y funciona como manejador de contenidos empleando CKEditor. Permite la creación de nuevas secciones para cada sitio, definir para cáda sección qué "Master" debe emplear y especificar qué contenidos debe mostrar en cada bloque de la plantilla dependiendo del dispositivo que acceda. (Smartphone, Desktop, Tablet)
Me encargué por completo del diseño, programación y alcances de la plataforma, por lo que me enfoqué en la construcción de una herramienta atemporal que pudiera implementar de manera automática las mejores prácticas de programación y diseño de páginas web, al tiempo que cumpliera con optimizaciones SEO y pudiera construir contenido para cada tipo de dispositivo, en lugar de sólo redimensionar los contenidos.
-
keyboard_arrow_downOrciusECommerce
Debido al auge de sitios que requerían algún tipo de comercio electrónico, me encargué del modelado de una herramienta de construcción de mercados que pudiera responder a:
- Capacidad para administrar distintas tiendas
- Capacidad para administrar distintos tipos de productos por tienda
- Capacidad para responder a búsquedas de productos dentro de una tienda por distintas características (generales o específicas)
- Capacidad para almacenar imágenes y hojas de estilos distintos por cada producto
- Capacidad de administrar e implementar distintos tipos de promociones:
- Para toda la tienda
- Para productos específicos
- Para productos con determinadas características
- Promociones de descuento directo en el precio como valor fijo o porcentual
- Promociones del 2x1, 3x2, 5x4, etc..
- Promociones en "combo" (en la compra de X, lleva Y con descuento)
- Capacidad para administrar carritos de compra (virtuales o con la sesión iniciada)
- Capacidad para administrar a los clientes
- Capacidad para administrar los roles del personal que podrá acceder al sistema de administración por cada tienda
- Capacidad para comunicarse con cualquier sistema de administración mediante cualquier protocolo web configurable por tienda
- Capacidad para realizar auto-pruebas de diagnóstico
- Capacidad para empacar de manera inteligente los productos comprados
Modelé el 100% de la plataforma y programé gran parte de la misma (aproximadamente un 65%). Cabe aclarar que la plataforma constaba de dos páneles de administración (Administración General de Tiendas y Administración de cada tienda) y una A.P.I.REST/Full que permite la integración rápida del motor de comercio electrónico en cualquier plataforma.
Como logro adicional, integré la API dentro de OrciusConsolidate, con lo que es posible construir un e-commerce con todas las características del motor, con cualquier diseño proviniente de alguna de las plantillas, en secciones especiales dentro de cualquier sitio.
Toda la plataforma emplea distintos protocolos de encriptación RSA y AES para garantizar la integridad de las transacciones
-
keyboard_arrow_downOrciusSocialManager
Respondiendo a la necesidad de administrar de forma segura las contraseñas de los clientes de Orcius para el tema de Redes Sociales, construí una plataforma que permitía no sólo el resguardo sino el seguimiento de las cuentas de los clientes tanto en Facebook como en Twitter, creando gráficas personalizables para los reportes de cada cuenta y permitiendo la comparación con cuentas de los competidores.
Construí el 100% de la plataforma, y mi plan original era integrarlo con los proyectos OrciusConsolidate y OrciusECommerce, sin embargo, debido a factores externos ésto no pudo llevarse a cabo
Java Developer (2010 - 2012)
EnerwingsDesktop
Herramienta de escritorio, construída en JAVA, empleando la tecnología Netbeans Platform, lo que me permitió construír un entorno de desarrollo visual de páginas web. La herramienta se comunicaba mediante un protocolo seguro con la aplicación EnerwingsPanel lo que le permitía convertir el diseño HTML creado en una "Plantilla" para sitios web que es registrada dentro del administrador de contenidos.
Aunque desarrollé al 100% la aplicación, mi principal logro fue la creación del editor visual de HTML, donde debía parsear HTML4 y 5 para interpretarlo y mostrarlo en un componente gráfico que además reaccionara a los gestos del usuario y fuera completamente sensible al contexto
Construí los componentes gráficos de manera que se pudieran crear plug-ins basados en la tecnología NPM de la plataforma y extendidos en paquetes posteriormente.
Instituto Nacional de Astrofísica Óptica y Electrónica (INAOE)
Colaboré dentro de los Laboratorios de Visión por Computadora en proyectos para la Comisión Federal de Electricidad (CFE)
Integrador
Encargado de gestionar al equipo de desarrollo, asignar tareas, controlar tiempos, modelar y codificar las soluciones.
Mi principal aportación durante la duración del proyecto fue la de reducir los tiempos de desarrollo en un 90%, al implementar programación Orientada a Objetos.
Durante el proyecto trabajé con tecnologías: