Scroll To View More
Miguel García López

Miguel García López

Murcia, Spain
Member since February 26, 2014
Miguel is a highly motivated, passionate software engineer who helps digital products and services come to life. He has gained broad experience over the years, working on embedded systems, back-end services, and modern web and mobile applications. He is a friendly and effective communicator who thrives in a distributed team, dedicated to improving people's lives and businesses through technology.
Miguel is now available for hire
  • Java, 13 years
  • C, 10 years
  • Java EE, 9 years
  • Python, 6 years
  • REST, 6 years
  • PostgreSQL, 4 years
  • Vert.x, 2 years
  • Angular, 1 year
Murcia, Spain
Preferred Environment
NetBeans, IntelliJ IDEA, Git, Linux, Terminal
The most amazing...
...thing I've built is a multisite networked control and monitoring system for transportation systems running at international airports.
  • Systems Lead
    2014 - 2016
    DisplayNote Technologies
    • Architected, developed, and administered all back-end networked services consumed by company products, staff, and end-users.
    • Built a real-time event-driven server for tunnelling and multicasting text and binary data throughout LANs transparently.
    • Integrated an open source XMPP server into a Java EE deployments ecosystem.
    • Wrote several client-side libraries for Android consuming REST APIs.
    • Designed and implemented many REST APIs, administrative tools, and onboarding websites for end-users.
    • Built a push notification service for mobile devices and browsers for messaging and online collaboration scenarios.
    Technologies: Java EE, WildFly, Vert.x, Hibernate, MySQL, HazelCast, DeltaSpike, Azure, Linux, XMPP, Android, jOOQ, SQL, NGINX
  • Linux Systems Specialist
    2014 - 2014
    • Wrote a wifi and bluetooth scanning system using Python and SQLite used to track anonymous user traffic over large commercial areas.
    • Prepared scripts and tools for an autonomous, boxed Raspbian-based embedded Raspberry Pi product.
    Technologies: Python, Raspberry Pi, SQLite
  • CTO
    2013 - 2014
    Voozer Technologies
    • Built a real-time Web Sockets-based VoIP calls broker on top of Asterisk and its management API.
    • Led the development of a product built on top of NLP tools and VoIP calls for users to interact with a SW appointment manager via their voice using common language.
    • Wrote SW components interacting with Loquendo libraries for text-to-speech and audio recognition.
    • Created an end-users facing website for customers to handle their auto-appointed services and calendar.
    Technologies: Java, Weld, Hibernate, PostgreSQL, Asterisk, Web Sockets, Loquendo, jOOQ, SQL
  • Senior SW Engineer
    2012 - 2013
    • Build a custom cloud-based content management system to manage translations, images, promotions, and all static assets for mobile applications.
    • Wrote an Android application featuring a design-rich picture agenda for newborns.
    • Designed processes and tooling to move from "spreadsheet hell" to mostly automated software managed procedures so that assets get more efficiently managed.
    • Wrote a code generation tool to output Objective-C and Java parsers for documents based on a JSON schema-like model.
    Technologies: Java EE, GWT, MySQL, Amazon, Android
  • Chief Software Officer
    2011 - 2012
    Soltec Trackers
    • Wrote C system code and mathematic equations for the embedded micro-processor controlling solar tracking for photovoltaic panels.
    • Built an Android application for aiding in solar tracker installation and configuration.
    • Architected and implemented cloud-based services and the website in charge of collecting information from trackers and management.
    Technologies: C, Embedded, Java EE, MySQL, Amazon
  • Technical Manager
    2007 - 2011
    • Led a technical team of four developers.
    • Designed and led the implementation of a networked control and monitoring center using video and real-time signals from a numerous set of heterogeneous industrial equipment.
    • Built an embedded in-vehicle video recording and transmitting console for police forces.
    • Build and deployed on-site a recollecting and exploitation system aimed at counting people moving around in Metro stations using ceiling cameras.
    Technologies: Linux, C, NetBeans Platform, PostgreSQL, MySQL, GWT, Java, Java EE, Python, Swing, Industrial Protocols
  • Software Engineer
    2000 - 2007
    Visual Tools
    • Wrote several Linux kernel modules interfacing with custom company hardware components.
    • Built several Python bindings for in-house C software libraries.
    • Participated in several International R&D projects funded by the European Union on fields of real-time systems, software components, and QoS.
    • Wrote a Python CGI-based web interface for embedded video recording and transmitting units.
    • Built several Python system level general-purpose modules for x86-based embedded devices.
    • Wrote several C system libraries and programs for low-level operations and networked communications.
    Technologies: Linux, Bash, Embedded, Python, HTML, Java, C
  • Intern
    1999 - 1999
    Construcciones Aeronáuticas, Space Division
    • Wrote simulation code in Ada to evaluate a number of software design and development tools for real-time systems.
    Technologies: Ada, HRT-HOOD
  • Developer
    1999 - 1999
    Motorola Berlin GmbH. Radio Division
    • Implemented a LabVIEW test bench software manager for TETRA radio devices using an MS Access-based front-end for data exploitation.
    Technologies: LabVIEW, SQL, Visual Basic, MS Access
  • Back-end Systems Training Course (Other amazing things)

    As par of my eventual collaborations as a trainer, which I enjoy a lot, I implemented a two-week-long course introducing back-end systems programming to students taking a broader course on modern development technologies.

    I started by introducing concepts on (SQL and noSQL) databases, dissecting the HTTP protocol, and presenting the REST paradigm for building APIs, auth* and security issues, etc.

    A practical section was comprised of modeling and developing a simple secured HTTP REST API talking to a database, using the Java EE stack.

  • JPA Training Course (Development)

    I have occasionally done trainings on several technologies and frameworks.

    This repository holds the code samples I have used for a two-day training course on JPA and Hibernate, and working with databases from Java in general.

    It features:
    - Maven based projects handling dependencies, specific-purpose plugins, and profiles.
    - Many JPA mapping samples.
    - Generation of DB schema from JPA annotated entities.
    - Lombok-powered.
    - Liquibase build and runtime integration to handle DB schema migrations.
    - Generation of metamodels as part of the build phase.
    - Usage of QueryDSL as a friendlier alternative to JPA Criteria for typesafe queries.
    - jOOQ code generation from DB as an complimentary means to access the DB from Java.

  • Angular 2 Demo (Development)

    This is a sample project I wrote as the source companion for a presentation I issued during a local talk introducing Angular 2.

  • HazelCast Manager (Development)

    Hazelcast is an awesome middleware providing distributed data structures, caching, pub/sub mechanisms, and much more.

    It is perfectly possible to just download its distribution and start a node via java -jar, pointing it to your configuration, etc.

    This (maven) project takes an alternative approach and builds a ZIP file bundling Hazelcast (and other) dependencies, a directory structure for libraries, configurations, etc., and SLF4J-based logging using logback as the underlying implementation.

  • "Same Microservice, Two Implementations" Demo (Development)

    A sample project I wrote over the idea of a microservice that consumes a third-party API and then processes and aggregates the data in a custom form.

    This idea is implemented in two rather different ways for illustration and practicing purposes. One is a pure Java EE approach using the great latest features from its v.7 specification. The second is a solution on top of Vert.x, a Java-based purely event-driven framework.

    Their two programming models are rather different. Implementing the same features on top of each is great for comparing.

  • Introduction to Project Lombok Article (Other amazing things)

    I wrote this post about the Lombok tool for a well-known editing site on Spring and misc. Java development articles.

  • Write Fat-free Java Code with Project Lombok (Publication)
    Java has some idiosyncrasies of its own and design choices that can make it rather verbose. While Java is a mature and performant programming language, developers frequently need to write boilerplate code that bring little or no real value other than complying with some set of constraints and conventions. In this article, Toptal Freelance Software Engineer Miguel García López shows how Project Lombok can help dramatically reduce the amount of boilerplate code that needs to be written in a Java application.
  • Languages
    Java, C, SQL, Java 8, Bash Script, CoffeeScript, HTML, TypeScript, JavaScript, Python, Ada, Kotlin, CSS, Groovy, Scala
  • Frameworks
    JSF, Hibernate, Vert.x, Angular, Swing, Google Guava, GWT, Spring Boot, Spring, Ember.js
  • Libraries/APIs
    DeltaSpike, WebSockets, JOOQ, QueryDSL, Twitter API, Facebook Open Graph API, Google+ API
  • Tools
    WildFly, Jenkins, Maven, KeyCloak, Eclipse IDE, GitHub, BitBucket, JIRA, Git, Make, Nginx, SaltStack, Ansible, Vagrant, Subversion (SVN)
  • Paradigms
    REST, Concurrent Programming, Event-driven Programming, Unit Testing, Scrum, Functional Programming
  • Platforms
    Java EE, Linux, NetBeans, Google Cloud Platform, Amazon, Azure, Android
  • Storage
    Hazelcast, PostgreSQL, MySQL
  • Other
    CDI, EJB 3, Industrial Protocols, Integration Testing, XMPP, GlassFish
  • Final Career Project in Computer Engineering
    1999 - 2000
    Institut für Mikroelektronik, Technische Universität Berlin - Berlin
  • Higher Engineering degree in Telecommunications
    1994 - 1999
    ETSIT - UPM - Madrid
I really like this profile
Share it with others