Senior Software Engineer + Architect + Product & Technology Management
January 2007 - PRESENT | September 2001 - December 2004
As a research scientist my role at ABB is to design, build, evaluate product features and concepts to benefit various ABB Business Units Industrial Automation: Oil & Gas, Pulp & Paper, Power Generation; Power Systems: Electric Grid Network Management, Micro-Grids; Robotics.
Work on strategy, product features, future vision with Product Managers, Technology Managers, Research Managers, & ABB Customers.
Projects ranged from using Machine Learning, Embedded Systems, Software Architecture, Software Performance, InfoSec, Full Stack Development, Mobile & Cloud Computing, Scalable Systems to improve & enhance software capabilities at ABB.
Published papers, invention disclosures & patents for advances in Industrial Automation & Analytics. Designed, implemented & presented various prototypes at ABB Customer World events to ABB’s customers.
Lead editor for a quarterly report on Software Technology Watch to evangelize Cloud Computing, Machine Learning, Operating Systems & Programming Language advancements to the larger ABB community.
1998 - PRESENT
Led development of three major updates of website for the largest Islamic center in South East with peak visits of over 10,000.
Built GSuite based IT infrastructure for over 100 users for day to day operations of the center.
January 2005 - December 2006 | June 1995 - December 1999
As a senior architect in IBM Global Services, I worked on two major projects at IBM customer sites, for modernizing workflows for insurance claims & point of sale terminals. Built integrations with various IBM legacy systems using IBM MQ Series, IBM Websphere, & Guidewire.
In my previous stint at IBM as a Senior Developer, I was part of the team that built VisualAge family of IDEs for Smalltalk, C++, Java which later became Eclipse IDE. Built visual composition editors, wizards & code generators using Smalltalk & Java.
January 2000 - December 2002
Founded a technology consulting company providing software development & training in Java EE + Web development. Built developer certification exams for IBM.
Customers included IBM, ABB, Vroom Technologies, Local & State Government Agencies, and news services. Built & delivered tutorials & course work for Java EE, EJB, Struts, JSP, Servlets, XML, UML, OO Design.
June 1989 - May 1995
Taught VAX 8600 Assembly Language & Data Structures classes to undergraduate students. Mentored students with internship & job placements at RWD Technologies.
November 1992 - May 1995
Built custom software solutions for Holiday Inn, Motorola, GE for Macintosh, Windows & UNIX platforms. Wrote custom widgets & built a cross-platform user interface & communication APIs for GEnie online service. Built custom parsers for domain specific languages.
January 1990 - October 1992
Built nuclear power plant simulators. Focused on Instructor Workstations to override simulations to introduce faults. Used real-time UNIX on Masscomp workstations. Ported Simulator Instructor Workbench to Sun Solaris OS. Wrote a DataViews overlay to help automate labeling engineering drawings.
January 1989 - December 1990
Master’s thesis on implementing & measuring performance of various graph algorithms. Presentations on dealing with Byzantium Faults in Distributed Systems, Public Key Cryptography & Zero Knowledge Proofs.
June 1984 - May 1988
Final year project was Universal Assembler design & development in Turbo Pascal. Taught Pascal & Z80 Assembly Language programming in senior year, this was my very first job. Teaching is my passion.
Built a physical SDN switch using Linux, Intel 4-port NIC PCIe Card, Linux Kernel Modules, Hugepages, VFIO-PCI, Open vSwitch, Intel DPDK, Faucet SDN, Prometheus & Grafana.
The SDN switch allows us to detect malfunctioning microgrids and isolate them using distributed Power Grid State Estimation algorithms.
This project helped me understand low level Linux Kernel Modules, Open Flow, Networking Namespaces, VLANs, TUN devices, Bridges, Gateways & Routers. Experimented with some off the shelf SDN switches, P4 Language & P4 Runtime. https://micro-grid.github.io/swtch/
Explored the solution space for possible intermediate representations of customer provided inputs for ML based pipeline which included Swift, CUE, Skylark. Used Git-LFS to store & manage PDFs & other artifacts. Used Azure DevOps, GitLab, Go, GraphQL.
Built word embedding ML pipeline for classifying ABB spare parts, part items, location inventory. Automated labeling for over 1.5 million items. Improved spare parts fingerprint processes for all of ABB’s products. Used Go, Python, Jupyter Notebook, Keras, GitLab, Portainer, Webpack, Babel, ESLint, SQLite.
Applied Voice Assistant APIs for embedded field devices such as Aquamaster Water meter for better interactions with field operators. Raspberry PI plus Google AIY Kit connected to water meter using Modbus protocol over serial port. Used C, Python & Google AI APIs.
Presentation on how to build a machine learning pipeline, when should you use ML, how to prototype it, how to be aware of biases. Source material from Google’s PAIR project, customized for ABB.
Company wide introspection on the future challenges posed by AI, Deep Learning, & automation. Part of a global team looking at identifying potential use cases for ML based pipelines. Reviewed Google AI, Jeff Dean, Google PAIR, Microsoft AI research papers and talks.
An approach to migrate legacy monoliths to microservices, when, why, and how. Built prototypes & proof of concepts of various approaches & design patterns using Docker & Kubernetes. Focus on scalability and discovery of services. Comparisons between Azure & Google Cloud.
Inter-process communication is key to various products deployed on small footprint devices. Identified different scenarios & built micro-benchmarks using Google Benchmark on Raspberry Pi & Intel NUC platforms.
Results of the study were very surprising, Google Protocol Buffers & Google FlatBuffers were the winners over other IPC serialization techniques.
Investigated using perf tools and eBPF to find out why performance stalls, the unsurprising answer was L1 Cache misses.
This project utilized Bazel, C, C++, GTest, GBenchmark, perf & other Linux toolsets, it was the most appreciated project at ABB Research.
Built a mobile version of the ABB 800xA Control system to help field operations. Project involved using Go middleware, Material Design Progressive Web App. Go server used a ngrok reverse proxy endpoint to a privately hosted 800xA industrial automation control system.
To improve field operations, we deployed Bluetooth BLE Beacons throughout a factory floor to passively identify the control system assets closest to the field operator.
Investigated & applied for a secure geo fenced lifespan patent for a mobile device to be used in the field for 800xA control system operations.
Built a mockup prototype of power generation, water distribution autonomous asset inspection based on ideas from Google Street View and various image recognition techniques.
Built a modern progressive web app to highlight hotspots, indoor maps, onboard camera views, & potential diagnosis. The autonomous system relied on human operators to verify results & generate work orders.
Led a team of domain experts and research scientists to evaluate potential use cases for future mobility workforce. At this time, ABB was focused on desktop & panoramic control systems. Cloud & Mobile Computing were not considered essential.
We interviewed ABB’s customers in Oil & Gas, Power Generation, Power Distribution, Water Distribution, Industrial Automation to identify gaps and needs for field operations.
Web logs present a unique perspective on how web apps and websites are being used. We used these ideas and control room chatter to annotate and tag operator actions to learn which parts of the system are being used, which are rarely used, and other leading indicators.
Designed, prototyped, and implemented a new controller hardware & software platform for Industrial Automation. This was before the advent of mobile platforms and Linux on ARM platform.
Technology stack consists of IBM Java J9 Virtual Machine, Apache Jetty, IBM MQTT. Product rollout failed due to SD write performance issues and hardware reliability.
Stora Enso is a large paper & pulp factory based in Sweden. Designed and implemented a work order management system using Skyva plus IBM SanFrancisco framework (precursor to IBM WebSphere), using Java servlets, JSP, and other related components.
ABB was focused on Industrial IT and SAP competitor Skyva for building the next generation Manufacturing platform. Built Java middleware based on Skyva, SAP connectors, 800xA Control System integrations.
Built a static website generator using Java for Middle East & North Africa news content. Precursor to Jekyll and Hugo. Used templates and a simple tags to allow news editors to write content in text files and generate static website.
You can reach me at shakeel at mahate dot net.