Miguel García López
Verified Expert in Engineering
Software Developer
Murcia, Spain
Toptal member since January 2, 2017
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.
Portfolio
Experience
Availability
Preferred Environment
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.
Work Experience
Systems Lead
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.
Linux Systems Specialist
IDSens
- 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.
CTO
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.
Senior SW Engineer
Mubiquo
- 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
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.
Technical Manager
Envitel
- 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.
Software Engineer
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.
Intern
Construcciones Aeronáuticas, Space Division
- Wrote simulation code in Ada to evaluate a number of software design and development tools for real-time systems.
Developer
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.
Experience
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 Course
https://github.com/MiguelGL/jpa-samples-demoThis 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
https://github.com/MiguelGL/ng2-betabeers-demo-sampleHazelCast Manager
https://github.com/MiguelGL/hazelcast-managerIt 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
https://github.com/MiguelGL/popular-purchases-demoThis 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
Education
Final Career Project in Computer Engineering
Institut für Mikroelektronik, Technische Universität Berlin - Berlin
Higher Engineering Degree in Telecommunications
ETSIT - UPM - Madrid
Skills
Libraries/APIs
Apache, Java, QueryDSL, X (formerly Twitter) API, API, Google+ API
Tools
WildFly, Apache Maven, Jenkins, Keycloak, GitHub, Bitbucket, Eclipse IDE, Make, Git, Jira, IntelliJ IDEA, Terminal, LabVIEW, Microsoft Access Development, Asterisk, SaltStack, Ansible, Vagrant, Nginx, Subversion
Languages
SQL, Java, C, Java, HTML, CoffeeScript, TypeScript, Bash Script, JavaScript, Python, Bash, Visual Basic, Kotlin, Ada, CSS, Groovy, Scala
Frameworks
Spring, Java, JSF, Google Guava, Vert.x, Hibernate, Angular, GWT, Spring Boot, Ember.js
Paradigms
Concurrent Programming, REST, Unit Testing, Event-driven Programming, Functional Programming, Scrum Master Consulting
Platforms
Linux, Java EE, NetBeans, Raspberry Pi, Cloud Engineering, Azure Design, Amazon, Android
Storage
Hazelcast, PostgreSQL, MySQL, SQLite
Other
EJB 3, CDI, WebSockets, Industrial Protocols, Integration Testing, XMPP, GlassFish, Embedded Systems Engineering, Weld (Java Servlet)
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring