Databases
Steven's strongest skills are focused on RDBMS technology. "Application DBA" skills of development and application concerns are areas of greater proficiency as compared to areas of operational scope such as storage management and replication.
PostgreSQL (~20 years experience)
- Proficient
- Schema Development
- Query Development
- Procedural Development (PL/pgSQL)
- MVCC/Transactions/Concurrency
- Application Performance (i.e. querying; indexing)
- Competent
- Disaster Recovery (Backups)
- Procedural Development (PL/v8)
- Full Text Search
- SQL/MED
- Geospatial Functionality (PostGIS)
- System Performance (i.e. kernel & I/O tuning)
- Basic
- Availability
- Replication
Significant Projects- Retail chain data migration/merge
- Medical pricing search database
- Inventory costing/valuation overhaul
- ERP Dual Unit of Measure enhancement
- Shipping container fulfillment module
- Customer product catalog module
- Sales order product configurator module
- Develop multi-ERP SQL/MED integration
- Design/Develop legal/financial services database
- Various data integrations (Pentaho PDI, Boomi)
- Proficient
Oracle (~10 years experience)
Oracle was once Steven's prime competency with a similar skill profile as listed for PostgreSQL. However, Steven has not worked regularly with Oracle for some time; skills which were once "Proficient" are now better described as "Competent" or "Basic".
Steven's Oracle hands on work was also more focused on day-to-day operational concerns than project oriented development.
Significant Projects- Retail chain data migration/merge
- Emergency database server replacement
- Batch style mass data maintenance
- Performance analyses
- Install & configure (Solaris & Linux based environments)
Other Databases
Steven has occasionally worked with MS-SQL and MySQL, including performing installation and configuration. This work was typically not sustained effort and was rather performed in the context of specific, limited duration projects. Steven has managed teams developing and operating MS-SQL based applications, but this was management work with very little hands-on, individual contributor responsibility.
Application Development
Qt, C++, & JavaScript(~15 years experience)
Steven has performed extensive work utilizing Qt, C++, and JavaScript to enhance and extend the xTuple ERP system client software.
The xTuple ERP client is a QtWidgets (Qt 5) based desktop client written in C++ which connects directly to a PostgreSQL database server. The client allows extensive, though fairly low level customization via QtScript sufficient to modify existing functionality and to create new forms and functionality.
Steven's experience with Qt began with developing extensions using QtScript and QtDesigner (~15 years). Later, as Steven's work focused on enhancing xTuple's core product, he worked directly on the C++ code base (~5 years).
xTuple ERP targeted C++11 as the language standard for their implementation. Given the scope of C++, this skill can be difficult to characterize with a simple proficiency grade. Steven's skill with business logic and OOP essentials would likely be characterized as "proficient", but some systems oriented C++ and more advanced topics such as advanced memory management, templates, etc. would be either "Competent" or "Basic" depending on their expected frequency in straight-forward accounting software. "Competent" is therefore reasonably descriptive generalization of C++ related skills.
- Proficient
- QtWidgets
- QtDesigner/Qt's forms XML
- QtScript (embedded ECMAScript)
- QtWidgets App relevant Qt libraries
- Competent
- C++
- Basic
- Qt Model/View framework
- QML
Significant Projects- Shipping container fulfillment module (QtScript)
- Customer product catalog (QtScript)
- Enhanced user defined fields and form builder (QtScript)
- Sales order product configurator enhancement (C++)
- Dual Unit of Measure enhancement (C++)
- Inventory costing/valuation refresh (C++)
ExamplesPlease note that only QtScript examples are provided as Steven does not hold rights to the C++ code he's developed. Screenshots of Sales Order Product Configurator Qt forms, as implemented, can be seen in training documentation.
- Proficient
Elixir/Phoenix Framework/OTP(~2 years experience)
Steven selected the Elixir language for the Muse Systems Business Management System project due to its being built upon the efficient and resilient Erlang BEAM VM runtime environment, the development productivity of the language, and the availability and quality of essential frameworks and libraries including the Phoenix Framework and Ecto.
Overall, Steven is "Competent" with Elixir, Phoenix, Ecto, and the other commonly used libraries. While Steve has accomplished much with Elixir, covering a broad number of OTP and framework/library concerns, his experience with Elixir is as a solo developer and he has not yet worked with Elixir in production environments.
Example ProjectThe Muse Systems Business Management System (MuseBMS) is a small Enterprise Resource Planning class system designed as both a a playground and proving ground for certain ideas and to test certain limits in business systems development. Important context for evaluating the code in this project is that the project's nature also results in certain unconventional choices in Elixir application development as well. Finally, the project is a work in progress and is under active development so functionality may not be complete or may change from time-to-time.
Web/Front End Development
Steven's has a basic HTML/CSS competence in web development matters, but typically doesn't work in web related front end development. His skills would be consistent with a "Basic" level of proficiency. Much of Steven's experience in this regard is from helping clients with emergency support related needs, troubleshooting issues with development work done by others.
Significant Projects & Examples- buttgereit.com
This website was built using the Hugo static website generator. Steven created both the Hugo theme and content for this website. The website is a mix of Go templates, standard HTML and styling with Tailwind CSS
- muse.systems (website)
The Muse Systems marketing website was also built using the Hugo static website generator. Steven significantly modified an open source Hugo theme and created content website. The website is a mix of Go templates, standard HTML, markdown content files, and styling with Tailwind CSS
- buttgereit.com
Other Languages & Tools
Steven has worked with a variety of other languages and tools over the course of his career. His experience and recency varies by each technology, but overall is less significant than those previously mentioned.
Other Languages & Tools
Steven has worked with a variety of other languages and tools over the course of his career. His experience and recency varies by each technology, but overall is less significant than those previously mentioned.
- JavaScript (Node.js, other)
Outside of QtScript, Steven does occasionally work with JavaScript. Primarily this involves Node.js in some capacity. Most work here deals with Node.js based tooling, but also includes some lighter application development or support requests from clients.
- Java/Groovy
Over the years Steven made various utilities and other small "internal" applications using Java. He also used Groovy in developing integrations using the Boomi iPaaS service as well in similar small app development.
- Boomi (~2 years experience)
Implemented & maintained integrations between the NetSuite ERP system and bespoke client portal PostgreSQL databases.
- Pentaho Data Integration
Multiple implementations including integrating external SaaS services to on-premise database/ERP systems and services end user data upload capabilities.
Copyright Ⓒ Steven C. Buttgereit, 2023