Post Job Free
Sign in

Software Development C#, Java and Python

Location:
Manchester, NH
Posted:
February 23, 2025

Contact this candidate

Resume:

Page *

Resume

Joao Eduardo Castro de Almeida

*** ****** **** ***, **********, NH 03109

603-***-****

****.*******@*******.***

Applications Solution Architect

Solution/technical competencies

Customized Applications for Alcatel-Lucent Enterprise data switches and PBX

• 20-year experience of Software development written in Object-Oriented Programming languages Java, C# and Python.

• 10-year experience in other languages JavaScript, VBScript, Visual Basic for Applications (VBA) for Microsoft Office, Linux Operating Systems Shell Script and Structured Query Language (SQL).

• 5-year experience in Software development of desktop applications in C# language using Windows Presentation Foundation (WPF).

• 1-year experience in deploying Linux applications in Docker Containers.

• 5-year experience in Software development of custom applications interacting with Alcatel-Lucent Enterprise data switches models 6465, 6560, 6860, 6865, 6900 Series over SSH and Rest API.

• 10-year experience in Software development of custom applications interacting with Alcatel-Lucent Enterprise PBX OmniPCX Enterprise.

• 10-year experience in Software development of Java web applications using SmartClient web framework by Isomorphic.

• 5-year experience in Development of customized Microsoft Excel reports for Alcatel-Lucent Enterprise Call Accounting and Call Center Systems.

• 10-year experience in Development of Linux Shell for installation/management scripts for Linux Operating Systems.

• 20-year experience in Solution Architect for PBX, SIP, Computer Telephony Integration (CTI) solutions. Technical environment

• PBX: Alcatel-Lucent Enterprise OmniPCX Enterprise (OXE).

• Data Switch: Alcatel-Lucent Enterprise data switches models 6465, 6560, 6860, 6865, 6900 Series.

• Applications: Alcatel-Lucent Enterprise Visual Notification Assistant (VNA), Alcatel-Lucent Enterprise Emergency Notification Server (ENS), Alcatel-Lucent Enterprise Visual Automated Attendant (VAA), Alcatel-Lucent Enterprise Call Center Interactive Voice Response (CCIVR) 4625.

• Operating System: Linux, Windows 2022 server

• Programming Languages: Java, C#, Python, JavaScript, VBScript, Visual Basic for Application (VBA) in Microsoft Office applications.

• XML/Web services : .NET, Java, PHP

• Protocol: Session Initiation Protocol (SIP), Computer-Supported Telecommunications Applications (CSTA), Q.931, Q-SIG, H.323

• Development IDE Platforms: Visual Studio 2022 for C# language, Visual Code for Python language and IntelliJ IDEA, Eclipse, NetBeans for Java language.

Page 2

Resume

Professional Experience

Development of Customized Applications (2018 - 2024)

• Development of a desktop application written in C# to connect with Alcatel-Lucent Enterprise data switches through SSH and Rest API to monitor and execute an auto diagnostic tool on switch ports with Power over Ethernet (PoE) devices connected to them. The application sends Link Layer Discovery Protocol (LLDP) messages to the switches to retrieve the data from the devices connected to them, such as MAC address, device type, device name, device description and software version. The GUI was developed using Windows Presentation Foundation (WPF). The auto diagnostic tool measures the PoE power consumption on the selected switch port where a PoE device is connected but not working. It executes a sequence of commands per type of device connected to the switch port (camera, wireless access point, IP phone or other). The response of each command sent in the sequence is measured in terms of PoE power consumption. If PoE power consumption is detected, the diagnostic tool displays a message saying that the problem was solved. If none of the commands in the sequence has resulted in PoE power consumption, it enables the log level in the switch, recycles the PoE power on the switch port where the device is connected, transfers the log generated by the data switch to the PC using secure FTP client, and creates a text file describing all sequence of commands executed along with their respective results. The text file can be used by the user to open a ticket with the technical support team for troubleshooting purposes.

• Development of 3 software plugins written in C# to integrate Alcatel-Lucent Enterprise data switches to Genetec Security Center Video Management System using the Genetec SDK to interact with Genetec Config Tool application, Genetec Security Desk application and Genetec Event Server. The plugin that interacts with the Genetec Config Tool application is used to add/delete/modify Alcatel- Lucent Enterprise data switches into Milestone Server’s database. The plugin that interacts with Genetec Security Desk client application is used to monitor the status of the cameras connected to the Alcatel-Lucent Enterprise data switch ports, PoE consumption, and Maximum PoE power. This plugin also allows the Genetec Security Desk client to initiate resets on the fly and customize PoE priority on a per-camera basis to ensure essential devices maintain power even if the power budget is exceeded. The plugin that interacts with Genetec Event Server, receives SNMP Trap messages from the Alcatel-Lucent Enterprise data switches with the status change of temperature, CPU usage and operational switch port status. The SNMP trap messages are parsed using SnmpSharpNet API and converted to Genetec notification messages using the Genetec SDK installed on the server. The Genetec notification messages are sent to both Genetec Config Tool and Genetec Security Desk applications to update the status in real time of all data switches and cameras on the monitor screen.

