Task Messenger Resume
TECHNICAL SKILLS
Languages: C#, Java, C/C++, SQL, JavaScript, x86 Assembler, Postscript, Texas Instruments TMS320 series Digital Signal Processor Assembler, PICmicro Assembler, Texas Instruments TMS340 series Graphics System Processor Assembler
API/Environments: .NET, Xamarin, XAML, MVVM, JSP/Servlets, AWS Alexa, REST, MySQL, SQLite, MongoDB, Confidential, AJAX with CORS, TCP/IP Sockets Communications, Win/32, COM, JDBC, SOAP, XML, OS/2 2.x, Open GL
Publications Author: “SQLite Database Programming for Xamarin Cross - platform C# database development for iOS and Android”
Published: 11/15/2015, 220 pages. Available on Confidential, iBooks, and Barnes & Nobel. This book is about data persistence for Xamarin based mobile applications using SQLite. Here is a link to the book on Confidential . Here is a link to the books accompanying software, SQLite.XM, which I also wrote.
PROFESSIONAL EXPERIENCE
Task Messenger
Confidential
Responsibilities:
- I was the developer of Task Messenger for iOS, Android, and Alexa; and was the primary interface architect for all three platforms.
- I also wrote the server-side middleware code, including the Web APIs and the supporting back-end SignalR server.
- The back-end servers interface with a MySQL database, which I also developed; including schema design, index creation, and all supporting SQL queries. I deployed the back-end on AWS, utilizing the following services: EC2, SNS, Lambda, S3, ELB, Route 53, RDS, IAM, and Auto Scale. The latest iOS and Android versions can be downloaded from the App and Play store. Please see the links above.
Confidential
Senior Software Engineer
Responsibilities:
- My contract with Carnival was initially for three months, it was extended two times.
- At Confidential I was responsible for developing a new shipboard credit card processing system and for developing a low-level device server that provides hardware connectivity services to our other internally developed software systems.
- Carnival had a legacy credit card processing server written in ProC that required Sun Solaris.
- This proved to be a burden as it required Solaris expertise on all ships.
- My first task was to analyze the existing ProC code and then rewrite this system in Java.
- Java was chosen for its cross-platform capabilities, allowing for the flexibility of choosing the most appropriate hardware/OS on which to deploy the new code.
- The Java application that I wrote provided a socket server that other shipboard systems could connect to make credit card processing requests.
- I wrote this socket server using NIO 2.
- I would then forward the request to our processing service provider by connecting to their socket server through the ship’s satellite uplink, passing the request through this socket. The response would be sent back, and I would then reformat this into Confidential .
- Propagating this Confidential back through my socket server to the client requesting service.
- The second development task that I was assigned, was to write an application that would provide connectivity and processing services for our VeriFone credit card reader and our RFID sign-and-sail card scanner.
- Carnival was developing a new Web application that was designed to making embarkation more efficient and streamlined for passengers.
- This application needed to make credit card processing requests to our VeriFone card processing devices.
- It also needed to perform RFID scanning of our passenger’s sign-and-sail shipboard cards. As a browser-based application, it did not have direct access to these external devices.
- I wrote a native Windows WPF application in C# that provided this support.
- My application would connect directly to these devices through the vendor provided DLL or TCP/IP socket.
- I then created a secure web socket server (wss) that the browser application could connect and send processing requests.
- Requests were packaged as Confidential sent over the socket to my application where I would then process the request and create a Confidential response that was then sent back over the socket.
Confidential
Senior Java Engineer
Responsibilities:
- GVS is the developer of an in-store electronic coupon selection and redemption system.
- Users register with GVS using either our mobile application or our in-store registration tablet.
- Once registered, shoppers can select coupons from tablet computers placed in each aisle of a store.
- When checking out, the coupons are automatically redeemed by the system.
- I came on board with GVS as a senior Java software engineer and database architect.
- My area of responsibility is the design and development of the middleware server software needed to support the in-store operations, which includes; customer registration, coupon selection, redemption and coupon campaign management.
- In addition, I’m also responsible for the design and deployment of our OLTP database.
- I designed the middleware app as a Web service, it is written in Java and deployed on Tomcat 7.
- I deployed the system on Confidential Web Services behind an elastic load balancer; providing fault tolerance and allowing us to scale as needed. T he in-store tablets communicate with the middleware using REST.
- I created the following authentication mechanism: REST requests are validated using a hashed message authentication code (HMAC) that is generated from a standard set of request parameters.
- To guard against message replay, the HMAC signatures are stored in a database and checked before executing a request.
- All requests include a Time To Live (TTL). Signatures are deleted from the database after the TTL has expired.
- The back-end performs all database operations on behalf of the entire system. I log all requests using log4j.
- I selected MySQL as the primary data store for GVS, which I also deployed on AWS.
- I am responsible for schema design, indexing, writing and approving queries, and for ensuring performance.
- I designed the database to scale horizontally; sharding along the store identifier field.
- This allows us to scale-out as demand grows. Connections are managed using the Tomcat JDBC connection pool library.
Confidential
Project Lead Java
Responsibilities:
- iDataForms is the maker of HotRiot; a cloud based, server-side platform for Web and mobile application development.
- HotRiot is a SaaS that exposes a server-side software infrastructure that applications tie into in order to quickly and easily build fully functional Web and mobile applications. It includes a provisioned MySQL and MongoDB database, comprehensive document management, iOS and Android push notification and a host of other services useful to mobile applications.
- I was a principal in iDataForms Confidential and the lead architect and developer of HotRiot.
- I was one of the original founders that successfully launched this start-up.
- I designed HotRiot using an isolated multi-tenant architecture.
- With this design, computing resources are shared while tenant data is separated into individual databases.
- This is a very complex Web application written in Java and deployed on Apache Tomcat.
- HotRiot makes extensive use of JSPs, servlet filters, servlet listeners, JavaScript, MySQL, MongoDB and JNS (used to interface with a native C++ DLL that I wrote). Web and mobile applications interface with the HotRiot service using a C# or JavaScript AP; both of which I wrote.
- The JavaScript API uses AJAX and CORS to communicate with the HotRiot back-end servers.
- The C# API is intended for mobile development using Xamarin for cross-platform support.
- I deployed this application on AWS using multiple EC2 instances sitting behind an elastic load balancer.
- The applications database is deployed on Confidential ’s RDS and all document files are stored in S3.
Confidential
Senior Java Engineer Java
Responsibilities:
- Sezmi is the maker of a subscription-based entertainment system that delivers broadcast TV, movies, web videos and podcasts directly to a user’s TV.
- The Sezmi system includes a set-top box with multiple tuners along with a proprietary antenna.
- Sezmi maintains a massive on-demand catalog of movies that users can choose from for immediate purchase or rental with real-time streaming.
- I came on board with Sezmi at the very beginning of development as a senior Java software engineer and database architect.
- My first task was to design a scalable, fault tolerant database system around MySQL.
- The initial design specifications called for a subscription count of up to 1 million users.
- The scale of the database was truly massive with potentially hundreds of millions of entries a month with thousands of queries per second.
- I utilized a combination of database sharding, master-slave replication with read replicas, native operating system clustering, block device replication and judicious used of various server engines (InnoDB, MyISAM etc.) in order to design a system capable of meeting the expected demand.
- In addition to my database responsibilities, I was also part of the development team tasked with building the back-end infrastructure.
- The infrastructure group was responsible for writing all the software necessary to support the set-top box and subscription services.
- This included service activation, movie rentals, video streaming, digital rights management, payment processing, etc.
- This was a rather large subsystem written almost entirely in Java (some C++) that utilized web services for interprocess communications.
- The various components were separated out as independent web application deployed as WAR files on Apache Tomcat.
- Fault tolerance and scalability was achieved by creating a basic Web farm by using load balancers.
Confidential
Project Lead
Responsibilities:
- TVR Communications sells and manages patient entertainment systems to approximately 250 hospitals in the northeast.
- I developed TVR’s interactive voice response credit card processing system (IVR).
- This system, built on the Natural Microsystems AG-2000 telephony board, answers incoming phone calls and prompts callers to enter transaction information.
- This data is then passed on to the CC processor for authorization.
- All transactions are logged to a backend database I developed on MySQL.
- I architected the database schema and deployed the system with a primary DB server and an online replication backup.
- In the event the primary failed, the replication server could be brought online as the primary with a simple IP address change.
- This system, written in VC++, is composed of 5 independent redundant processes that communicate using XML and MailSlots.
- The redundancy provided a high level of fault tolerance.
- This system has been in continuous uses since 2003 and processes ~300,000 transactions a year with a .0001% error rate.
- I developed TVR’s Rental Management Consol, an integrated system for tracking customer accounts, processing bills, and activating and deactivating service to customers in real time.
- This was a rather large complex system that allows TVR to provide 24 hour service through a call center that can remotely activate and deactivate service to patients. Data is continually backed up from the local hospital systems to a remote data warehouse.
- The system supports multiple payment methods, fully itemized billing receipts, delinquent account management, etc.
- I designed the database schema for this system, and chose MySQL 4.1 for the database backend, implementing transactions using the InoDB table engine.
- The system is written in Java with Swing used for creating the GUI.
- I designed and deployed TVR’s distributed database architecture that support the Rental Management Consol described above.
- This architecture allows TVR to provide service to patients at their 250 hospitals accounts even when communications between the hospital sites and the datacenter is unavailable.
- The system uses MySQL as the database server at each hospital, and a master MySQL server at the datacenter.
- Data is encrypted using asymmetric encryption and pushed from each hospital server onto the master server at the datacenter.
- All sites employ replication servers for failover.
- Information aggregated at the data center is available to management for decision support.
Confidential
Responsibilities:
- Developed their second generation credit card authorization and billing software.
- This system begins all transactions by performing fraud detection using the Transaction Network Services (TNS) credit card authorization service.
- Valid requests are then processed by forming an XML request and submitting the request to our bank processors through HTTPS.
- I parse the XML responses from the banks using SAX.
- Our server communicates to TNS through a secure X.25 link connected through a protocol converter on the serial port.
- For maximum performance, I performed all port communications using overlapped I/O.
- This program was written in MFC VC++. XML processing was performed using the MSXML.DLL COM component.
- HTTPS communications was performed using the services of the XMLHTTP COM object.
- Developed a scalable, fault-tolerant, load balanced credit card processing system based on the authorization and billing software described above.
- This system allows up to 1000 individual computers each with an independent copy of the credit card processing and billing software to be linked together creating a massively parallel fault-tolerant server farm.
- Computers could be taken offline or brought online without disruption to the system.
- The status of the computers on the system were continuously monitored, “down” computers were automatically taken offline.
- Processing requests were routed in a load-balanced manner taking full advantage of the parallel processing capabilities of the system.
- Computers on this system could be located at remote sites for added security.
- This system reliably processes several hundred thousand transactions a day without interruption. This software was written in VC++.
Confidential
Senior C++ Engineer
Responsibilities:
- PNV provides connectivity services for long haul truckers, with installations in over 250 strategically located truck stops throughout the United States.
- I was initially hired by PNV to develop a remote control and monitoring program to be used by their technical staff to maintain and monitor computers deployed in the field. When I completed this initial project I was kept on to develop MFC and Java based software tools for their customer support department.
- Developed an application that monitors, controls and communicates with over 250 computers deployed in the field. The communications to the remote systems was through TCP/IP. System monitoring employed a client server design. I controlled the remote systems through TCP/IP-telnet to a Black Box Confidential . smart switch located at the remote sites.
- Developed a number of MFC and Java based applications for use by the PNV customer support department. These applications maintained customer information, contact history, provided data validation and other services required by customer support.
Confidential, Miami, Florida
Project Lead C/C++/Assembler
Responsibilities:
- SPG developed and marketed commercial software for the Win32 and OS/2 2.x environment. As the director of technology for Confidential ., I was responsible for all commercial product development.
- I was the lead architect and developer of SPG's ColorWorks WEB:4 image processing and manipulation software. You can download an evaluation copy here. This product was developed for both the Win32 and OS/2 2.x environments. I took this product from the concept phase all the way through to commercial launch.
- Complete specifications and an evaluation copy of the Windows or OS/2 version will be furnished upon request. I encourage you to look at this winning program.
- I designed and developed a high speed, spatial domain image compression algorithm that was marketed as Packet Compression. SPG was looking for a way to perform real time, in-memory compression of images in order to reduce the memory footprint required to edit large continuous tone pictures.
Packet Compression technical highlights:
- Extremely fast, many orders of magnitude faster than cosine transformations.
- No visible degradation to image fidelity for compression levels up to 10:1
- Simple algorithm that I ported to the Texas Instruments 320 series digital signal processor for even better performance. This port was written in 320 series assembler.
- As an employee of SPG, I worked with Bell Labs Electronic Photography and Imaging Center to customize Packet compression to work on their high-end TARGA boards. AT&T engaged SPG to modify packet compression to their specifications, so they could re-market the product to their customers as an alternative to cosine transforms.
Designed and developed SPG's Adobe Photoshop compliant plug-in - WEB Tools 4 Pro. I took this product from the concept phase all the way thru to commercial launch.
WEB Tools 4 Pro technical highlights:
- Contains numerous HTML code generators
- Uses a daemon (background) process to detect when a host program has been started
- Automatically attaches to the hosts main menu bar for seamless integration
- WEB site management tools for synchronization of local and remote WEB sites
(Complete specifications and an evaluation copy will be furnished upon request.)
As an employee of SPG, I was contracted out to the U.S. Nuclear Regulatory Commission to assist in the development of robot designed to operate in high risk areas of nuclear reactors. I helped debug the robots imaging system. I was recommended to U.S. Nuclear Regulatory Commission by AT&T Bell Labs as a result of my earlier work with them on packet compression.
Confidential, Boca Raton, Florida
Staff C/C++ Developer
Responsibilities:
- I was originally hired by Confidential as a contract programmer to work on an Confidential /Kodak joint venture.
- My contract was renewed numerous times as I was moved to different projects in the company.
- Programmer on a joint Confidential /Kodak document storage and retrieval system, Image Plus
- Developed the VESA BIOS for Confidential 's 8514A series graphics adapters
- Worked on the Confidential NetFinity network client management software
- Wrote the test suite used by Confidential to evaluate the performance scalability of their SMP computers running OS/2
- Wrote high performance video drivers in assembler for an experimental PDA hardware/software development project.