Below are some projects which are representative of my professional experience.
Pattern Compiler for Semiconductor Test
This was a major project, for which I spent over 4 years as a senior (staff) software engineer; in this role I was one of 2 lead developers who took the project from its inception into high volume production with major customers including Intel and AMD. The team also developed a suite of system software, including linkers, loaders and translators.
As the team expanded, I served as a mentor and technical advisor for other engineers. I was eventually promoted to be the software development manager for the entire team, and spent another 4 years overseeing the roadmap, project planning, priorities, development and engineering staff working on the project.
Although the C++ source code for this project remains proprietary, a conference paper I wrote with some colleagues describes the compiler’s overall architecture and design.
MailShredder Email Privacy App
For a time during the initial growth of the iPhone and iPad market, my company was focused on iOS app development for the iOS app store. I implemented a few smaller apps to learn the platform, but MailShredder was my first commercial app.
MailShredder was a privacy tool, where users could setup rules and filters to systematically delete old or sensitive emails. For example, the app could be configured to filter and delete any message older than 1 year. Below is an example screen capture showing MailShredder’s screen for filtering and deleting messages:
MailShredder found a niche and sold to thousands of customers. Although I’m no longer supporting or maintaining this app, I do plan to open source the ObjectiveC source code for archival and educational purposes.
FutureBudget Financial Planning App
The 2nd app my company released was a tool for financial planning. This tool supports the input of budget line items and “what if” scenarios, then allows the user to get a combined forecast of cash flow, loan balances and investment returns into the future.
Below are some screenshots from this app, which highlight some of the app’s functionality.
Screen to enter budget line items:
A plot of future cash flow:
Amortization of a loan:
FutureBudget marks a shift of my company’s focus towards financial technology or “FinTech”. Although the company still had a catalog of iOS applications, the R&D focus had expanded and shifted into the financial domain. Although I’m no longer supporting or maintaining this app, I do plan to open-source the ObjectiveC source code for archival and educational purposes.
Stock Market Chart Pattern Recognition Tool
To support research into the the financial markets, I wrote a pattern recognition software tool to identify geometric price patterns consistent with price consolidation, breakouts and the like. This type of pattern recognition implemented in software is definitely a challenging exercise in algorithm design.
Recently, I wrote an article which used the tool to support the analysis of chart patterns during 2018 and 2019. This article include numerous examples of patterns which were identified by this tool.
Besides being used for internal research, the tool was made available to the investment community. The project is no longer active, but the C++ source code has been open sourced for archival and educational purposes. The project consists of 2 components. The first is a pattern recognition library, which implements the pattern matching algorithms. The second component is a graphical user interface, implemented using the Qt framework.
Resultra Project Tracking Tool
Resultra is a web application for project tracking. The project was built with a dual purpose of supporting internal research into the financial markets as well as being released externally as a web application or SaaS. Internal to my company, the application was first leveraged for use cases like trade journaling, backtesting, forward testing and investment strategy development. The application was recently released externally as an open-source (community) project for use cases like Scrum project tracking and trade journaling.
Below is an example screenshot showing Resultra’s main window:
Other Work Samples
I fully appreciate that a project doesn’t start or stop with the software development itself. In support of systems and software development, below are some other competencies which have proven valuable:
DevOps: For numerous projects, I’ve been responsible for setting up the tools and infrastructure to build, test and release software. On Resultra, for example, I wrote the build and packaging scripts in Python and recently integrated the builds with Travis CI for release builds and deployment. For parts of the process which aren’t fully automated, I’m also proficient developing and writing up repeatable checklists; for example, Resultra includes a check-lists for installing the software and provisioning a development system.