• Development of 3 software plugins written in C# to integrate Alcatel-Lucent Enterprise data switches to Milestone XProtect Video Management System using the MilestoneSystems.VideoOS.Platform SDK to interact with Milestone XProtect Management, Milestone XProtect Smart Client and Milestone Event Server. The plugin that interacts with the Milestone XProtect Management client application is used to add/delete/modify Alcatel-Lucent Enterprise data switches into Milestone Server’s database. The plugin that interacts with Milestone XProtect Smart Client application is used to monitor in real-time the operational status of each Alcatel-Lucent Enterprise data switch port, including camera availability, PoE consumption, and Maximum PoE power. The plugin that interacts with Milestone Event Server, receives SNMP Trap messages from the Alcatel-Lucent Enterprise data switches with the status change of temperature, CPU usage and operational switch port status. The SNMP trap notifications received are parsed using SnmpSharpNet API and converted to Milestone notification messages using the MilestoneSystems.VideoOS.Platform SDK installed on the server. The Milestone notification messages are sent to both Milestone XProtect Management and Milestone XProtect Smart Client applications to update the status in real time of all data switches and cameras on the monitor screen.

Page 3

Resume

• Development of software written in Python that sends CLI commands to Alcatel-Lucent Enterprise data switches through SSH using Netmiko and Paramiko Python APIs to retrieve information and control the electrical power delivered to the IoT devices connected in a cloud environment through PoE connection. Using PyMongo Python API, the system configuration, switches and the IoT devices data retrieved are stored into a non-relational database called MongoDB. The application launches a periodic scanner that sends a list of CLI commands to the data switches saved in the database to retrieve the IoT devices MAC addresses connected to the switch ports. If the IoT device MAC address detected on a switch port matches one of the MAC address ranges configured in the database, it automatically populates its data into the database. Messages embedded on Message Queuing Telemetry Transport (MQTT) protocol are sent and received using Paho MQTT Python API to/from a remote web server via an open source MQTT broker called Eclipse Mosquitto™. SNMP Trap messages received from the switches with the status change of temperature, CPU usage and operational switch port status are parsed using PySnmp Python API and converted as MQTT messages to the web server to update the status in real time of the switches and IoT devices connected to them. Command messages embedded also on MQTT protocol are received from the remote web server to recycle power on a selected switch port to reset the IoT device connected to it. A periodic health monitor is launched to ping the IoT devices connected to the switch ports and recycle the power on the associated port if the device is unreachable for more than a configurable time.

• Development of software written in Java embedded on Quarkus Framework called Autolocator that scan switches sending SNMP Walk and Get commands using SNMP4J Java API to retrieve the switch vendor, the list of switch ports and the list of MAC addresses found on each port. The list of MAC addresses that have moved from a port of a switch to another one is sent to Visual Notification Assistant Server via a Rest API message to update the location of the device mapped per switch port.

• Development of Linux shell scripts to manage, troubleshoot and monitor Alcatel-Lucent Enterprise Visual Notification Assistant, Visual Automated Attendant and Emergency Notification Server applications installed on SUSE 12.5 Linux Server.

• Development of a Linux shell script application that periodically is launched by Linux Cron utility to export the raw Alcatel-Lucent Enterprise Visual Auto Attendant Call tickets stored in a Linux PostgreSQL database to a csv file on an external windows PC share drive.

• Development of a VBScript application to copy the recording audio files of the agents belonging to a configurable list of Call Center Teams from the OmniPCX Record server to a remote storage server and add their path information into an external Microsoft SQL Server database as meta data.

• Development of a Microsoft Excel Macro written in VBA to parse a list of raw compressed Call Accounting tickets files pulled out from the Alcatel-Lucent Enterprise OXE PBX and generate a consolidated report in a format of an Excel workbook file. The Macro creates a Windows file browser to select the list of the raw compressed Call Accounting tickets files and another one to select the destination folder and the name of the Excel report file. The report is generated upon user selected filters on the PBX extension number associated to the calls, the external phone number and the type of call: incoming external, outgoing external, internal and Tie-Lines calls. The generated report is an Excel workbook containing 2 worksheets (or spreadsheets): Summary and Tickets. The Summary worksheet contains the Call Accounting tickets files selected by the user, the first and last call date and time, the execution duration, the filters selected by the user, the number of outbound and inbound calls found. The Tickets worksheet contains the list of all Call Accounting tickets found. Page 4

