<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Judlup Luna</title>
    <description>The latest articles on DEV Community by Judlup Luna (@judlup).</description>
    <link>https://dev.to/judlup</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F132376%2F90260149-815a-4cd8-88bf-176dab076141.jpg</url>
      <title>DEV Community: Judlup Luna</title>
      <link>https://dev.to/judlup</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/judlup"/>
    <language>en</language>
    <item>
      <title>You Don't Know JS: Up &amp; Going: Una guía esencial para principiantes</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Mon, 16 Oct 2023 21:25:56 +0000</pubDate>
      <link>https://dev.to/judlup/you-dont-know-js-up-going-una-guia-esencial-para-principiantes-1l8o</link>
      <guid>https://dev.to/judlup/you-dont-know-js-up-going-una-guia-esencial-para-principiantes-1l8o</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I9940aAN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hkladpslntj85fkax0ii.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I9940aAN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hkladpslntj85fkax0ii.jpg" alt="You Don't Know JS: Up &amp;amp; Going" width="667" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Si estás comenzando tu viaje en el mundo de la programación o simplemente quieres adentrarte en el universo de JavaScript, es probable que alguien te haya recomendado el libro &lt;em&gt;"You Don't Know JS: Up &amp;amp; Going"&lt;/em&gt; de Kyle Simpson. Pero, ¿de qué trata este libro y cómo puede ayudarte en tu proceso de aprendizaje? Aquí te lo explicamos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿De qué trata "You Don't Know JS: Up &amp;amp; Going"?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"You Don't Know JS: Up &amp;amp; Going"&lt;/em&gt; es el primer libro de la serie &lt;em&gt;"You Don't Know JS"&lt;/em&gt;. Esta serie tiene como objetivo proporcionar una comprensión completa de JavaScript, profundizando en sus mecanismos centrales y matices. El libro está diseñado para aquellos con experiencia limitada en programación, presentándoles los bloques básicos de la programación y los mecanismos centrales de JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Características clave:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aprende los bloques esenciales de programación, incluyendo operadores, tipos, variables, condicionales, bucles y funciones.&lt;/li&gt;
&lt;li&gt;Familiarízate con los mecanismos centrales de JavaScript, como valores, cierres de funciones, "this" y prototipos.&lt;/li&gt;
&lt;li&gt;Obtén una visión general de otros libros de la serie y comprende la importancia de captar todos los aspectos de JavaScript.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://amzn.to/3M5ofdU"&gt;&lt;strong&gt;Comprar el libro&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Cómo leer "&lt;em&gt;"You Don't Know JS: Up &amp;amp; Going"&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Si bien puedes leer el libro de principio a fin, también puedes optar por leer las partes que sean más relevantes para tu nivel actual de conocimiento y experiencia. Te recomendamos comenzar con los bloques esenciales de programación para tener una base sólida. Luego, puedes adentrarte en los mecanismos centrales de JavaScript para entender cómo funciona el lenguaje en profundidad.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Partes recomendadas&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Si eres un principiante, te sugerimos comenzar con los bloques básicos de programación para obtener una comprensión fundamental. A medida que te sientas más cómodo, puedes explorar los mecanismos centrales de JavaScript, lo que te proporcionará una visión más profunda del lenguaje.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusión&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"You Don't Know JS: Up &amp;amp; Going"&lt;/em&gt; es una herramienta invaluable para aquellos que desean comprender JavaScript en su totalidad. Aunque puede parecer un poco desafiante al principio, su enfoque detallado y su explicación clara de los conceptos lo convierten en una lectura esencial para cualquier aspirante a desarrollador de JavaScript.&lt;/p&gt;

&lt;p&gt;Recuerda, no tienes que entender todo de inmediato. Tómate tu tiempo para digerir la información y no dudes en volver a las secciones que encuentres más desafiantes. Con paciencia y perseverancia, descubrirás que &lt;em&gt;"You Don't Know JS"&lt;/em&gt; puede llevarte a un nuevo nivel de comprensión y habilidad en el mundo de JavaScript.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>books</category>
      <category>softwaredevelopment</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Buenas prácticas en desarrollo de software</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Sat, 04 Feb 2023 07:01:23 +0000</pubDate>
      <link>https://dev.to/judlup/buenas-practicas-en-desarrollo-de-software-34cb</link>
      <guid>https://dev.to/judlup/buenas-practicas-en-desarrollo-de-software-34cb</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F42u1v36wzvkg9dy9hwo4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F42u1v36wzvkg9dy9hwo4.png" alt="Image description" width="800" height="534"&gt;&lt;/a&gt;&lt;br&gt;
