Distriartistas!

domingo, 1 de mayo de 2022

Roadmap del consultor tecnológico



En la actualidad el mundo de la tecnología avanza a pasos agigantados, desde que apareció el COVID-19, a pesar de lo devastador que ha sido y el daño causado, algunos sectores productivos se han visto beneficiados en medio de todo lo malo, este ha sido el caso particular del sector de la tecnología, sector el cual ha crecido y avanzado en tiempo record lo que se esperaba pasaría en al menos el próximo quinquenio, esto ha permitido que empresas como Zoom hayan crecido exponencialmente, con este boom también es normal que muchas personas de diversas profesiones empiecen a ver en la programación una vía de desarrollo profesional y personal, las comodidades del trabajo remoto, los excelente beneficios y los salarios han provocado un gran éxodo de personas al área de la tecnología.


Ahora, gracias a esta escalada también la demanda de mentes con capacidades extraordinarias que puedan encaminar y conseguir los retos que se viene presentando son apetecidas en todo el mundo, ahí es donde roles como el de consultoría empiezan a ser trascendentes y se empieza a hablar de transformación digital, muchas compañías empezaron a moverse por integrar procesos tecnológicos en sus procesos, ya no como método de competencia, sino  como vía de supervivencia.


Es claro que ante estas oportunidades de un magnífico momento muchas personas pueden optar por empezar a hacerse llamar “consultores” que se terminan aprovechando de empresarios con un afán por no desaparecer y con un mundo de desconocimiento e incertidumbres y terminan accediendo ante estas personas que, por el contrario de llegar a facilitar el proceso, pueden terminar siendo la estocada que le faltaba a la empresa al encaminar erradamente las estrategias y generar un desangre de recursos de una compañía sin ningún resultado.


Un consultor no es precisamente alguien que recién egresa o domina una tecnología para realizar una implementación, un consultor es una persona que tiene la preparación y conocimiento para asumir retos, pero lo más importante es que tiene una amplia experiencia en procesos complejos en donde la toma de decisiones es clave para el éxito u obtener los resultados esperados.


Una ruta para ser consultor empieza sin siquiera pensar en que ese será el fin, un consultor no es más que alguien que es un apasionado por lo que hace, que para llevarlo a un ejemplo, veamos alguien que empieza como programador, su inicio se fundamenta en los primeros años de adolescencia, el gusto por entender cómo funciona un computador puede llevarlo a tomarse horas y horas buscando acerca de esto, lo cual con el tiempo terminará preguntándose cómo puedo hacer mi propio software y cuales son los recursos necesarios para llevar a cabo el cometido, de esa manera termina aprendiendo un lenguaje de programación, digamos, JavaScript, luego de un tiempo termina su bachillerato y decide ingresar a la universidad a estudiar ingeniería de sistemas, allí solidifica sus hipótesis y empieza a ir por un camino más amplio, sus límites se amplían, participa de proyectos en los que adquiere más conocimientos y expertise en otras tecnologías que no conocía, cerca de finalizar su carrera ya tiene varios proyectos en su mochila, de esa manera consigue su primer trabajo que le permite pagarse sus estudios y lo más importante, empezar la vida profesional, tiempo después obtiene su título y continúa su proceso en la compañía que confió en sus capacidades y le brindó la oportunidad de iniciar como desarrollador junior, de esa manera pasó por un proceso de varios proyectos en los que no solo interactuó como desarrollador, si no se interesó por aportar en la construcción de la solución generando diálogos no técnicos con los clientes internos y externos de los proyectos, lo cuál le permitió adquirir uno de los soft skills más importantes, la comunicación, con el paso del tiempo sus contribuciones al equipo subieron tanto de calidad y precisión, que la empresa decide nombrarlos desarrollador semi  senior, su pasión lo llevó a dar más de lo que debía estar dando en su cargo, su carrera continuó avanzando y años más tarde con mucho conocimiento de negocio, contacto con clientes, resolución de problemas y ponencias sobre implementación de buenas prácticas, la empresa decide ascender al desarrollador senior, camino donde empieza a dar mentorías a sus compañeros, a asumir tareas complejas y a ser un referente de su equipo, adicional en su tiempo libre decide hacer certificaciones y estudios complementarios que le permitan adquirir nuevas habilidades, luego de esto la compañía lo cita y le plantea 3 caminos para su carrera, desarrollador senior con un grado superior, arquitecto de software junior o technical lead, cada uno tiene implicaciones distintas a futuro, opta por arquitecto junior, allí empezó a aportar de la mano de arquitectos con una mayor experiencia en la construcción de nuevas soluciones de clientes, sus skills de negociación, entendimiento, dimensionamiento y toma de decisiones fueron creciendo, un tiempo después la empresa decide otorgarle un ascenso como arquitecto senior, allí empieza a tomar las riendas de un proyecto grande en el cuál él decide la tecnología y tiene la capacidad de asesorar a un cliente en cuanto a qué es lo mejor para su implementación, sustentar sus decisiones con el equipo no técnico de la compañía, generar los reportes, traducir todo el proceso al equipo técnico y velar por la correcta construcción de la solución, así como el seguimiento en los ajustes en vivo que iban ocurriendo durante el proceso, debido a esta gran labor la empresa recibe una serie de reconocimientos y otras empresas empiezan a buscar la mente detrás de este logro, en ese punto la decisión moral es ofrecer servicios de consultoría a través de la compañía, entra a otro mercado donde pasa a ser un referente público en temas especializados, luego de un tiempo toma la decisión de dejar la compañía con el mayor agradecimiento y luchando por un sueño propio se convierte en un consultor.



