Pedro Ivan Lopez
Software Engineer


I'm a Software Development Engineer interested in large-scale systems and the Web. I have 5 years of experience in software engineering and have been programming for over 13 years. My primary development experience is in application programming in C#, JavaScript, TypeScript, Java and Python; including multitier architecture applications and agent/batch/job-oriented programs for financial systems. I have also worked on system administration for Windows and UNIX, hardware/computer engineering and robust control software. A lot of the software I have designed and implemented is publicly available on GitHub.

Other Résumé versions: PDF, JSON Résumé

Work Experience

Epicor Software Corporation
February 2017 – Present
Software Developer
As a Software Developer of the Custom Solutions Group, I mainly work on extending our base products to better fit the business requirements of customers in North and South America. My role also involves project management responsibilities and technical tasks on a wide range of technologies of the Epicor ICE Framework and ERP 10 platform.
  • Reduced execution time of mass update by 90% by porting business logic from client to server, and by porting database access from Entity Framework to stored procedures in T-SQL
  • Achieved the highest billable utilization out of all engineers and software architects of the Mexican team in FY2019
  • One of the top 10 employees of the Monterrey branch in Q4 2019, recognized by the company for making a significant business impact and demonstrating corporate core values
  • Delivered the first mobile access dashboard solution of the Mexico branch, a responsive HTML5 client with C#/.NET on the backend
  • Developed 18 custom electronic interfaces for the ACH network and Positive Pay bank services
  • Wrote T-SQL code generators in Python for data/schema definition and data querying
  • Created 15 new forms/modules for the Epicor ERP
  • Customized financial, supply chain and manufacturing modules of the Epicor ERP system 10+
  • Close and direct communication with customers
  • Worked on most of the technologies of the Epicor 10 platform, especially with client & server ICE SDK projects
  • Enabled functional testing previously blocked by the corruption of test data, by restoring 22 million records to 15 relational database tables from database backups
  • Led engineers in upgrading multiple product customizations from Epicor 10.1 to 10.2
  • Performed onboarding of new senior resource by mentoring work on an assigned project
  • Eased troubleshooting of delivered products deployed on customer's site, by shipping software with optional diagnostic tracing
  • Environment: .NET 4.7.2, C# 7.3, LINQ, Entity Framework 6, LINQ to Entities, LINQ to XML, Infragistics, Epicor Internet Component Environment (ICE SDK & ICE Tools), T-SQL for SQL Server 2016, Visual Studio 2019, JIRA, Service Connect, Windows Subsystem for Linux, Windows Server 2012, Windows 10
February 2015 – December 2016
Freelance Consultant
Coached job applicants and students on computer science and software engineering topics.
February 2015 – December 2016
Technical Writer
Wrote technical documentation on topics such as programming, system administration, audio and video processing and production and security
  • Published more than 45 technical notes at http://pedroivanlopez.com/tech-notes
  • Some of the software tools and applications I wrote about are Fedora Linux, FFmpeg, Windows, Python, JavaScript, Node.js, OpenSSH, Git, Android, Anki, Cygwin, Audacity, among others
  • Environment: Jekyll, Markdown, Fedora, Windows, Python
Infosys Ltd
January 2013 – February 2015
Systems Engineer
Monterrey, Nuevo León, Mexico. Contractor for a Fortune 100 multinational banking and financial services corporation. Development, administration and support team for a global trade finance application used mainly in North America and Asia
  • Coded and tested new agents/batch-jobs or new features of existing jobs in Java, C#, JavaScript and Windows Batch
  • Designed and implemented a Windows Script Host script in JavaScript to retrieve scanned image and metadata files from the scanner workstations to our server and prepare for further processing
  • Fixed approximately 350 incidents, including code bugs, development of new features, customers with invalid data in production and outages
  • On-call primary contact for approximately 20 weeks
  • Led approximately 30 Request For Change procedures, mainly to install code updates and to update data via SQL scripts
  • Supported production and test environments for clients and other teams in the bank
  • Knowledge management via documentation of known issues and fixes, to coach offshore resources
  • Environment: Java, .NET, C#, JavaScript, SQL, Bash, Hibernate, Spring, Eclipse, Toad, ClearCase, RedHat Linux, Windows Server, Autosys, Windows Script Host
Center for the Development of the Software Industry
October 2012 – January 2013
Software Engineer
Monterrey, Nuevo León, Mexico. Tested and validated a financial web application and platform
  • Performed testing and quality assurance of an enterprise financial Web platform for a Mexican bank, implemented in Java Enterprise Edition and JavaScript
  • Types of tests performed: black box, system, functional, acceptance
  • Environment: Internet Explorer, Mozilla Firefox, Excel, JavaScript
School of Physics and Mathematics at UANL
August 2011 – February 2012
Research Assistant
Monterrey, Nuevo León, Mexico. Internship. Research topics: control engineering, robust control, linear systems, filters.
  • Developed and maintained robust control systems software in Python, MATLAB and Simulink
  • Co-authored one published paper: Basin, M.; Serna, M.; Lopez-Hernandez, P.I., Central energy-to-peak filter design for uncertain linear systems, Control Conference (ASCC), June 2013
  • Performed system administration of workstations and maintenance of hardware units
  • Environment: Python, MATLAB, LabVIEW, NI Elvis, LaTeX