El desarrollo de software es un proceso complejo y requiere de mucha planificación y ejecución adecuada para garantizar un producto de alta calidad. Aquí hay algunas buenas prácticas que deben seguirse para lograr un buen desarrollo de software:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Planificación: Antes de comenzar el desarrollo, es importante tener un plan claro y detallado de lo que se desea lograr. Este plan debe incluir los objetivos, el alcance, los requisitos del usuario, el plazo de entrega y el presupuesto.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Documentación: La documentación es esencial para un buen desarrollo de software. Todos los procesos y decisiones importantes deben ser documentados para que sea fácil de seguir y mantener.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pruebas: Las pruebas son una parte esencial del desarrollo de software. Todos los componentes del software deben ser probados exhaustivamente para asegurarse de que cumplen con los requisitos y funcionan correctamente.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Codificación limpia: Es importante escribir código limpio y bien estructurado. Esto ayuda a mantener el software fácil de leer y de mantener, y a reducir los errores y los problemas de compatibilidad.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Control de versiones: El control de versiones es esencial para el desarrollo de software. Permite realizar un seguimiento de los cambios realizados en el código y hacer copias de seguridad fáciles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Colaboración: La colaboración es clave en el desarrollo de software. Es importante trabajar en equipo y compartir ideas para lograr un producto de alta calidad.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Seguridad: La seguridad es un aspecto crítico en el desarrollo de software. Es importante tomar medidas para proteger los datos y asegurarse de que el software sea seguro y cumpla con los estándares de seguridad.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Siguiendo estas buenas prácticas, se puede lograr un desarrollo de software eficiente, de alta calidad y con una buena documentación. Al final, esto asegurará un producto final sólido y satisfactorio para los usuarios.&lt;/p&gt;

</description>
      <category>announcement</category>
      <category>devto</category>
      <category>web3</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Generando equipos de desarrollo de software competitivos</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Wed, 18 Jan 2023 22:20:13 +0000</pubDate>
      <link>https://dev.to/judlup/generando-equipos-de-desarrollo-de-software-competitivos-199k</link>
      <guid>https://dev.to/judlup/generando-equipos-de-desarrollo-de-software-competitivos-199k</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TzKgJqku--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s17fjcn0u1omq1h53bft.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TzKgJqku--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s17fjcn0u1omq1h53bft.png" alt="Title" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La industria de la tecnología hoy en día está en un constante crecimiento acelerado, lo que ha generado que se requiera mucho más talento para contribuir a la construcción de los retos que surgen en cada una de las compañías; con este proceso acelerado surgen muchos problemas ligados, de los más comunes es el proceso de adaptación de nuevos miembros al equipo (del cuál luego hablaré), cómo ayudar a desarrollar la carrera de cada miembro, los retos técnicos, mantener el equipo alineado y motivado, entre muchos más.&lt;/p&gt;

&lt;p&gt;Precisamente ahí es donde el desarrollo de un equipo que tenga una serie de características intangibles pero esenciales para alcanzar los objetivos propuestos en el colectivo son importantes, dentro de las características que se pueden destacar de un equipo que logra lo que se propone tenemos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Comunicación&lt;/li&gt;
&lt;li&gt;Independencia&lt;/li&gt;
&lt;li&gt;Participación activa&lt;/li&gt;
&lt;li&gt;Visión compartida&lt;/li&gt;
&lt;li&gt;Know-how colectivo&lt;/li&gt;
&lt;li&gt;Ownership&lt;/li&gt;
&lt;li&gt;Colaboración&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3tvHJ0AB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gub1d3r3iodsgavee8az.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3tvHJ0AB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gub1d3r3iodsgavee8az.png" alt="Support 1" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para lograr cada una de estas características es importante que el equipo haga consciencia de que cada paso es necesario para cultivar esa cultura que en un corto/mediano plazo les permitirá llegar a tener un proceso que facilite el desarrollo del día a día.&lt;/p&gt;