En el anterior ejemplo se denotan habilidades del tipo “hard” como lo son los conocimientos técnicos en una tecnología, los cuales le permitieron avanzar en su carrera profesional, pero dentro de los procesos que también supo entender fue la consecución de habilidades del tipo “soft”, como la comunicación, el liderazgo, el entendimiento de los procesos en ambientes técnicos y no técnicos, además de poder llevarlos de un extremo a otro de manera clara y acertada, de acuerdo al libro Leadership Today, algunos los soft skills que se evidencian en esta persona y que en últimas le facilitaron construir una carrera que se consolidó fueron:


  • Liderazgo
  • Comunicación
  • Confianza
  • Responsabilidad
  • Honestidad
  • Asertividad
  • Visión
  • Escuchar
  • Inteligencia emocional
  • Sustentabilidad técnica y personal
  • Conciencia
  • Empatía
  • Motivación
  • Superación
  • Creatividad
  • Iniciativa
  • Auto confianza
  • Resiliencia
  • Perseverancia
  • Estimación
  • Coherencia
  • Cohesión 


De todo lo anterior podemos evidenciar como el proceso no es una cuestión de meses, es el resultado de una vida de dedicación, enfoque y pasión hacia lo que se hace, lo cual termina convirtiéndose en un profesional que puede contribuir con sus conocimientos y experiencias a otras compañías que tienen diferentes retos y que de no resolverlos de manera oportuna y eficiente, podrían terminar desencadenando una serie de consecuencias que incluso podrían terminar con la compañía, de allí la importancia de realmente contar con profesional con una trayectoria que les facilite la toma de decisiones y las mejores vías de implementación de soluciones que los lleve al siguiente nivel.


Por último, es importante ser bueno técnicamente, pero es aún más importante ser bueno como ser, crecer en valores y llevarlos al plano profesional con el objetivo de engrandecer a quienes confían en las habilidades técnicas, por otra parte el desarrollo de habilidades blandas o “soft skills” les permitirá crecer mucho más rápido en todos los aspectos, en ese punto es donde muchos profesionales se quedan y no encuentran una vía para llevar su carrera profesional al siguiente nivel.


miércoles, 17 de noviembre de 2021

Serverless Community Call 18/11 Serverless Console


Serverless Community Call will be on November 18, there will be announced the new changes of this great Framework, the most important update is Serverless Console, which is focused on enhancing the management of resources, teams, integrations (PagerDutty, Slack , DataDog, New Relic, etc), alerts and logs, in this way it goes from being a Framework to a powerful Cloud tool.

