wan wan!

Ismael Barros²

Last modified: July 22, 2014.
Travesía do Monte 22
Beade-SAA, 36312 Vigo, Spain
Birth: 22-03-1986
Download as pdf
  • Experience

    • Work experience
        Lead Software Engineer i+D3, Oct.2010 -- present

        Some of my responsabilities are:

        • - Lead and direction of software engineering
        • - Design and development of industry-grade access control solutions
        • - Management of a small fleet of servers (hosted services, on-premises services, internal tooling, etc)
        • - Management of a small team of developers working on heterogenous projects


        Co-founder and Lead Software Engineer Maven Innova S.L., Mar.2011 -- Jun.2013 Web development, systems administrator, sales, advertising and public relations FreeWear.org, Sep.2008 -- present

        Developed an e-commerce site using a (BSD)AMP platform with extensive use of JavaScript and AJAX. I manage and update the server, help with the administration of workstations, act as a proxy to the English-speaking market, and help with business decisions.

        Collaboration fellowship Department of Electronics and Systems, University of A Coruña, Feb.2009 -- Jul.2009

        Helped with the creation of didactic material and the development of a simple website using PHP and Smarty.
        Department of Electronics and Systems

        Summer internship as Software Developer Google, Inc., Jun.2008 -- Aug.2008

        Extension of the implementation of the DirectPlay library for the Wine project.

        Web development Freelance, Sep.2007 -- Dec.2007

        Developed a simple car-rental website for Nova Galicia S.L. using a LAMP platform, and implemented several administration automatization features.
        Nova Galicia S.L.

    • FOSS contributions
      • Wine, klik, aMule, Synaptics, diffutils, Wireshark, Gwenview
      • Started working on Wine on 2008 sponsored by Google, in its program Google Summer of Code. My objective was to implement the DirectPlay library with a TCP/IP Service Provider, targeting compatibility with commercial games like GTA2 or Baldur's Gate.

        I kept working on the project after my GSoC, sorting and extending my patches in my free time.

        Official wine website
        Git repository for my project

        The first Open Source project I've seriously worked in. I was looking for a way to contribute to the FOSS panorama, and this project looked promising.

        Started writing a small C++ utility using inotify and pthreads, and continued extending the functionality of the klik client.

        Later I would contribute some packages to an evolution of the project: Portable Linux Apps.

        Official klik web
        Klik Google code page
        Portable Linux Apps
      • A couple of trivial patches to fix hierarchical handling of windows with wxWidgets. Official aMule web
        Maintenance of a patch to swap the touchpad axis.
        Small patch to fix side-by-side display of coloured texts.
        Improvements on the packet dissector for the dplay protocol.
        Port of okular's mouse-wrapping scrolling feature.
    • Personal projects
      • Games: PongCraft, Battle Dungeons
      • "Pong" clone I used to learn C++ and SDL.

        Abandoned due to lack of time and interest, but rescued every now and then to experiment with some technologies, like OpenAL (3D sound), CMake (build system) and maybe in a near future ODE (physics engine, I've implemented my own basic physics engine but I'm not as well versed in dynamics as I would like to be, and the idea of not reinventing the wheel is something I always liked).


        A simple experimental and unfinished roguelike engine.

        The first implementation was made in GNU Pascal (I was starting my IT degree and it was the only langage I knew). Later was ported to Free Pascal and later to C and ncurses (quite a funny way to learn C).

        Later on I'd use it to implement a simple scripting engine and language with Flex and Bison, to define multi-layered maps, situate entities and associate behaviors.

        Battle Dungeons
      • Experiments and demos: quaker, defcon-plasmoid, xaquim, pongclock
      • A silly demo to experiment with OpenGL, GLSL/Cg shaders, frame buffer objects, etc.
        SVG processing experiment in a KDE4 plasmoid.
        Arduino-based robot programming for a robotics competition.
        Simple OpenGL-based screensaver for Linux.
      • Websites: id Software: Technological evolution
      • First serious website I've coded. It was an university paper and I was short of time, yet I wanted to create something decent, so I used slashdot source code to quickly learn HTML and CSS, combined with PHP. The result works and it's quite pleasant, but the source could be better.

        id Software: Evolución tecnológica

        Interestingly enough, this paper also served me to learn Java applet programming, as I had to extend a general raycasting demo applet to make it behave more or less like Wolfenstein 3D.

  • Skills

    • Programming
      • Advanced level: C, C++, Python, Java, shell scripting, Qt5
      • Intermediate level: Ocaml, PHP, JavaScript, HTML, CSS, SQL, LaTeX, SDL, OpenGL, ncurses, pthreads, PVM, MPI, LEX, YACC, MySQL, CUDA, J2EE, Spring, Hibernate, C#, .NET, ADO.NET Entity Framework
      • Basic knowledge: Perl, Pascal, Haskell, LISP, COBOL, FORTRAN, GLSL, Cg, OpenAL, GTK, OpenMP, Android, Arduino, ESC/POS, Microsoft SQL Server, (RabbitCore) Dynamic C, Ruby
      • Related utilities: Git, SVN, CVS, autotools, Make, CMake, Emacs, Vim, GDB, Valgrind, etc.
    • System administration
      • Admin level: Linux, IOS, PIX
      • Linux distributions I've used for more than one day:

        • Proxmox – since 2011
        • Debian/Ubuntu – since 2010
        • ArchLinux – since 2007
        • Gentoo – 3 years
        • Debian – 2 months
        • Fedora Core 2 – around 1 year
        • Mandriva 10.2 – around 1 year
        • Red Hat 7.2 – around 1 year
      • User level: [Free,Net,Open]BSD, Windows, macOS, MS-DOS
    • Misc
      • 2D design: GIMP, Photoshop, hugin, Inkscape
      • « Move your mouse to scroll »
      • 3D design: Maya, 3D Studio Max
      • Just a work for school, first time I did something with more than 5 polygons in Maya, but managed to obtain something not-so-bad.

        More views

      • Video editing: Cinelerra
      • Audio editing: Audacity
  • Education

    • Studies
    • Certifications and courses
      • NS, CCNA, ITe (Cisco Systems, 2008)
        • Network Security 1

          • Describe term, expressions, and acronyms associated with network security
          • Describe basic and advanced security vulnerabilities
          • Develop, design, and manage a network security policy
          • Demonstrate how various technologies can be used in network security solutions
          • Describe and illustrate security trust and identity technologies at both
          • Layer 2 and Layer 3 in the ISO 7 layer model
          • Configure the Cisco Secure Access Server
          • Install, configure, monitor, and maintain firewall solutions using Cisco routers and Cisco PIX® devices
          • Implement an authentication, authorization and accounting (AAA) solution on both the Cisco routers and Cisco PIX devices
          • Describe and use Layer 2 security features in Cisco switches
          • Filter network traffic on switches, routers, and Cisco PIX devices
          • Describe and implement a secure network design
        • Network Security 2

          • Describe terms, expressions, and acronyms associated with network security
          • Describe basic and advanced security vulnerabilities
          • Develop, design, and manage a network security policy
          • Demonstrate how various technologies can be used in network security solutions
          • Describe and illustrate security trust and identity technologies at both Layer 2 and Layer 3 in the ISO 7-layer model
          • Configure the Cisco Secure Access Server
          • Implement an authentication, authorization, and accounting (AAA) solution on both Cisco PIX devices
          • Describe and use Layer 2 security features in Cisco switches
          • Filter network traffic on switches, routers, and Cisco PIX devices
          • Install, configure, monitor, and maintain advanced firewall solutions using Cisco routers and Cisco PIX devices
          • Describe and demonstrate how to use and manage a secure network architecture
          • Configure and maintain Cisco intrusion detection and system- embedded prevention technologies
          • Describe the principles and use of encryption in a VPN solution
          • Configure site-to-site VPN using pre-shared keys an digital certificates
          • Configure and manage remote access VPN
          • Demonstrate the use of Cisco PIX device failover and management
        • CCNA Exploration: Network Fundamentals

          • Explain how communication works in data networks and the Internet
          • Recognize the devices and services that are used to support communications across an Internetwork
          • Explain the role of protocols in data networks
          • Describe the importance of addressing and naming schemes at various layers of data networks
          • Describe the protocols and services provided by the application layer in the OSI model and describe how this layer operates in sample networks
          • Analyze the operations and features of the transport layer protocols and services
          • Analyze the operations and features of the network layer protocols and services and explain the fundamental concepts of routing
          • Design, calculate, and apply subnet masks
          • Describe the operation of protocols at the OSI data link layer
          • Explain the role of physical layer protocols and services
          • Build a simple Ethernet network using routers and switches
          • Use Cisco CLI commands to perform basic router and switch configuration and verification
        • CCNA Exploration: Routing Protocols and Concepts

          • Describe the purpose, nature and operations of a router and routing tables
          • Describe, configure and certify router interfaces
          • Explain the purpose and procedure for configuring static routes
          • Identify the characteristics of distance vector routing protocols
          • Describe the network discovery process of distance vector routing protocols using Routing Information Protocol (RIP)
          • Describe the functions, characteristics, and operations of the RIPv1 protocol
          • Compare and contrast classful and classless IP addressing
          • Describe classful and classless routing behaviors in routed networks
          • Design and implement a classless IP addressing scheme for a given network
          • Demonstrate comprehensive RIPv1 configuration skills
          • Describe the main features and operations of the Enhanced Interior
          • Gateway Routing Protocol (EIGRP)
          • Describe the basic features and concepts of link-state routing protocols
          • Describe the purpose, nature and operations of the Open Shortest Path First (OSPF) protocol
        • CCNA Exploration: LAN Switching and Wireless

          • Explain basic switching concepts and the operation and configuration of Cisco switches
          • Describe enhabced switching technologies such as VLANs, VLAN Trunking Protocol (VTP), Rapid Spanning Tree Protocol (RSTP), Per VLAN Spanning Tree Protocol (PVSTP), and 802.1q
          • Configure, verify, and troubleshoot VLANs, trunking on Cisco switches, interVLAN routing, VTP, and RSTP
          • Identify, prescribe, and resolve common switched network media issues, configuration issues, autonegotiation, and switch hardware failures
          • Identify and describe the purpose of the components in a small wireless network, such as Service Set Identification (SSID), Basic Service Set (BSS), and Extended Service Set (ESS)
        • CCNA Exploration: Accessing the WAN

          • Configure and verify basic WAN serial connections including serial, Point-to-Point and frame relay
          • Describe the functions of common security appliances and applications and the practices to secure network devices
          • Describe, configure, apply, monitor, and troubleshoot Access Control Lists based on network requirements
          • Describe the importance, benefits, role, impact, and components of VPN technology
          • Explain, configure, verify, and troubleshoot IP addressing services including Network Address Translation (NAT), DHCP, and DNS
        • IT Essentials: PC Hardware and Software

          • Define Information Technology (IT) and describe the components of a personal computer.
          • Protect themselves, equipment and the environment from accidents, damage, and contamination.
          • Perform a step-by-step assembly of a desktop computer.
          • Explain the purpose of preventive maintenance and identify the elements of the troubleshooting process.
          • Install and navigate an operating system.
          • Upgrade or replace components of a laptop, printer, or scanner based on customer needs.
          • Configure computers to attach to an existing network
          • Apply good communications skills and professional behavior while working with customers.
          • Perform preventive maintenance and basic troubleshooting.
        • IT Essentials II: Network Operating Systems

          • Select network devices, server hardware, and Network Operating
          • Systems based on organizational requirements
          • Install the Windows 2000 and Linux Network Operating Systems
          • Configure TCP/IP static and dynamic host addressing
          • Configure network file and print sharing
          • Configure HTTP, FTP, and Tenet services for Windows 2000 and Linux systems
          • Recommend a backup method based on customer requirements
          • Backup and restore data using Windows 2000 and Linux system utilities
          • Design and configure basic security network solutions
          • Perform maintenance tasks including hard disk management and software patches and upgrades
          • Diagnose, troubleshoot, and resolve common Network Operating System problems
      • Introduction to GIS (UDC - AFI, 2009)
        • Introduction to GIS
          • GIS definition
          • Spatial databases
          • Vectorial Format vs. Raster Format
          • Coordinate system
        • GIS appplications
          • Traditional GIS applications
          • OpenGIS
          • OpenGIS architecture
        • Spatial SQL
          • Introduction to spatial SQL
          • OpenGIS SFS (Simple Feature Specification)
          • PostgreSQL and PostGIS
        • OGC services (Open Geospatial Consortium)
          • OpenGIS WFS (Web Feature Service)
          • WFS in GeoServer
          • OpenGIS WMS (Web Map Service)
          • WMS in GeoServer
        • GIS on the Internet
          • Google Earth
          • OpenLayers
          • Google Maps API
  • Personal

    • Languages
      • Native level: Spanish, Galician
      • Advanced level: English
      • Basic concepts: French, Chinese, German, Finnish