&lt;p&gt;Los siguientes aspectos permititen la construcción de un equipo competitivo:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reglas claras&lt;/strong&gt;&lt;br&gt;
Establecer unas reglas claras, y con un enfoque a promover la participación, la comunicación y el respeto por las diversas ideas es fundamental cuando el objetivo en todos los miembros es el mismo y está claro en todo momento.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Todos viendo el mismo horizonte&lt;/strong&gt;&lt;br&gt;
Difundir la visión dentro del equipo es algo esencial, la información es un privilegio, pero un equipo que no tiene la información que le permita saber hacía dónde se dirigen genera mucha penumbra y hace que todo sea difícil de avanzar, invertir tiempo en que cada miembro del equipo tenga claros los objetivos facilitará mucho el poder avanzar sin tantas trabas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;El problema es de todos, la solución también&lt;/strong&gt;&lt;br&gt;
Permitir que cada miembro del equipo participe de manera activa sin temor a ser señalado o cuestionado y reconociendo cada participación incrementa y fomenta el espíritu de comunicación en los miembros del equipo, además de que hacer esto facilita la construcción de soluciones con muchos más puntos de vista pero con el mismo enfoque, el resultado, una solución robusta, contundente y eficaz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Una persona que decide todo solo no es funcional&lt;/strong&gt;&lt;br&gt;
Un equipo donde un miembro lleva total y arbitrariamente las decisiones puede denotar un autoritarismo que puede generar un mal ambiente, una desmotivación que crece constantemente dentro de los miembros del equipo al solo limitarse a recibir porciones de trabajo para realizar sin un objetivo claro en su mente, sin entender el impacto del mismo en el equipo y en el proyecto, de ahí que la delegación de las actividades sea una clave en el éxito de un equipo productivo y competitivo, un colectivo que puede expresar sus opiniones y aportar soluciones en la construcción del proyecto sabiendo que no siempre se podrán implementar todas las posibilidades, pero si siempre serán escuchadas y se implementarán en aras de la conveniencia del proyecto y no de un interés particular va a mantener motivado al equipo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O todos en la cama, o todos en el piso&lt;/strong&gt;&lt;br&gt;
También hay que tener un sacramento importante dentro del equipo, como un código de la calle que reza: "No señalar en público, reconocer en público, corregir en privado" esto facilita la construcción de un equipo que no tiene miedo a equivocarse, por lo que lo hará más rápido y le permitirá aprender de ello lo más pronto, el nivel de madurez es superior al de un equipo monosílabo centrado en el líder y no en el equipo, bien dicen, si sale todo bien, felicidades a todos, y si sale algo mal, nos sale mal a todos, no particularizar los errores y asumirlos como equipo facilita el aprendizaje y superar situaciones complejas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;La confianza en todos los aspectos es esencial&lt;/strong&gt;&lt;br&gt;
Como en todo proceso, el desarrollo de procesos independientes se da con confianza, pero el líder es quién da el primer paso encomendando tareas con un alcance global claro, pero dejando el camino despejado para que el miembro del equipo desarrolle la habilidad de planear, identificar, ejecutar y sobre todo equivocarse sin reproches, incrementando su nivel de confianza a la par que sus habilidades van creciendo de manera que el equipo se va consolidando desde lo individual.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conocer el equipo es fundamental&lt;/strong&gt;&lt;br&gt;
Conocer a cada miembro del equipo, esto es fundamental, conocer sus objetivos, deseos, debilidades va a facilitar al asignación acertada de las tareas, por otra parte, conociendo los anhelos profesionales de cada miembro del equipo es más fácil identificar oportunidades en el día a día que les permita bien sea hacer una actividad en un enfoque en el que esa persona quiere crecer, de allí la importancia de que el interés y escucha por parte del líder es fundamental y debe ser siempre genuino.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Todo se centra en la comunicación&lt;/strong&gt;&lt;br&gt;
Cuando el equipo puede comunicarse mejor, empieza la etapa en la que los obstáculos que se presentan se pueden resolver más rápido mediante la intervención de los diferentes miembros, una característica de un equipo sólido que puede llegar tan lejos como se lo propongan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SCRUM ayuda, y mucho…&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HTy3z-MP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/93537vomnn4x8bha81i5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HTy3z-MP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/93537vomnn4x8bha81i5.png" alt="Support 2" width="800" height="534"&gt;&lt;/a&gt;&lt;br&gt;
Ahora, como medir si todo funciona, personalmente trabajo utilizando metodologías ágiles, particularmente SCRUM, dentro de esta metodología existe una ceremonia que muchos obvian, pero desde el punto de vista de equipo es la más importante, la retrospectiva, esta ceremonia no debería ser opcional; hace un tiempo, trabajando con un equipo de desarrollo de Estados Unidos vi que utilizaban una herramienta llamada Easy Retro, lo que me llamó la atención de esta herramienta y cómo la utilizaban era que era: anónima, concreta, daba un golpe de confianza, reconocimiento y visibilizaba lo que muchos piensan, pero pocos dicen, así luego de esto, esta herramienta me ha acompañado en mis experiencias como líder.&lt;/p&gt;