Personally I have used Serverless Framework and I liked its versatility and the way it easily manages resources, on the other hand, the documentation is extensive, and in particular cases in very specific configuration options, you can go to the CloudFormation documentation of AWS and can make use of parameters not defined in the documentation.

Have you already had experience with this Framework?
Share this post, it will probably be useful for someone in your network, if you have any questions or comments, do not hesitate to leave it at the bottom.

#aws #cloud #community #serverless #javascript #console

domingo, 24 de octubre de 2021

Micro Frontend Architecture

#Recommended
The #MicroFrontend architecture is beginning to gain relevance, hand in hand with the progress that the #MicroServicios architecture has had in the backend of modern architecture, this new way of empowering, decentralizing and making the development of new software more efficient will be acquiring greater strength in the coming years, it is worth understanding where we are going and taking advantage of the implementation in software, which requires, for example, scaling or granulating its components to give a greater and better profile towards your business.
This book called Building Micro-Frontends is a great guide to get on that new perspective for the world of software development.

https://www.buildingmicrofrontends.com/


Architecture diagram:



martes, 14 de septiembre de 2021

DynamoDB - Data Modeling

Steps of the process

  • Draw an entity diagram
  • Identify the relationships between entities (1:1, 1:N, N:M)
  • List down all the access pattern for each entity
  • Identity the primary key ( Hash + Sort) for each entity
  • Identify the secondary indexes for additional access patterns if required

Example | Project Management Tool

  • SAAS Tool
  • Multi-Tenant Support
  • Manage Projects and Employees

Step 01 - Draw and ERD

Diagram ERD

Step 02 - Identify Relationships

Relationships

Step 03 - Identify Access Patterns

Organization

  • Organization CRUD operations
  • Find all the projects of an organization
  • Find all the employees of and organization
  • Find all projects and employees of an organization
  • Find an organization by name

Project

  • Project CRUD operations
  • Find a project by name
  • Find the employees assigned to a project
  • Find agile projects
  • Find fixed-bid projects
  • Find on hold projects

Employee

  • Employee CRUD operations
  • Find all the projects an employee is part of
  • Find an employee by name

Project-Employee

  • Assign an employee to a project

Step 04 - Identify Primary Key

Identify primary key

  • Pk must be unique

Example Queries

Organization (org-id=1234)

Organization

  • Organization CRUD operations - PK=ORG#1234, SK=#METADATA·1234
  • Find all the projects of an organization - PK=ORG#1234, SK begins_with(PRO#)
  • Find all the employees of an organization - PK=ORG#1234, SK begins_with(EMP#)
  • Find both employees and projects - PK=ORG#1234
  • Find organization by name - Not satisfied yet

Project (org-id=1234, project-id=100)

Project

  • Project CRUD operations - PK= ORG#1234, SK=PRO#agile#100
  • Find a project by name - Not yet satisfied
  • Find the employees assigned to a project - PK=ORG#1234#PRO#100
  • Find agile projects - PK=ORG#1234, SK begins_with(PRO#agile)
  • Find fixed-bid projects - PK=ORG#1234, SK begins_with(PRO#fixed-bid)
  • Find on-hold projects - Not yet satisfied

Employee(org-id=1234, emp-id=300)

  • Employee CRUD operations - PK= ORG#1234, SK EMP#300
  • Find all projects an employee is part of - No yet satisfied
  • Find all employees by name - No yet satisfied

Step 05 - Identify Secondary Indexes

  • Find all projects an employee is part of - Use an inverted index

Project

Query on GSI - PK = ORG#1234#EMP#300

  • Find all organizations, projects, employees by name - GSI Overloading

Filter by name

Find by org name - PK=ORG#1234, filterName=ORG#HappyInc

Find by emp name - PK=ORG#1234, filterName=EMP#Manoj

  • Find On-hold projects - Use a Sparse Index

On hold project

You can Query or scan the GSI to find all the on-hold projects

Using Filter Conditions

  • These are used after the run queries and is necessary to add an extra filter with fields that aren’t indexes nor keys.
  • A filter query is applied after the query finished, but before the results are returned. A query consumes the same amount of read capacity, it not been affected if a filter condition exist
  • Use filter conditions if the secondary indexes cost more than the filter conditions due to low query velocity or frequency.

