Miguel García López
Verified Expert in Engineering
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.
Terminal, Linux, Git, IntelliJ IDEA, NetBeans
The most amazing...
...thing I've built is a multisite networked control and monitoring system for transportation systems running at international airports.
- 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.
Linux Systems Specialist
- 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.
- 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.
Senior SW Engineer
- 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.
Chief Software Officer
- 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.
- 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.
- 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.
Construcciones Aeronáuticas, Space Division
- Wrote simulation code in Ada to evaluate a number of software design and development tools for real-time systems.
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.
Back-end Systems Training Course
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 Coursehttps://github.com/MiguelGL/jpa-samples-demo
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.
- Maven based projects handling dependencies, specific-purpose plugins, and profiles.
- Many JPA mapping samples.
- Generation of DB schema from JPA annotated entities.
- 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 Demohttps://github.com/MiguelGL/ng2-betabeers-demo-sample
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" Demohttps://github.com/MiguelGL/popular-purchases-demo
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 Articlehttp://www.baeldung.com/intro-to-project-lombok
Spring, Swing, JSF, Google Guava, Vert.x, Hibernate, Angular, GWT, Spring Boot, Ember.js
DeltaSpike, JOOQ, QueryDSL, Twitter API, Facebook Open Graph API, Google+ API
WildFly, Apache Maven, Jenkins, Keycloak, GitHub, Bitbucket, Eclipse IDE, Make, Git, Jira, IntelliJ IDEA, Terminal, LabVIEW, Microsoft Access, Asterisk, SaltStack, Ansible, Vagrant, NGINX, Subversion (SVN)
Concurrent Programming, REST, Unit Testing, Event-driven Programming, Functional Programming, Scrum
Linux, Java EE, NetBeans, Raspberry Pi, Google Cloud Platform (GCP), Azure, Amazon, Android
Hazelcast, PostgreSQL, MySQL, SQLite
EJB 3, CDI, WebSockets, Industrial Protocols, Integration Testing, XMPP, GlassFish, Embedded Systems, Weld (Java Servlet)
Final Career Project in Computer Engineering
Institut für Mikroelektronik, Technische Universität Berlin - Berlin
Higher Engineering Degree in Telecommunications
ETSIT - UPM - Madrid