&lt;p&gt;En esta plataforma se crean tableros en tiempo real que permiten a los miembros del equipo escribir de manera anónima diferentes tarjetas que he repartido en cuatro columnas sencillas: "¿Qué hicimos bien?", "¿Qué podemos mejorar?", "Reconocimientos" y "Preguntas", la siguiente imagen es una refererencia de cómo luce la plataforma:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oc4ywIQ8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/en8lq8yqs03vzgmwmsx6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oc4ywIQ8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/en8lq8yqs03vzgmwmsx6.png" alt="Support 3" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El valor de estas cuatro preguntas:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"¿Qué hicimos bien?"&lt;/strong&gt;&lt;br&gt;
Permite identificar las cosas que se lograron por parte del equipo, en lo técnico o en las habilidades del equipo, este es el espacio para escribir de lo que todo el equipo se siente orgulloso de haber logrado en el último sprint, visibilizar cuanto se puede conseguir si todos trabajan en conjunto y cómo los aportes individuales ayudan a todo el equipo a lograr lo comprometido.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"¿Qué podemos mejorar?"&lt;/strong&gt;&lt;br&gt;
Siempre reconocer lo bueno es fácil en estos casos, decir en qué se falla sin temor a ser identificado o sufrir alguna represalia o presión es clave, en un comienzo el equipo se toma un tiempo en escribir aquí, luego de que el primero se anima, la magia ocurre, problemas técnicos, de alcance, de comunicación, o cualquier problema que surgió durante el sprint aparecerá en el tablero de manera anónima, todos ven y entienden el problema, pero lo más importante, pueden expresarlo, cómo líder poder ver esta información, entenderla, y adoptarla potencializa y acelera la consolidación del equipo, fortaleciendo al equipo a decir cosas incómodas de una manera segura, el día que una situación realmente se pone tensa, el equipo la podrá soportar llegando a soluciones objetivas y sin fricciones que se tornen personales.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Reconocimientos"&lt;/strong&gt;&lt;br&gt;
Esta sección cuando trabajé con el equipo de Estados Unidos, fue una de las que más me llenó de confianza y me gustó, apesar de que en un comienzo se me hacía un poco innecesaria, luego entendí el valor que tiene en lo individual y para todo el equipo; en esta sección el equipo escribe agradecimientos o reconocimientos a personas del equipo por su labor o por un reto encarado durante el sprint que facilitó la obtención de los resultados, dan la bienvenida a los nuevos miembros o los felicitan por sus primeros "pinitos", ver como el nombre de todos empieza a aparecer llena de mucha satisfacción y por ende cada miembro del equipo sabrá que todo esfuerzo no pasará en desapercibido en el equipo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Preguntas"&lt;/strong&gt;&lt;br&gt;
Esta última sección está dedicada a las preguntas que se mantienen en silencio o que por pena no se hacen en público o en privado, algo particular de esta sección es que termina siendo la sección más graciosa de la retrospectiva, allí propuestas de viajes, preguntas irreverentes o bromas con los logros de alguien en particular o del equipo amenizan la reunión y saca una sonrisa en cada miembro del equipo.&lt;/p&gt;