Inverted Index

Inverted index

Query on GSI - PK=ORG#1234#EMP#300

The reason to use an inverted index is because of the value to filter that I need is the SK value, so, I can’t use a query method without specified a PK, in this way we can swap the PK and SK to become SK in PK and now is possible to do the query.

Note: It’s necessary create an index table

GSI

GSI

It’s used when you need to make a search using a field different to SK to complement the search keys, so, you can create a GSI to make possible it query, in above example, the GSI is created for enable the filter by name query using PK + a new field called Data

  • Find by org name - PK=ORG1234, Data=ORG#HappyInc
  • Find by emp name - PK=ORG#1234, Data=EMP#Manoj

Note: It’s necessary create an index table

Converted from markdown using https://stackedit.io/app#

viernes, 23 de abril de 2021

Conferencia IoT | Protipado IoT Plug & Play - Flisol 2021

El próximo 24 de abril los invito a participar del @flisolbogota , allí estaré dando una charla acerca del prototipado IoT plug & play, cabe resaltar la charla del gran @maddoghall El poder del software libre 😊 Link de la transmisión

sábado, 19 de diciembre de 2020

Participación en Apps.co como asesor temático de programación.

Que grato fue haber sido parte de APPS.CO - MinTIC como asesor temático de programación, en esta etapa acompañé 2 emprendimientos digitales en la arquitectura y desarrollo de sus soluciones digitales, en estas aporte con mis conocimientos y mi experiencia, cada peldaño es importante en la obtención del objetivo. :)

lunes, 15 de junio de 2020

Publicación de mi artículo - Internet de las cosas ¿por qué ahora? | Revista Empresarial & Laboral




Estoy sumamente contento debido a la publicación de mi primer artículo en un medio, para este decidí escribir acerca de la importancia del Internet de las cosas en este momento haciendo acotación de referencia en la evolución de la tecnología en los últimos 15 años y cómo esta nos ha venido preparando para adoptar el IoT en nuestras vidas.


Espero les guste.

sábado, 6 de junio de 2020

Apptruismo.org | Conectamos a quien necesita ayuda con quien puede ayudarlos.


Reconocimiento NEC



El día de hoy he recibido el reconocimiento por mi trabajo en lo que ha sido un gran reto en mi vida, cambiar de ciudad (Bogotá ), llegar a una multinacional Japonesa como lo es NEC, como siempre llegar con mis ganas de salir adelante, de hacer cosas nuevas, cosas grandes, en esta carrera le aposté a demostrar que el área de desarrollo podía hacer más que desarrollo interno e impactar positivamente al negocio, en esta carrera se presentó la oportunidad de intervenir un proyecto con Gran Colombia Gold, en el cual se debía realizar un software de control de acceso para integrarlo con hardware (controladoras HID) y NeoFace Watch ( reconocimiento facial), ante una situación compleja de cara al cliente, asumí el reto, arquitecté la solución y lideré un equipo en total de 14 personas, en diciembre regresé de Segovia ( Antioquia) dejando un sistema de control de acceso totalemente funcional y estable, con el respaldo del cliente, de la directivas de la empresa y con un propósito cumplido de un pensamiento que nació en el 2019, ahora con el respaldo de la empresa entro a liderar el proceso del desarrollo e integración de soluciones para la compañía desde el área de Marketing asumiendo nuevos retos y queriendo cada día más, gracias a quienes fueron parte de este logro. :)

jueves, 16 de abril de 2020

Codicia y desinteres.