Resume

• Development of a Microsoft Excel Macro written in VBA to parse a list of raw compressed Call Center tickets files pulled out from the Alcatel-Lucent Enterprise OXE PBX and generate a consolidated report in a format of an Excel workbook file. The Macro creates a Windows file browser to select the list of the raw Call Center tickets files and another one to select the destination folder and the name of the Excel report file. The report is generated upon user selected filters on the Call Center Agent number or name associated to the calls, the external phone number and an option in form of List Box to populate the agent’s name or extension number in the generated report. The generated report is an Excel workbook containing 4 worksheets: Summary, Communication Tickets, Activity Tickets and Transfer Tickets. The Summary worksheet contains the Call Center tickets files selected by the user, the first and last Call Center call date and time, the execution duration, the filters selected by the user, the number of call center calls, activity and transfer tickets found. The Communication Tickets worksheet contains all Call Center tickets found. The Activity Tickets worksheet contains the actions tickets perform by the agents such as Wrap-Up, out of service, line lockout, dialing. The Transfer Tickets worksheet contains the Call Center consultation and transfer calls performed by the agents.

• Development of a Microsoft Excel Macro written in VBA to parse a list of raw compressed VoIP tickets files pulled out from the Alcatel-Lucent Enterprise OXE PBX and generate a consolidated report in a format of an Excel workbook file. The Macro creates a Windows file browser to select the list of the raw compressed VoIP tickets files and another one to select the destination folder and the name of the Excel report file. The report is generated upon user selected filters on the PBX device type associated to the VoIP tickets: IP Phone or VoIP Compressor. The Summary worksheet contains the VoIP tickets files selected by the user, the first and last call date and time, the execution duration, the filters selected by the user, the number calls found with very good (0 - 40ms), good (40 – 80ms), acceptable (80 – 150ms), fair (150 – 250ms) and poor (> 250ms) round trip delay. The Tickets worksheet contains the list of all VoIP tickets found listing the device type, IP Address, round trip delay, minimum RTP delay, maximum RTP delay, number of RTP packets lost and average Jitter.

• Development of IVR Callback Application written in Alcatel-Lucent Enterprise CCIvr Script language. The CCivr audio channels are connected via E1 PCM card to the OXE PBX. The Register Callback numbers application is launched during the Interactive queue allowing the caller waiting in queue, to save his/her phone number in the Microsoft SQL Server database. The Dispatcher application periodically searches for the entries saved in the database by the Register Callback numbers application and launches one Dialer application per each entry found. The Dialer application makes the outgoing call using one of the free CCIvr outgoing audio channels to call the phone number received from the Dispatcher. As soon as the external number answers the call, the Dialer transfers the outgoing call to the first Agent available. If the number does not answer, is busy or the call fails, the Dispatcher will relaunch the Dialer 5 minutes later to retry calling the same phone number again. If after 3 tries the phone number cannot be reached, Dispatcher discards the phone number. Alcatel-Lucent Enterprise Technical Support (2018 - 2024)

• Support and install of Alcatel-Lucent Enterprise Visual Notification Assistant (VNA).

• Support and install of Alcatel-Lucent Enterprise Visual Automated Attendant (VAA).

• Support and install of Alcatel-Lucent Enterprise OmniPCX Record.

• Integration of PMS systems with Alcatel-Lucent Enterprise OXE PBX via AHL (Alcatel Hotel Link) protocol.

• Support and install of Alcatel-Lucent Enterprise OXE Call Center Distribution (CCD) and Automatic Call Routing (ACR).

• Customization of Reports for Alcatel-Lucent Enterprise Contact Center Supervision (CCS).

• Customization of Call Accounting Reports for Alcatel-Lucent Enterprise OmniVista 8770. Page 5

Resume

Training, Certification & Degrees

• OmniTouch Call Center Premium: 2007.

• Genesys Enterprise Software: 2007.

• OmniTouch Unified Communications: 2006.

• OmniVista A4760: 2001.

• Java Technology for Structured Programmers at Sun Microsystems - Burlington, MA, USA: 2001

• GENESYS Framework: 2000

• Master Degree in Discrete Control Systems – Military Engineering Institute, Rio de Janeiro, Brazil: 1979 - 1982.

• Electronic Engineer BSc Degree at Maua Engineering School, Sao Paulo, Brazil: 1974 – 1978. Languages

English Fluent

French Fluent

Spanish Fluent

Portuguese Native



Contact this candidate