&lt;p&gt;Luego de unos 10 minutos de silencio de ver como aparecen mensajes en el tablero, el líder procede a leer tarjeta tras tarjeta, sección tras sección y dará respuesta o reflexión a cada punto, será la voz del grupo para y por el grupo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cultura, lo es todo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OezWumax--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e5tnttkfhiy5vr8r9po0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OezWumax--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e5tnttkfhiy5vr8r9po0.png" alt="Support 4" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Un equipo competitivo es algo que se dice fácil, pero que cuesta mucho construirlo, esto surge desde el proceso de selección, desde allí el enfoque a la cultura del equipo como punto decisorio por encima de lo técnico garantiza que las personas van a compartir los mismos valores y cultura facilitando los procesos de integración al equipo del nuevo miembro, así como el onboarding técnico al encontrar un equipo sólido, que se comunica y siempre está dispuesto a ayudar a los demás.&lt;/p&gt;

&lt;p&gt;Un equipo competitivo se construye desde el mindset, no desde lo técnico, no caer en micromanagement, no ser invasivo, dejar opinar, equivocarse, participar, delegar, dejar liderar micro procesos, animar, dar confianza y seguridad a los miembros les permitirá sprint tras sprint construir lo que a mediano plazo será el equipo ideal, nada como que un miembro sugiera algo y en los siguientes sprints vea al menos parcialmente que su sugerencia fue tomada en cuenta y está siendo implementada, ese incentivo motiva y motiva muchísimo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paciencia, todo es un proceso..&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BxDu9luF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5xs0bi0mx2rxg1b31ezf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BxDu9luF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5xs0bi0mx2rxg1b31ezf.png" alt="Support 5" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Si pensáramos en como se da este proceso diría que es por etapas de la siguiente manera:&lt;/p&gt;

&lt;p&gt;La primer etapa del proceso de formación de un equipo competitivo es de mucha paciencia, identificar puntos a mejorar, iterarlos y entender que los resultados no se ven de forma instantánea sino al paso de los sprints (en el caso que se trabaje con metodologías ágiles).&lt;/p&gt;

&lt;p&gt;La segunda etapa es enfocarse con mayor contundencia en cumplir con compromisos más exigentes con la mayor disposición del equipo y con todo el interés por cada miembro del equipo.&lt;br&gt;
El liderazgo de equipos competitivos es un reto que hoy en día da réditos a quienes están involucrados en este proceso, no solo al líder del equipo; Los retos de la industria tech cada día son más exigentes, por lo tanto crear y ser parte de un equipo competitivo que va más allá de las hard skills o habilidades técnicas es fundamental para la obtención de los objetivos, allí es donde las soft skills y la cultura hacen parte importante del éxito de un equipo élite.&lt;/p&gt;

&lt;p&gt;Gracias por tomarse el tiempo de leer este contenido, espero les sea de utilidad 😊✌&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>developerteam</category>
      <category>softskil</category>
      <category>leadership</category>
    </item>
    <item>
      <title>Roadmap del consultor tecnológico</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Sun, 01 May 2022 23:50:29 +0000</pubDate>
      <link>https://dev.to/judlup/roadmap-del-consultor-tecnologico-275e</link>
      <guid>https://dev.to/judlup/roadmap-del-consultor-tecnologico-275e</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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 &lt;a href="https://drive.google.com/file/d/1u6RpjeY2kuk4Lqj2nS14-Q_K8vHRVBb7/view?usp=sharing"&gt;Leadership Today&lt;/a&gt;, algunos los soft skills que se evidencian en esta persona y que en últimas le facilitaron construir una carrera que se consolidó fueron:&lt;/p&gt;

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

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

</description>
      <category>consultor</category>
      <category>tecnologia</category>
      <category>transformaciondigital</category>
    </item>
    <item>
      <title>Serverless Community Call 18/11 Serverless Console</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Wed, 17 Nov 2021 13:40:25 +0000</pubDate>
      <link>https://dev.to/judlup/serverless-community-call-1811-serverless-console-32c5</link>
      <guid>https://dev.to/judlup/serverless-community-call-1811-serverless-console-32c5</guid>
      <description>&lt;p&gt;Serverless Community Call será el día 18 de noviembre, allí se dará a conocer los nuevos cambios de este gran Framework, la actualización más importante es Serverless Console, la cuál está enfocada en potencializar la administración de los recursos, equipos, integraciones (PagerDutty, Slack, DataDog, New Relic, etc), alertas y logs, de esta manera pasa de ser un Framework a una potente herramienta Cloud.&lt;/p&gt;

