Un tiempo atrás, hicimos una encuesta sobre el estado laboral de los trabajadores de software en Argentina y divulgamos los resultados de la misma, disponibles acá.

Hoy vamos a analizarlos paso a paso, usando el lenguaje R. Todo el código está disponible online con licencia MIT.

Ante cualquier duda, comentario o mejora, abran un ticket en el repo. También respondo por twitter en @fernandezpablo

Data Munging

Los datos se encuentran en formato .csv, que es muy fácil de consumir desde R:

> sueldos <- read.csv('argentina.csv')
> nrow(sueldos)
[1] 4001

Perfecto! tenemos 4001 sueldos de argentina. Lamentablemente hay algunos inconvenientes:

  • Hay sueldos netos y brutos
  • Los nombres de las columnas no son los mejores (“Tengo” para edad, “Qu…tan.conforme.est..s.con.tu.sueldo.”, etc).
  • Algunos salarios son obviamente ficticios o están mal ingresados (hay algunos de $1, otros de más de un millón)

Vamos a hacer lo que se denomina data munging que es básicamente transformar los datos para solucionar los problemas descriptos anteriormente. La función que hace esto se puede ver acá.

Los datos “limpios” están en el archivo clean.csv en el repo, por si alguien quiere utilizarlos para crear sus propias visualizaciones.

Histograma

Con los datos en el formato que queremos, podemos empezar con algunas visualizaciones simples. Un histograma que nos muestre la distribución de los salarios, por ejemplo:

La distribución es right skewed, lo que significa que no simétrica como una distribución normal sino que se “estira” hacia la derecha (ver Skewness). Esto nos indica que hay algunos sueldos muy altos comparados con la media.

Pero ¿cuál es la media? podemos agregar una línea vertical que nos la resalte:

La media está en $25.597,71 (salario bruto, recordemos).

En las distribuciones no normales como ésta, la media no coincide con el centro de la distribución. En estos casos se puede agregar la mediana, que está en $22.857,14:

Otro valor interesante es la moda, el valor que más se repite. En este caso es $21.428,5714. Si bien es un número raro, recuerden que llegamos a él después de nuestra “normalización” de salario neto/bruto. En este caso probablemente se refiere a $15.000 de salario neto (en mano).

Manejo de Outliers

También podemos eliminar los outliers de la muestra, para concentrarnos en el la parte más densa de la distribución. Un método popular para esto es el de Tukey. Antes de “limpiar” los outliers, veamos qué datos nos quitaría de nuestra muestra:

De correr el filtro de Tukey para los outliers, todo salario arriba de $46.571,43 sería descartado (el método también elimina outliers “bajos”, pero en este caso la línea de corte da negativo y por lo tanto no descarta datos).

Los sueldos altos representan en este caso información importante (a mi entender) y por lo tanto no serán descartados para futuros análisis, pero el código disponible permite hacer este recorte cambiando la línea:

clean <- cleanup(df, handleOutliers = identity)

por esta otra:

clean <- cleanup(df, handleOutliers = tukey)

To Be Continued…

Ya tenemos una idea de la distribución y los datos limpios para seguir analizando ¿qué podríamos preguntarnos ahora? Algo interesante sería poder ver la distribución de salario discriminada por sexo:

A simple vista lo que se puede ver es que hay un porcentaje menor de mujeres en nuestra muestra (de hecho son 290 mujeres y 3563 varones) pero ¿las distribuciones son similares? ¿cobran más los hombres o las mujeres en la industria de software argentino?

La respuesta a estos y otros interrogantes más, en el próximo post 😊

Saludos!

Agradecimientos a la gente que comentó y sugirió mejoras: Federico BayléMariano Barrios, Nadia Kazlauskas, Mauro García Aurelio, Román ÁvilaAndrés de Barbará.

Queremos agradecer a los más de 4000 participantes que formaron parte de esta nueva encuesta de sueldos!

 

