Careers at Codice Software

Company

SENIOR SOFTWARE ENGINEER

En Códice Software desarrollamos Plastic SCM, un control de versiones de alto rendimiento para equipos avanzados, y estamos buscando un Senior Software Engineer para unirse a nuestro equipo de desarrollo.

Necesitamos un “full stackprogrammer” capaz de trabajar en cualquiera de las áreas de nuestro producto: desde algoritmos de merge (y de SemanticMerge) hasta código de red. Desde base de datos (7 backends diferentes: Oracle, SQL Server, Postgres, MySql, SQLite, Firebird, SQL Server CE) a desarrollo front-end web (MVC). Desde GUI development (WinForms,Cocoa y GTK) a desarrollo cloud y REST APIs. Plugins para diferentes IDEs como Visual Studio, Eclipse, IntelliJ, sincronización bidireccional con Git, Perforce, TFS y SVN, optimización de rendimiento… Suficientes áreas diferentes como para no parar de aprender nunca pero que requieren de desarrolladores con capacidad de adaptarse y de familiarizarse a una base de código que ya supera los 1.3 millones de líneas (90% en C#).

Pero principalmente necesitamos a alguien capaz de diseñar código muy simple para dar solución a problemas complejos, algo muy poco común.

Funciones

Te incorporarás al equipo de desarrollo de Plastic y Semantic, así que tus funciones serán diseñar y desarrollar para ambos proyectos.

En un día típico, una vez que te hayas familiarizado con nuestra base de código, que puede llevar un tiempo, harás alguna de las siguientes cosas:

  • Trabajar en el diseño y/o el código de alguna nueva big feature: nuestro nuevo cloud server, una nueva GUI + core para empresas de videojuegos, clientes GUI en Mac, Linux o Windows, nuevo sistema de codereview integrado, sistema de comunicación p2p entre servidores Plastic, integración con un nuevo sistema de DevOps, etc.
  • Trabajar en la integración con Git, con Unity (estamos trabajando mucho en juegos), la futura integración con UnrealEngine, plugins de Eclipse o Visual Studio, etc, etc.
  • Implementar alguna mejora más pequeña sugerida por nuestros usuarios (ya sea a soporte, nuestro UserVoice o el foro).
  • Mejorar el rendimiento del servidor en carga: ¿podemos ir más rápido con 1000 developers haciendo checkin a la vez? ¿Podemos cargar datos locales más rápido?
  • Codereview (más bien walkthrough) de alguna tarea hecha por otro miembro del equipo el día anterior. Todas las tareas van code-reviewed y pueden reabrirse tanto por bugs como por cuestiones de estilo de código o por un nombre de método mal puesto. Una codereview puede ser desde 10 minutos hasta varias horas revisando código de una tarea grande.
  • Validation de una tarea. Supone ver que lo que se ha hecho en la tarea tiene sentido. Compilarla y ver que todo está correcto.
  • Refactorizar código para hacerlo más legible.
  • Fixear un bug en alguna parte del sistema: desde código de base de datos a GUIs en 3 plataformas pasando por los diferentes plugins para IDEs, sistemas de integración continua, etc.

Experiencia y habilidades

  • Buscamos a alguien con unos 5 años de experiencia en desarrollo.
  • Sólida formación, preferiblemente Ingeniero en Informática o similar.
  • Sólidos conocimientos de threading y concurrencia en diferentes sistemas operativos.
  • Sólidos conocimientos de diseño de software. Este es el punto más importante. Necesitamos a alguien que no construya castillos ni mate moscas a cañonazos, valoramos las soluciones simples, y el código súper legible.
  • Conocimientos de SCRUM y métodos ágiles (llevamos casi 200 sprints de SCRUM y logramos CMMi L2 en 2007, aunque nunca lo hemos renovado).
  • Conocimientos de C++, Java o C# (usamos .Net y Mono extensivamente (C#), pero valoramos mucho a los hard-core C++ programmers).
  • Familiarizado con UnitTesting y si estás familiarizado con GUI Testing (Test Complete y similares), mejor.
  • Se valorarán conocimientos de desarrollo en MacOS y Linux.
  • Si has leído Code Complete, CleanCode, ImplementationPatterns, cualquiera de los libros de McConnell, Peopleware… dínoslo!

¿Qué te ofrecemos?

En Códice creemos que no hay nada más apasionante que desarrollar un control de versiones! Bueno, quizá crear tu propio sistema operativo :-)

Lo primero que te ofrecemos es la oportunidad de desarrollar software para programadores, de crear las herramientas que tú mismo siempre has querido usar. Estarás contribuyendo con ideas desde el primer día, algo no muy habitual en otros proyectos.

En segundo lugar formar parte de un reto enorme. El control de versiones es un software crítico. Hay otras herramientas que son opcionales en un desarrollo, pero si el control de versiones no funciona, el proyecto se para. Eso supone un reto tremendamente complicado porque nuestros clientes, ya sean equipos de más de 1000 desarrolladores trabajando concurrentemente sobre una misma base de código, hasta pequeños equipos de 2, evalúan Plastic comparándolo con los número uno. Cada venta supone que hemos ganado a Git, Perforce, ClearCase, RTC y TFS, entre otros. En cada uno de esos controles de versiones trabajan equipos más grandes que el nuestro, y aun así hemos conseguido clientes como Microsoft, Samsung, Pantech, TellTale, HP, Sony, NASA, FacepunchStudios, etc, desde USA a Corea del Sur, pasando por toda Europa y Australia.

Tendrás la oportunidad de trabajar con un equipo súper motivado, muy compenetrado y que ha sido capaz de conseguir logros enormes.

Suma una retribución competitiva, horario y vacaciones flexibles, seguro médico privado y tarjeta restaurante.

¿Te interesa?

Si estás interesado escríbenos a

cv@codicesoftware.com

Estamos en el Parque Tecnológico de Boecillo, en Valladolid, y aunque tenemos miembros del equipo con mucha experiencia que trabajan en remoto, preferimos a alguien que inicialmente pueda trabajar desde la oficina, al menos hasta estar totalmente integrado.

Get the latest news