Project Porfolio

Steve Roehling

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 Screenshot

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:

FutureBudget Line Items

A plot of future cash flow:

FutureBudget Cash Flow

Amortization of a loan:

FutureBudget Line Items

“What-if” scenarios:

FutureBudget Scenarios

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.

The project was written in C++ with a Qt graphical user interface. Below is a screen capture showing a pattern match for a “Falling Wedge” pattern:

Chart Pattern Finder Screenshot

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:

Resultra Screenshot

The project is a full-stack web application built with Javascript and jQuery on the front-end and a Go (Golang) back-end. Besides including a large scale Golang and Javascript software development effort, my contributions to the project have included build tools, documentation, integrating the system for deployment with Docker and Ubuntu Linux, and test suite development.

Resultra has recently been open sourced. More detailed information is available on the project’s main website or GitHub page.

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.

Technical Writing: Some samples of my writing are available on my blog and Resultra’s documentation site. I appreciate the importance of writing in a concise, clear and articulate manner.

Website Development: To support professional projects and community service endeavors, I’ve developed numerous websites. For example, I developed a Weebly based site for my HOA, and a Joomla based site for Resultra. This site is developed using Hugo. Rather than building a site from scratch, I’ll typically use a content management system such as Joomla and a template; however, I’m comfortable working with Javascript and CSS for further customization. Besides developing websites, I’m proficient with Linux-baed installations and configurations of third party web applications