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 12 years. My primary development experience is in application programming in C#, Java, JavaScript, 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.<br/><br/>Other Résumé versions: <a href=""><strong>PDF</strong></a>, <a href=""><strong>One-page PDF</strong></a>, <a href=""><strong>MS Word</strong></a>, <a href=""><strong>One-page MS Word</strong></a>, <a href=""><strong>JSON Résumé</strong></a>
Epicor Software Corporation
2017 - Ongoing
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 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
  • Delivered the first mobile access dashboard solution of the Monterrey branch, a responsive HTML5 client with C#/.NET on the backend
  • Developed 5 custom file formatters 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.6, C# 6, T-SQL for SQL Server 2016, Visual Studio 2017, JIRA, Infragistics, Epicor ERP 10, Service Connect
2015 - 2016
Freelance Consultant
Coached job applicants and students on computer science and software engineering topics.
  • Designed custom study plans based on assessment of the client's knowledge and skills via tests and interviews
  • Did one-on-one mock interviews and provided feedback afterward
  • Published implementations of data structures, algorithms, and solutions to programming problems. See <a href="">Data structures and algorithms in C#</a>, <a href="">Software engineering problems in JavaScript</a>. <a href="">Software engineering problems in C#</a>, <a href="">pysweng: Software engineering problems in Python</a>, <a href="">Data structures and algorithms in JavaScript</a>
  • Environment: Java, C#, Python, JavaScript, Node.js, .NET Core, Visual Studio Code, xUnit, JUnit, Mocha, Maven
2015 - 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 <a href=""></a>
  • 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
2013-01-14 - 2015-02-13
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
2012-10 - 2013-01
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
2011-08 - 2012-02
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., <a href="">Central energy-to-peak filter design for uncertain linear systems</a>, 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
2012-02 - 2012-08
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
2015-04-02 - Ongoing
Advocacy and Community. Efforts to advocate the ASP.NET Core framework
    Data structures and algorithms in C#
    2015-06-26 - Ongoing
    Data structures and algorithms in C#
      2015-07-15 - Ongoing
      Bluetooth-remote-control robot implemented with Java Virtual Machines on a PC and a Lego NXT Brick
        2011-12-03 - Ongoing
        A computer numerical control system for printing binary images
          2012-11-02 - Ongoing
          A distance measurement system running on a personal computer and an 8-bit microcontroller
            2016-06-11 - Ongoing
            Cross-platform system policy for applications and environments, with Python
              2015-12-26 - Ongoing
              Cross-platform system policy for applications and environments, with JavaScript
                2015-07-27 - Ongoing
                Miscellaneous configuration files and directories
                  Software engineering problems in C#
                  2015-08-06 - Ongoing
                  Software engineering problems in C#
                    2015-08-24 - Ongoing
                    Browser based static app for viewing resources
                      2016-07-06 - Ongoing
                      Simple time management types
                        2015-08-09 - Ongoing
                        Cross-platform system policy for applications and environments
                          2013-07-09 - Ongoing
                          Java program that simulates Denial-of-service attacks on HTTP/web servers
                            - Ongoing
                            For other projects see my <a href="/tech-notes">technical notes</a>, as well as my <a href="">Github</a> and <a href="">Gist</a> profiles.
                              Autonomous University of Nuevo León
                              Information Engineering in Computer Science - Master
                              2013 - 2015
                              Autonomous University of Nuevo León
                              Mechatronic Engineering. Intelligent Machines Design. Mención Honorífica de Excelencia. - Bachelor
                              - 2012
                              Central energy-to-peak filter design for uncertain linear systems
                              Control Conference (ASCC)
                              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

                              Mención Honorífica de Excelencia
                              Autonomous University of Nuevo León
                              Award given to students that graduated with overall grade of 95/100 or more
                              Native speaker
                              Full professional proficiency
                              • C#
                              • JavaScript
                              • Python
                              • LINQ
                              • Java
                              • SQL
                              • HTML
                              • CSS
                              • Bash/UNIX Shell Scripting
                              • VB.NET
                              • MATLAB
                              • LabVIEW
                              • XSLT
                              • LaTeX
                              • Microsoft SQL Server
                              • Oracle
                              • MySQL
                              • SQLite
                              • JSON
                              • YAML
                              • XML
                              • .NET
                              • Java
                              • Node.js
                              • ASP.NET 4 & 5
                              • ASP.NET MVC 5
                              • Docker
                              • Spring
                              • Hibernate
                              • ASP.NET Web Forms
                              • Java EE
                              • Sphinx documentation tools
                              • Jekyll
                              • 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
                              • Development
                              • Design
                              • Industry
                              • Web/HTTP
                              • Security
                              Open source
                              • Open Collaboration
                              • Security
                              • Open Data
                              • Decision-making