&lt;p&gt;Personalmente he utilizado Serverless Framework y me ha gustado su versatilidad y la manera en que administra facilmente los recursos, por otra parte, la documentación es amplia, y en casos particulares en opciones de configuración muy específicas, se puede acudir a la documentación de CloudFormation de AWS y se puede hacer uso de parámetros no definidos en la documentación.&lt;/p&gt;

&lt;p&gt;¿Ya han tenido experiencia con este Framework? &lt;/p&gt;

&lt;p&gt;Comparte este post, probablemente sea útil para alguien en tu red, si tienes alguna duda o comentario, no dudes en dejarlo en la parte de abajo.&lt;/p&gt;

&lt;p&gt;Regístrate: &lt;a href="https://app.livestorm.co/serverless/serverless-community-call-november-2021"&gt;https://app.livestorm.co/serverless/serverless-community-call-november-2021&lt;/a&gt;&lt;/p&gt;

</description>
      <category>swd</category>
      <category>community</category>
      <category>serverless</category>
      <category>console</category>
    </item>
    <item>
      <title>🤯Aprende a fácilmente a programar para la web con estos 2 sitios</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Thu, 28 Oct 2021 13:42:22 +0000</pubDate>
      <link>https://dev.to/judlup/aprende-a-facilmente-a-programar-para-la-web-con-estos-2-sitios-2l18</link>
      <guid>https://dev.to/judlup/aprende-a-facilmente-a-programar-para-la-web-con-estos-2-sitios-2l18</guid>
      <description>&lt;p&gt;Para quienes se están preguntando, ¿cómo puedo empezar a programar para web? quiero compartirles estos dos sitios bastante útiles:&lt;/p&gt;

&lt;p&gt;En este sitio pueden encontrar amplia cantidad de tutoriales y lo mejor, organizado y con casos prácticos, mi sugerencia es que inicien por la sección "Programación Web"&lt;br&gt;
&lt;a href="https://www.tutorialesprogramacionya.com/"&gt;https://www.tutorialesprogramacionya.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Otra herramienta muy útil es W3 School, en inglés, pero con un contenido organizado, lleno de casos prácticos y fácil para tener como guía de referencia.&lt;br&gt;
&lt;a href="https://www.w3schools.com/"&gt;https://www.w3schools.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Si conocen algún otro sitio que recomienden, por favor, coméntenlo para que así otras personas puedan obtener este valioso conocimiento. #programacion&lt;/p&gt;

</description>
    </item>
    <item>
      <title>DynamoDB Data Modeling (Single Table)</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Mon, 20 Sep 2021 22:17:01 +0000</pubDate>
      <link>https://dev.to/judlup/dynamodb-data-modeling-single-table-48ag</link>
      <guid>https://dev.to/judlup/dynamodb-data-modeling-single-table-48ag</guid>
      <description>&lt;p&gt;&lt;strong&gt;Source:&lt;/strong&gt; &lt;a href="https://youtu.be/OfZgHXsYqNE"&gt;https://youtu.be/OfZgHXsYqNE&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Steps of the process
&lt;/h3&gt;

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