Miles de peros acompañan cada propuesta, cada presentación, peros que desaniman, pero realmente en lo que se trabaja no tiene presente? , al parecer, no, no es asi, mientras personas del común ocupando cargos de jerarquía imponen una serie de obstaculos y excusas para acceder a adquiri un producto innovador de tecnología que se desarrolla en su región, con argumentos sin peso en su pronunciación, otros siguen de cerca el trabajo, de manera sigilosa, haciendo amagues cual depredador frente a su presa, pero solo esperando la oportunidad para alcanzar la codiciada información y conocimiento técnico, el cual no sólo basta con tener el capital para contratar personal es suficiente, es un trabajo arduo de años de ensayo y error, estas personas tienen un interes único, absorber para su beneficio, a cambio, la esencia inicial va al bote de basura, sus intentos de atraer ese conocimiento con tácticas de alto intelecto, como de caer al más bajo instinto, no desmotivan, llenan de valor y de pundonor para buscar el objetivo, lo importante no es tener la gallina de los huevos de oro, es saber que se tiene y para que sirve.

Estamos sumergidos en un ecosistema que quiere ser de primer mundo, desarrollado, pero nuestra cultura, nuestro contexto y nuestra manera de pensar, decir y ser no nos permite surgir como comunidad, la condición de abórigenes que se deslumbran por cual más brillen los espejos que traen, es el que más pleitecia hay que rendirle, por otra parte, el término networking y coworking viene de culturas desarrolladas que entienden que el conocimiento y el desarrollo no ocurre de una sola unidad, se requieren de varios para alcanzar dichos objetivos, cosa que nosotros no comprendemos, muchos (la mayoría) quieren que todo pase fácil y sin esfuerzo, otros se ufanan de sus "logros" comprados con el dinero de sus padres, otros consideran que llenarse de títulos es más importante que entender que uno se capacita para desarrollar, hacer algo que cambie y aporte, no para que le suban el salario unicamente.

Muchos dirán, y si está tan aburrido del entorno, porque no se va?, a eso respondo, trabajo para eso, no por salir del problema y ajustarme a una cultura más disiciplinada y estricta, veo más la opción de salir, como una alternativa única de hacer crecer el desarrollo, en un mercado donde los negocios fluyen, no se influyen, donde la gente valore que se tiene de innovador, y no, si Juan, Pedro y Tejurgo lo tienen, allá donde las flores crecen, se cortan y se exportan a Colombia y se vender al triple, pero aquí, donde un productor local las ofrece se le dice que de un descuento y se le quiere pagar a un cuarto de los que cuestan las importadas, bajo el argumento de, "es una flor, eso no cuesta", porque nadie puede creer que alguien que se levanta todos los días en la misma tierrita pueda estar mejor.

7/9/17

SoFtWaRe PaRa ToDoS









El programa k vamos a utilizar para realizar las descargas se llama UTORRENT, este programa es un programa P2P, con e cual podemos hacer las descargas en un solo fichero y no teemos k ponernos a bajar por partes............

el link de descargar de UTORRENT
Para empezar vms a descargar el macromedia Flash Player 8

3/12/09

COLOMBIA


COLOMBIA




COLOMBIA






Colombia, oficialmente República de Colombia es un país ubicado en la zona noroccidental de América del Sur, con Bogotá como su ciudad capital. Limita al este con Venezuela y Brasil, al sur con Perú y Ecuador y al noroeste con Panamá; marítimamente limita con Panamá, Costa Rica, Nicaragua, Honduras, Jamaica, Haití, República Dominicana y Venezuela por el Mar Caribe, y con Panamá, Costa Rica y Ecuador por el Pacífico. Su superficie es de 2.070.408 km², de los cuales 1.141.748 km² corresponden a su territorio continental y los restantes 928.660 km², corresponden a su extensión marítima. Colombia mantiene diferendos con Venezuela y Nicaragua por límites marítimos. Es el único país de América del Sur que tiene costas en el Océano Pacífico y en el Mar Caribe donde hacen parte de su territorio diversas islas, como el Archipiélago de San Andrés y Providencia. Colombia es el cuarto país territorialmente más grande en América del Sur, así como el tercero en población en América Latina.

