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. :)