&lt;h3&gt;
  
  
  Example | Project Management Tool
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;SAAS Tool&lt;/li&gt;
&lt;li&gt;Multi-Tenant Support&lt;/li&gt;
&lt;li&gt;Manage Projects and Employees&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 01 - Draw and ERD
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--O6UA2JzX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/Bnw97jbX/1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--O6UA2JzX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/Bnw97jbX/1.png" alt="Diagram ERD" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 02 - Identify Relationships
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Nn7NdalS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/7ZLrN3xF/2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Nn7NdalS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/7ZLrN3xF/2.png" alt="Relationships" width="685" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 03 - Identify Access Patterns
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Organization&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organization CRUD operations&lt;/li&gt;
&lt;li&gt;Find all the projects of an organization&lt;/li&gt;
&lt;li&gt;Find all the employees of and organization&lt;/li&gt;
&lt;li&gt;Find all projects and employees of an organization&lt;/li&gt;
&lt;li&gt;Find an organization by name&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Project&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project CRUD operations&lt;/li&gt;
&lt;li&gt;Find a project by name&lt;/li&gt;
&lt;li&gt;Find the employees assigned to a project&lt;/li&gt;
&lt;li&gt;Find agile projects&lt;/li&gt;
&lt;li&gt;Find fixed-bid projects&lt;/li&gt;
&lt;li&gt;Find on hold projects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Employee&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Employee CRUD operations&lt;/li&gt;
&lt;li&gt;Find all the projects an employee is part of&lt;/li&gt;
&lt;li&gt;Find an employee by name&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Project-Employee&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Assign an employee to a project&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 04 - Identify Primary Key
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GGQQsRi0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/RFKk0GRH/3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GGQQsRi0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/RFKk0GRH/3.png" alt="Identify primary key" width="800" height="242"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pk must be unique&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Example Queries
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Organization (org-id=1234)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KOwDTZp6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/MGCkxgyw/4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KOwDTZp6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/MGCkxgyw/4.png" alt="Organization" width="718" height="125"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Organization CRUD operations&lt;/strong&gt; - PK=ORG#1234, SK=#METADATA·1234&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find all the projects of an organization&lt;/strong&gt; - PK=ORG#1234, SK begins_with(PRO#)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find all the employees of an organization&lt;/strong&gt; - PK=ORG#1234, SK begins_with(EMP#)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find both employees and projects&lt;/strong&gt; - PK=ORG#1234&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find organization by name&lt;/strong&gt; - Not satisfied yet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Project (org-id=1234, project-id=100)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_nYEVkQE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/NFtW2TJP/5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_nYEVkQE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/NFtW2TJP/5.png" alt="Project" width="722" height="133"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Project CRUD operations&lt;/strong&gt; - PK= ORG#1234, SK=PRO#agile#100&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find a project by name&lt;/strong&gt; - Not yet satisfied&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find the employees assigned to a project&lt;/strong&gt; - PK=ORG#1234#PRO#100&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find agile projects&lt;/strong&gt; - PK=ORG#1234, SK begins_with(PRO#agile)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find fixed-bid projects&lt;/strong&gt; - PK=ORG#1234, SK begins_with(PRO#fixed-bid)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find on-hold projects&lt;/strong&gt; - Not yet satisfied&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Employee(org-id=1234, emp-id=300)&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Employee CRUD operations&lt;/strong&gt; - PK= ORG#1234, SK EMP#300&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find all projects an employee is part of&lt;/strong&gt; - No yet satisfied&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find all employees by name&lt;/strong&gt; - No yet satisfied&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 05 - Identify Secondary Indexes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Find all projects an employee is part of - &lt;strong&gt;Use an inverted index&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9_XI-3B3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/XNcMSHXM/6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9_XI-3B3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/XNcMSHXM/6.png" alt="Project" width="800" height="217"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Query on GSI - &lt;strong&gt;PK = ORG#1234#EMP#300&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find all organizations, projects, employees by name - GSI Overloading&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hxRiK93o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/dt4zDh84/7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hxRiK93o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/dt4zDh84/7.png" alt="Filter by name" width="800" height="238"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Find by org name - PK=ORG#1234, filterName=ORG#HappyInc&lt;/p&gt;

&lt;p&gt;Find by emp name - PK=ORG#1234, filterName=EMP#Manoj&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find On-hold projects - Use a Sparse Index&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qWUywzfT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/0jChYQh5/8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qWUywzfT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/0jChYQh5/8.png" alt="On hold project " width="800" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can Query or scan the GSI to find all the on-hold projects&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Using Filter Conditions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;These are used after the run queries and is necessary to add an extra filter with fields that aren't indexes nor keys.&lt;/li&gt;
&lt;li&gt;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&lt;/li&gt;
&lt;li&gt;Use filter conditions if the &lt;strong&gt;secondary indexes cost more than the filter conditions&lt;/strong&gt; due to low query velocity or frequency.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Inverted Index
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--00zcJver--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/KvZ6ZPg1/9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--00zcJver--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/KvZ6ZPg1/9.png" alt="Inverted index" width="800" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Query on GSI - &lt;strong&gt;PK=ORG#1234#EMP#300&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; It's necessary create an index table&lt;/p&gt;

&lt;h3&gt;
  
  
  GSI
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nkkxGpn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/wjMnN92H/10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nkkxGpn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/wjMnN92H/10.png" alt="GSI" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find by org name - PK=ORG1234, Data=ORG#HappyInc&lt;/li&gt;
&lt;li&gt;Find by emp name - PK=ORG#1234, Data=EMP#Manoj&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; It's necessary create an index table&lt;/p&gt;

