University of New Brunswick
Product Architect at IBM
|Recommendations||1 person has recommended Jason|
Join LinkedIn & access Jason's full profile
A life-long computer guru and self-professed "geek", I am a person who is passionate about technology and enjoys challenging projects that make me think. I also enjoy working directly with clients, as it is always eye-opening and a learning experience to see and hear about their own unique problems - which can often actually be opportunities in disguise if executed on properly.
* High-performance client / server applications - Sockets, non-blocking I/O, buffering, memory mapping, serialization / de-serialization, in both Java and C++
* Relational databases - Oracle, PostgreSQL, MySQL, Derby, others
* Non-traditional and NoSQL databases - Memcached, Hadoop, others
* Application / Network Security - SIEM, Log Management, Compliance Reporting, Basic penetration testing, Fuzzing, CSRF protection, MITM protection, authentication and authorization, encryption, others
* Others - Linux / UNIX (*BSD, Solaris) / Windows / Android / OSX, bash scripting, machine hardening, etc.
As a member of the product architecture team, my responsibilities include
* Working closely with clients and partners in order to gather requirements and analyse our existing solutions, ensuring our product suites meet their needs now and in the future
* Working closely with product management and development in order to provide input to the user-facing workflow of new and upcoming features
* Working with development to assist in the architecture and design of those features, with a close eye on concerns such as performance and scalability, stability, supportability, and suitableness for use within our long term product vision and roadmap.
* Researching new and upcoming technologies for use in our product suites
* Researching new and upcoming trends and concerns in the network security industry and how they will impact our products
As a Development Manager at IBM, I was responsible for managing a team of developers responsible for delivering a security intelligence product that integrated tightly into our main solution. The product was highly computation-centric and had to deal in real time with extremely large data sets. I worked extremely closely with product management and clients, helping to drive and shape the product roadmap. I also worked extremely closely with the development and architecture team, helping shape and drive the underlying foundational architecture of the product as a whole. In the early phases of this role, I was also responsible for directly authoring several key features delivered in the product. In addition to these technical duties, my duties as a manager included direct management of personnel including hiring and compensation.
As a software developer at Q1 Labs, I held several roles.
My initial role with the company was to serve as a consultant to create a high-performance normalcy view for our flagship software. I engineered a novel solution in C++ involving a multi-dimensional hypercubes to compute normalcy. However this solution was never able to be put into production as my skill-set in web technologies was seen as more vital to the company.
I then progressed into a role as a web developer. Over the next several years I was responsible for architecting and driving much of the product suite's key user-interfaces. I introduced an AJAX-like asynchronous technology deep into the product suite before the term "AJAX" had even been coined, in 2003/2004. This custom-built high-performance/quick-deploy/annotation driven AJAX technology stack is still in use in the product today.
Over time I became a senior team leader / developer on the user interface team. Roles and responsibilities, in addition to those of continuing to develop key product features, included development code reviews, architecture design, new hire training, and increased interaction with clients and third parties.
In 2010 I joined a new project as a senior developer. This project was a very substantial add-on product that integrated into our flagship software. In this new role I was one of a small team who had to rapidly prototype, develop, and eventually deploy this new application. I was eventually selected to be the development manager of this product as the team grew.
Q1 Labs was acquired by IBM in 2011.
I was a primary developer on the Kopete Instant Messenger team, which is the KDE open source project's flagship instant messenger. The primary project I contributed to was the Chat Window, which I re-authored from scratch in order to be based around a KHTML view. I also was a heavy contributor to the IRC protocol, and contributed as well to the MSN protocol, and various other areas of the messenger.
Disclosed is a process that leverages information present in a Normalized Device Configuration document (i.e., rules, routing, and other information required to create a network topology) to auto-generate network flow data that matches the routing rules present in a network topology, as well as traffic that matches the paths that the firewalls allow.
An illustrative embodiment of a method for firewall rule use counting receives log messages comprising one or more log data sets from each firewall rule in a particular network whose counts are to be tracked in a log collector, generates a network trie for each reference database in a set of databases and a device source trie and a device destination trie for each firewall device in a plurality of devices of the particular network, a source port and protocol list and a destination port and protocol list for each respective device, a unique object for each log data set received; a mapping database comprising an entry for each log data set received associated with the unique object; and feeds each entry in the mapping database through a topology model to also generate a reference to a unique firewall rule on a respective device in the plurality of devices. A count associated with the unique firewall rule is incremented using a count of logs stored associated with the respective unique object and a report is generated.