About Me

I'm a software engineer with skills in

  • Graphical User Interface (GUI) Design
    • Web Development
    • QT/GTK/SWIG Gui
  • System Development
    • Restful API
    • Libraries
    • Inter Process
  • Data
    • Relational databases
    • NoSQL databases
    • Various file formats
    • Message Brokers

Current active projects:

Code Skills

C++

C++ was the language I learned, started with C++03 spec and have now shifted to mainly using post c++11/14 implementations.

OpenCl Algorithms

Improved performance to applications by incorporating OpenCl integration, this is an General-purpose computing on graphics processing units (GPGPU) frame work.

C (programming language)

Main use for the C (programming language) has been with make system calls to the linux kernel. Lately exposure have been with statically linked libraries that implemented in c, and bound to languages such as python or java (via cython or swig).

Inter Process Communication

This, in my opinion, is on of the best topic in programming; Getting two programs that can integrate with minimal effort, which a like to call singing, is an enjoyable experience. It involves:

  • Planning things out be for you start coding.
  • Understanding of the various types of Communication available to a kernel
  • Know that security implementations if don't adhere to guidelines such as NIST and IEEE

OpenGL + SDL2

Some experience working with OpenGL libraries in conjunction with SDL. One pet project, Shape Game, was to teach kids how encryption using an interactive game where two users play the roles "Alice" and "Bob" with a middle attacker "Eve" watching the communication. The kinds would interface with the computer using Makey Makey

Java Virtual Machine languages

A lot of exposure in JVM based languages with both collage and working in enterprise setting.

projects include:

  • Restful API via spring boot framework
  • PDF data extraction using Apache PDFBox
  • Parsing Text Files to publish to a Message Broker
  • Instant Message Program via TCP Protocol
  • Consumption of Restful API, including file data bursts
  • Graphical interfaces for use with calculator style applications

With respect to java had to read several white papers on the implementation of the virtual machine and it's bit code generation, memory allocation\management.

Partial Implementation of a compiler that was a subset of scala language to MIPS instruction set.

Python

Natural language Possessing

Projects include working with Natural language toolkit to remove stop words from documents and generate simple word histograms. Than applying a template based PDF data-table extraction. Implementing methods similar to hit box detection used in video games to calculate positional shifts in anchor points in document, that may have been scanned and process through optical character recognition software

Restful APIs

Combining Flask, Flask Rest Plus and SQLAlchemy Frameworks to create APIs thad adhere to OpenAPI specifications.

Development Approach Python

With python the approach was to ensure code coverage by combining

Test Driven Development(TDD):

unit and integration tests with masked mocked sqlite databases.

Containerization:

Creation of idempotent application where persistent states are stored in s3 Bucket, broker, relational or No-sql repositories. Mainly used with creation of Rest API

PIP

Creation of libraries on a private pip proxy, these packages have to be planed so that changes don't have impacts on developers usage.

Versioning

The Versioning Scheme I use for python is PEP Compliant Major.Minor.Patch.non-prod, the non-prod could be a# for alpha build number, b# beta build with number, rc# release candidate number. I find this helps communicate when change are going to be release, and how to block version with a security or implementation risk.

Continuos Integration Steps:

  • Version Check
  • Build
  • Validation
    • Test
    • Type Hint Report
    • Code Coverage Report
    • Static Code Analysis
    • Security Scan
  • Documentation
  • Change Management
  • Deploy

(dot)Net, C#

Folder Monitoring Service

Created simple service that uses windows event api to monitor a folder to detects changes and prints a daily summer of what has changed.