School of Mechanical and Electrical Engineering at UANL
February 2012 – August 2012
Laboratory Assistant
Monterrey, Nuevo León, Mexico. Internship.
  • Supported students in designing and troubleshooting programs in Python, MATLAB and LabVIEW
  • Performed system administration of workstations and maintenance of hardware units
  • Assisted professors with teaching electronics and programming during laboratory sessions
  • Environment: Python, MATLAB, LabVIEW, NI Elvis, LaTeX, BASIC


  • September 2012

    Autonomous University of Nuevo León

    Mención Honorífica de Excelencia

    Award given to students that graduated with overall grade of 95/100 or more


April 2015 – Present
Advocacy and Community. Efforts to advocate the ASP.NET Core framework
Data structures and algorithms in C#
June 2015 – Present
Data structures and algorithms in C#
July 2015 – Present
Bluetooth-remote-control robot implemented with Java Virtual Machines on a PC and a Lego NXT Brick
December 2011 – Present
A computer numerical control system for printing binary images
November 2012 – Present
A distance measurement system running on a personal computer and an 8-bit microcontroller
June 2016 – Present
Cross-platform system policy for applications and environments, with Python
December 2015 – Present
Cross-platform system policy for applications and environments, with JavaScript
July 2015 – Present
Miscellaneous configuration files and directories
Software engineering problems in C#
August 2015 – Present
Software engineering problems in C#
August 2015 – Present
Browser based static app for viewing resources
July 2016 – Present
Simple time management types
August 2015 – Present
Cross-platform system policy for applications and environments
July 2013 – Present
Java program that simulates Denial-of-service attacks on HTTP/web servers
– Present
For other projects see my technical notes, as well as my Github and Gist profiles.


  • 2013 2015

    Autonomous University of Nuevo León


    Information Engineering in Computer Science

    GPA: 4.0 = 94.5/100.0

    • Research Methodology
    • Quantitative Methods (Statistics)
    • Discrete Mathematics for Geometric Design
    • Programming and Simulation
    • Information Systems
    • Object Oriented Programming
    • Database Management and Design
    • E-Business Oriented Information Systems
    • Computer Science Seminar
    • Management of Information Technology Projects
    • Technologies for Internet Information Security
    • Technologies for Organizational Change
    • Information Technology Management and Planning
    • Decision Support Systems
    • Human–computer Interaction
  • 2012

    Autonomous University of Nuevo León


    Mechatronic Engineering. Intelligent Machines Design. Mención Honorífica de Excelencia.

    GPA: 4.0 = 95.9/100.0

    • Basic Programming
    • Probability and Statistics
    • Discrete Mathematics
    • Data Structures
    • Advanced Programming
    • Theoretical Computer Science
    • Digital Electronics
    • Object Oriented Programming
    • Data Acquisition
    • Robot Architecture
    • Artificial Intelligence and Neural Networks
    • Project Management
    • Human–Computer Interaction
    • Machine Vision
    • Perception
    • Machine Perception


JavaScript C# TypeScript Python LINQ Java SQL HTML CSS Bash/UNIX Shell Scripting VB.NET MATLAB LabVIEW XSLT LaTeX
Microsoft SQL Server Entity Framework 6 Oracle MySQL SQLite JSON YAML XML
.NET 4.7.2 LINQ to Entities LINQ to XML Infragistics Epicor Internet Component Environment (ICE SDK & ICE Tools) Java Node.js xUnit Jekyll ASP.NET 4 & 5 ASP.NET MVC 5 Docker Spring Hibernate ASP.NET Web Forms Java EE Sphinx documentation tools lejOS
Design patterns
Dependency Injection Object-Relational Mapping (ORM) Module Factory method Iterator Reactor Singleton Observer
Architectural patterns
Inversion of Control Event-driven architecture Model–View–Controller
Microsoft Visual Studio Visual Studio Code Git ClearCase Toad Eclipse Cygwin Vim GNU Make Ant IPython OpenSSH Maven
Operating Systems
UNIX (Fedora, Ubuntu, Red Hat Enterprise Linux, Android) Microsoft Windows (Server 2003, XP, Vista, 7, 8, 10)
Linux user for 8 years Proficient with UNIX command line interface Technical documentation writing Homebuilt computers enthusiast


Central energy-to-peak filter design for uncertain linear systems
Control Conference (ASCC)
23 June 2013

This paper presents the central finite-dimensional energy-to-peak filter for linear systems that is optimal with respect to a modified Bolza-Meyer quadratic criterion including the first degree state-dependent term and the attenuation control term with the opposite sign. The obtained solution is based on reducing the original energy-to-peak filtering problem to the corresponding mean-module filtering problem, using the technique proposed in [1]. The paper first presents the central energy-to-peak filter for linear systems, based on the optimal mean-module filter from [2], assuming the standard filtering conditions of stabilizability, detectability, and noise orthonormality. Finally, to relax the standard conditions, the paper presents the generalized version of the designed energy-to-peak filter in the absence of the noise orthonormality. Numerical simulations are conducted to verify performance of the designed energy-to-peak filter for linear systems against the central suboptimal H∞ filter [3]. The simulation results show a definite advantage in the values of the noise-output energy-to-peak norm in favor of the designed filter.

Technical notes

Technical documentation on topics such as programming, system administration, audio/video processing and production and security


  • SpanishNative speaker
  • EnglishFull professional proficiency


Development Design Industry Web/HTTP Security
Open source
Open Collaboration Security Open Data