Open positions at ASG Barcelona

We are looking for passionate developers to join us at ASG‘s Barcelona office. Selected candidates will join a long-running new project (only 3 months of development so far), in which they will be able (and encouraged!) to use the latest development technologies.
Open positions are:

  • ASP.NET MVC C# developer (posted also at ASG website here)
  • HTML+Javascript developer (posted also at ASG website here)

One more thing: We are a product company and we are hiring directly. No body-shopping! If you are interested in any of the positions, please send me an e-mail to braulio.megias@asg.com

ASP.NET MVC C# developer

We are looking for outstanding candidates to join our development team. Their main responsibilities will involve server-side development with the latest Microsoft ASP.NET technologies.

Must have:

  • Bsc/Msc degree in Computer Science or Engineering
  • 5+ years of ASP.NET MVC C# programming
  • Hands-on experience with:
    • ASP.NET Web API
    • SQL (SQL-Server)
    • Entity Framework (or other ORM framework: nhibernate etc.)
    • MSTest (or other unit testing framework: nunit etc.)
    • Moq (or any mocking/stubbing framework: nmock etc.)
    • Windsor (or any DI framework: unity or structuremap or etc.)
    • Able and willing to work collaboratively
    • Able and willing to learn new stuff
    • Able to read and understand documentation in English
    • Fluent in Spanish

Bonus points:

  • Familiar with bug tracking systems
  • Familiar with agile methodologies and practices: Kanban, Scrum, XP, TDD, code reviewing, pair programming, etc.
  • Familiar with SOLID principles and design patterns
  • Knowledge of Javascript any MV* framework, such as Knockout, Backbone, etc.
  • Experience with Javascript OOP and patterns
  • Experience with messaging systems, such as: MSMQ, RabbitMQ, XMPP, NServiceBus
  • English professional proficiency

HTML+Javascript developer

We are looking for outstanding candidates to join our development team. Their main responsibilities will involve client-side development with the latest Javascript technologies.

Must have:

  • Bsc/Msc degree in Computer Science or Engineering
  • 5+ years of HTML+Javascript programming
  • High knowledge of Javascript OOP and patterns
  • Hands-on experience with:
    • CSS2/CSS3
    • HTML4.1/HTML5
    • Knockout.js (or any equivalent MV* framework)
    • Durandal.js
    • Able and willing to work collaboratively
    • Able and willing to learn new stuff
    • Able to read and understand documentation in English
    • Fluent in Spanish

Bonus points:

  • Design skills
  • Familiar with bug tracking systems
  • Familiar with agile methodologies and practices: Kanban, Scrum, XP, TDD, code reviewing, pair programming, etc.
  • Experience with Automated Testing
  • Experience with .NET development in C#
  • Experience with ASP.NET MVC server-side development
  • Experience with Node.js
  • English professional proficiency
Publicado en Uncategorized | Deja un comentario

Presentación SOA con RabbitMQ

El pasado jueves tuve la oportunidad de hacer una presentación en Barcelona sobre sistemas SOA basados en mensajería con RabbitMQ. Fue una experiencia fantástica tanto por reencontrarme con antiguos compañeros como por conocer a gente muy interesante de quien aprender. Gracias Marçal por la oportunidad :)

Sigue leyendo

Publicado en Dev | Etiquetado , , , , , , | Deja un comentario

SelectMany: Obtener elementos de una lista de listas

Tras tanto tiempo sin actualizar el blog, vuelvo con algo sencillito, pero que no he utilizado hasta hace poco: ¿Cómo obtener con LINQ los elementos de una lista de listas, con sintaxis de métodos? Es decir, obtener todos los empleados llamados Juan contenidos en CompaniesDirectory:

static List<Company> CompaniesDirectory;
class Employee
{
    public string Name { get; set; }
}
class Company
{
    public IEnumerable<Employee> Staff { get; set; }
}

Sigue leyendo

Publicado en Dev | Etiquetado , | Deja un comentario

¿Claves primarias naturales o subrogadas?

¿Clave primaria natural (generalmente una candidata compuesta, de ahí nace parte del debate) o subrogada? Cada vez que en un proyecto me he enfrentado al diseño de una base de datos he encontrado posturas encontradas entre los miembros del equipo. En el post de hoy vamos a ver en qué consiste cada solución, sus pros y contras y qué nos puede hacer decidir por uno u otro tipo de clave.

Sigue leyendo

Publicado en Dev | Etiquetado , , | 5 comentarios

Paso a paso: FileUpload con ASP.NET MVC3 en Azure

Si hay una necesidad habitual al desarrollar una aplicación web esa es que el usuario pueda subir archivos al servidor. Por ejemplo, su foto. Como vamos a ver, hacer esto con ASP.NET MVC3 y Razor es sumamente sencillo, aunque para que la solución funcione al 100% en Azure hay un par de aspectos a tener en cuenta: las limitaciones de una petición HTTP (por tamaño y tiempo) y el balanceo de estas peticiones entre las N instancias de nuestro Web Role.

Sigue leyendo

Publicado en Azure, Dev | Etiquetado , , , , , , , | 3 comentarios

Error en Azure Storage Emulator: The process cannot access the file

Ayer me dí cuenta de que me había dejado de funcionar el emulador del Azure Storage. Concretamente, el servicio de blobs; el emulador de colas y las tablas sí que arrancan o_O El mensaje de error que aparece al iniciarlo es:

The process cannot access the file because it is being used by another process

Azure Storage Error

Un mal presagio para empezar el día

Lo primero que pensé fue que podía ser algún error en el SDK 1.3 que prácticamente acababa de instalar, del cual se han reportado algunos problemas. Pero no es eso.

Sigue leyendo

Publicado en Azure, Dev | Etiquetado , , , , | 1 comentario

Clausuras, bucles y variables locales en C#

Empiezo el post de hoy con un acertijo ¿Cuál es la salida de este código?

        static void testClosureForeach()
        {
            var values = new int[] { 100, 110, 120 };
            var funcs = new List>();
            foreach (var v in values)
                funcs.Add(() => { return v; });
            foreach (var func in funcs)
                Console.WriteLine(func());
        }

Posiblemente respondas que la salida es 100, 110, 120. Piénsalo mejor ;)
Sigue leyendo

Publicado en Dev | Etiquetado , , , , , , | Deja un comentario