Les dejamos un PDF con algunos gráficos sobre los resultados y quienes que quieran comparar su sueldo con el de otros pares, pueden utilizar este Google Spreadsheet. Aquellos que tengan ganas de hacer un análisis más exhaustivo también pueden descargar un zip con los resultados en csv.

 

Como siempre, algunas frases que nos regalaron los encuestados:

Me dejan laburar fumado

Muy sangriento

Son todos unos chupaculos, la gente de la noche y los fines de semanas son unos hijos de puta que están enojados con la empresa y escalan todo a la guardia (no paga) y no hacen una mierda. La semana que estas de guardia te joden la vida a vos, encima si no atendés la guardia te putean. SEND HELP.

Monos son mas productivos.

Es una poronga

No tenemos poder adquisitivo, subsistimos

No trabajen en consultoras.

El jefe de IT es el hijo del dueño

Una poronga atada al ojete

A fin de mes me rajo a otro lugar 🙂

En +7 años perdi +4 Gerentes, la mayoria terminaron con problemas psiquiatricos y stress…. Pero el que resuelve los desastres a la madrugada soy yo ¬¬

Régimen antiguo esclavizados.

Me gusta mi trabajo, la.empresa en la que trabajo es una basura.

Tengo users acomodados por un directivo trabajando en soporte. No es joda.

Me quiero morir

Tratar con humanos apesta

Además de los “aumentos” por inflación, gozo del beneficio de que mi jefe no me golpea, ni me encierran en la oficina hasta que haya terminado lo que estoy haciendo. Me siento realmente afortunado de que no me bajen el sueldo. (Nótese el sarcasmo)

Son unos carceleros

Odio acomodar cables

Mucho ping pong y poco sueldo

Estoy podrido de tratar con estos simios

Hay olor a culo

No olviden calificar a sus empresas en www.openqube.io !

200 containers

Comenzamos el segundo semestre con todo y es por eso que lanzamos una nueva encuesta salarial.

Esta vez la hacemos no sólo para Argentina sino para todo Latinoamérica y además agregamos nuevas preguntas, en base a las sugerencias que tuvimos en la edición anterior. Al finalizar la encuesta vamos a publicar el csv para que la comunidad pueda analizar los resultados.

 

Los invitamos a responder y compartir con sus conocidos !

No olviden que también pueden calificar empresas en openqube.io

Originally written by Johan Norrman, CIO at Detectify for sysarmy.

 

March could have started better for the OpenSSL team. During the last week, the OpenSSL development team published two high impacts CVEs, CVE-2016-0800 and CVE-2016-0703.

In this blog post, we explain how the CVEs can compromise your security and what steps you can take to stay safe.

 

CVE-2016-0800 (DROWN)

You might already have heard about CVE-2016-0800 by its nickname “DROWN”. According to drownattack.com a server is vulnerable to DROWN if it allows SSLv2 connections or if its private key is used on any other server that allows SSLv2 (see CVE-2016-0703 below).

What can happen: By gaining access on a DROWN vulnerable server the attacker can gain information such as username, passwords, credit card numbers or any other sensitive information sent via the server.

So what should I do:

  • Make sure that you upgrade OpenSSL to the recommended version.
    • if you are using 1.0.1 upgrade to 1.0.1s
    • if you are using 1.0.2 upgrade to 1.0.2g
  • Disable SSLv2 – how this is done varies depending on which software you are using.

If you are uncertain if you are vulnerable or not, you can use services such as Detectify, that will provide you with a warning if you still are running SSLv2 when you run a scan (see photo below).

 

Learn more about DROWN:

If you want to read more about OpenSSL and DROWN we recommend you to dig into this blog post from the OpenSSL team.

 

CVE-2016-0703

The second issue, CVE-2016-0703, only affects versions of OpenSSL prior to March 19th, 2015 and is fixed in OpenSSL 0.9.8zf, 1.0.0r, 1.0.1m and 1.0.2a.