El territorio que comprende la actual Colombia fue habitado inicialmente por tribus amerindias que migraron desde Mesoamérica y el Caribe. Las principales tribus fueron los Muiscas, Quimbayas, Tayronas y los Zenú es pertenecientes a tres familias lingüísticas; Arawakana, Chibcha y Caribe limitando al sur con los Incas. En el siglo XV, los
conquistadores españoles conquistaron y colonizaron este territorio que con llevaron a la creación del Virreinato de Nueva Granada. En 1819, las campañas de Simón Bolívar logran la independencia de Colombia de España pero para el año 1830, la Gran Colombia ya había colapsado con guerras internas que desembocaron en la separación de las actuales Venezuela y Ecuador. Colombia surgió entre tensiones bipartidistas de liberales y conservadores como la República de Nueva Granada y luego experimentó el federalismo con la Confederación Granadina en 1858 y los Estados Unidos de Colombia en 1863 hasta que se consolidó la acual república en 1886. Luego de la Guerra de los Mil Días, la entonces provincia de Panamá se separó de Colombia en 1903. Colombia se vió envuelta en la guerra con el Perú en 1932, por territorio, y que se solucionó por medio de la Liga de Naciones. En 1948 estalló la época de la Violencia bipartidista, guerra civil que perduró hasta principios de los años 1960s y que se mezcló con el surgimiento de carteles de drogas ilegales. Esto dio origen al actual conflicto armado de Colombia entre el gobierno, las guerrillas comunistas, paramilitares y narcotraficantes que como resultado ha dejado miles de muertos, heridos, secuestrados, desplazados y desaparecidos, lo que ha conllevado a que Colombia sea clasificado entre los paises más violentos del mundo y de los principales exportadores de drogas ilegales. En contraste, Colombia ha sido uno de los países de más relativa estabilidad institucional en América del Sur. La política partidista y electoral se ha mantenido relativamente estable, con una breve interrupción entre 1953 y 1957, propiciada por la misma clase política.

Colombia es reconocido a nivel mundial además por la producción de café colombiano, las exportaciones de flores, Carbon y petroleo, su diversidad cultural y por ser el segundo pais más rico en biodiversidad del mundo.




argentina 0-5 COLOMBIA






width="30%">








>
hecho en colombia por JULIAN LUNA
13/1/09

judlup@gmail.com>

Relación a una tabla Laravel (Lumen) - MongoDB

En estos días he estado trabajando en una aplicación la cual estoy realizando con Lumen y MondoDB Cloud, encontré esta librería para poder utilizar MongoDB con Eloquent (https://github.com/jenssegers/laravel-mongodb)  casi de manera transparente, al momento de relacionar los modelos, me ha dado bastante problema el poder lograrlo, más en el caso especifico en que lo que quiero realizar es relacionar dos llaves de la misma tabla para obtener los resultados, algo así:

Usuario              Ayuda
_id                     _id
usuario              ayuda_usuario_id
                          ayudado_usuario_id

Al momento de consultar Ayuda, debe traer los datos correspondientes a ayuda_usuario_id y ayudado_usuario_id, para esto con el modelo de relación hasOne no me ha funcionado, así que decidí buscar la manera de poder hacerlo raw.

Utilicé MongoDB Compass para generar la consulta mediante lookup y unwind, luego de tenerla busqué la manera de retornar la consulta y encontré el metodo raw en la librería, pero el problema era si quería filtrar los datos no me lo permitía, así que agrupé todo por arrays y he logrado entontrar la manera:

       
public function consultarPorUsuario($id)
  {
    
    return  Ayuda::raw(function ($collection) use ($id) {
       return $collection->aggregate(
        array(
          // Match
          array(
            '$match' => array("_id" => new ObjectID($id) )
          ),
          // Lookup ayuda
          array(
            '$lookup' => array(
              "as" => "ayuda",
              "from" => "usuario",
              "foreignField" => "_id",
              "localField" => "ayuda"
            )
          ),
          array( '$unwind' => array( 
            'path' => '$ayuda',
            ),
          ),
          // Lookup ayudado
          array(
            '$lookup' => array(
              "as" => "ayudado",
              "from" => "usuario",
              "foreignField" => "_id",
              "localField" => "ayudado"
            )
          ),
          array( '$unwind' => array( 
            'path' => '$ayudado',
            ),
          )
        )
      );
   });
    
  }

       
 

Espero esto le pueda ser de utilidad a alguien más.

Judlup