</description>
      <category>dynamodb</category>
      <category>singletable</category>
      <category>aws</category>
    </item>
    <item>
      <title>.Net Core 3.0 near to real world ;)</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Mon, 30 Sep 2019 04:17:09 +0000</pubDate>
      <link>https://dev.to/judlup/net-core-3-0-near-to-real-world-27eg</link>
      <guid>https://dev.to/judlup/net-core-3-0-near-to-real-world-27eg</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w90oqnJv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/lrvxhef0093fq6uh2eqd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w90oqnJv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/lrvxhef0093fq6uh2eqd.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The past 4th septembre, Microsoft released dotnet 3.0, this is most stable &lt;br&gt;
 version(Microsoft expectancy to world developers),  with It Microsoft show their interest into participated actively in real world development environment with their C# (v 8.0), obviousely all this is a nice dream ( for their and their development community), and It's a result to a great and strong work, Microsoft with .Net Core, ASP and Xamarin show us their interest in became in a main tool to real world developers, now with Dotnet Core 3.0 her compatibility with others operative systems as Linux (mainly) and Mac OS, close the existent gap around of developer world.&lt;/p&gt;

&lt;p&gt;At this point is necessary remember that the top of OS use in Azure after Microsoft integrate Linux in their platform is Linux OS in differente flavours, with the arraived of Dotnet Core open the opportunities to C# community and potentializes It, this time at difference when Microsoft launched Windows Mobile and their OS, at these moment this iniciative was a great mistake for Microsoft and their community.&lt;/p&gt;

&lt;p&gt;Although Microsoft isn't my preferer development environment, this time I think that this is the best success of Microsoft to the next years, open the possibilities to the community is the smarter decition for this company.&lt;/p&gt;

&lt;p&gt;dotnet build &lt;br&gt;
dotnet run &lt;br&gt;
dotnet publish&lt;/p&gt;

&lt;p&gt;Is a nice cli interface, but as all, always exist some to improve, the management of final product is some confused, the management of different versions or integration of severals architectures, and the compatiblity with 64 bits libraries. Other point less is the visual studio requirements and size of updates.&lt;/p&gt;

&lt;p&gt;As a plus point the documentation at site is grow, their structure is nice and this is oriented to practical and quick exercises to ease to curve learn, making interactive the learning.&lt;/p&gt;

&lt;p&gt;This references can help you to learn .Net Core:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/intro"&gt;https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/intro&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?list=PLdo4fOcmZ0oWoazjhXQzBKMrFuArxpW80&amp;amp;v=eIHKZfgddLM"&gt;https://www.youtube.com/watch?list=PLdo4fOcmZ0oWoazjhXQzBKMrFuArxpW80&amp;amp;v=eIHKZfgddLM&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dowload center:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dotnet.microsoft.com/download"&gt;https://dotnet.microsoft.com/download&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Remember update Visual Studio to use Dotnet core 3.0&lt;/li&gt;
&lt;li&gt;Remember you only can use Dotnet 3.0 with Visual Studio 2019 &lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dotnet</category>
      <category>30</category>
      <category>netcore</category>
      <category>linux</category>
    </item>
    <item>
      <title>React Native VS Ionic</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Thu, 31 Jan 2019 16:46:17 +0000</pubDate>
      <link>https://dev.to/judlup/react-native-vs-ionic-55jc</link>
      <guid>https://dev.to/judlup/react-native-vs-ionic-55jc</guid>
      <description>&lt;p&gt;What's the best React Native or Ionic? put below your opinion &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxhbokfhazht2rm2gthdl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxhbokfhazht2rm2gthdl.png" title="React Native VS Ionic" alt="React Native VS Ionic"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;13! :]&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>ionic</category>
      <category>angular</category>
      <category>jsx</category>
    </item>
    <item>
      <title>Hola Mundo</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Wed, 30 Jan 2019 00:09:28 +0000</pubDate>
      <link>https://dev.to/judlup/hola-mundo-1fi9</link>
      <guid>https://dev.to/judlup/hola-mundo-1fi9</guid>
      <description>&lt;p&gt;Hola  Mundo&lt;/p&gt;

</description>
      <category>helloworld</category>
      <category>holamundo</category>
    </item>
  </channel>
</rss>