What can happen: It allows a remote attacker to commit an efficient divide-and-conquer key recovery attack. So by eavesdropping on the SSLv2 handshake the attacker can determine the SSLv2 private-key, all and all leading up to a way more efficient version of DROWN.

So what should I do:

  • Make sure that you upgrade to OpenSSL 0.9.8zf, 1.0.0r, 1.0.1m and 1.0.2a, depending on what version you are on now.
  • Read the security information from your software provider to determine if you need to do anything extra to stay secure.

 

Comments from Detectify:

“Keeping your infrastructure up to date becomes easier as more and more companies are moving into a DevOps culture. The ones responsible for patching and keeping your production environment up to date are now a part of your development team and no longer just responsible for making sure that the servers are running. However, patching your production servers will always be challenge and keeping them patch should always be a top priority” says Detectify’s CIO Johan Norrman.

 

Post original escrito por Johan Norrman de Detectify para sysarmy.

 

Marzo podría haber empezado mejor para el equipo de OpenSSL. Durante la última semana, el equipo de desarrollo de OpenSSL publicó dos CVEs de alto impacto, CVE-2016-0800 y CVE-2016-0703. En este post, explicamos cómo las CVEs pueden comprometer tu seguridad y qué pasos podés tomar para asegurarte.

CVE-2016-0800 (DROWN)

Probablemente hayas escuchado hablar acerca de CVE-2016-0800 por su nick, “DROWN”. Según drownattack.com un servidor es vulnerable a DROWN si utiliza conexiones SSLv2 o si su llave privada se comparte con cualquier otro servidor que permita SSLv2 (ver CVE-2016-0703 abajo).

Qué puede pasar: al acceder a un servidor vulnerable a DROWN, el atacante puede obtener información como ser usuarios, contraseñas, números de tarjetas de crédito o cualquier otra información sensible enviada por medio del servidor.

Qué tengo que hacer:

  • Asegurarte de actualizar OpenSSL a la versión recomendada.

    • Si usás 1.0.1 actualizá a 1.0.1s

    • Si usás 1.0.2 actualizá a 1.0.2g

  • Deshabilitar SSLv2 – cómo hacer esto varía dependiendo del software que se esté usando.

Si no estás seguro respecto de ser vulnerable o no, podés usar servicios como Detectify, que muestran un aviso si aún estás utilizando SSLv2 al realizar un scan (ver foto).

Aprendé más sobre DROWN:  

Si querés saber más sobre OpenSSL y DROWN, te recomendamos este post de parte del equipo de OpenSSL.

CVE-2016-0703

El segundo problema, CVE-2016-0703, sólo afecta las versiones de OpenSSL anteriores al 19 de marzo de 2015, y se soluciona en OpenSSL 0.9.8zf, 1.0.0r, 1.0.1m y 1.0.2a.

Qué puede pasar: permite que un atacante remoto realice un ataque de recuperación de llave del tipo divide-y-vencerás (divide-and-conquer key recovery attack). Espiando el handshake de SSLv2 el atacante puede determinar la llave privada de SSLv2, en consecuencia derivando en una versión mucho más eficiente de DROWN.

Qué tengo que hacer:

  • Asegurarte de actualizar a OpenSSL 0.9.8zf, 1.0.0r, 1.0.1m y 1.0.2a, dependiendo de la versión que uses ahora.

  • Leer la información de seguridad de tu proveedor de software para determinar si hay alguna acción extra necesaria para estar asegurado.

Comentarios de Detectify:

“Mantener tu infraestructura actualizada se vuelve más y más fácil a medida que más empresas migran a una cultura DevOps. Los responsables de parchar y mantener los entornos de producción actualizados son ahora parte de tu equipo de desarrollo y no son sólo responsables de asegurarse que los servidores están funcionando. Sin embargo, parchar tus servidores de producción siempre será un desafío, y mantenerlos al día debería ser siempre la prioridad” dice el CIO de Detectify, Johan Norman.