Over twenty five years of experience designing and developing professional software systems and solutions.
Hello! My name is Terrance Tatum and I'm a full-stack web and application developer. I've been designing and developing software solutions, based on best practices and industry standards, for over twenty five years. It has been my good fortune to work with some really great companies, in a variety of industries, with a broad range of technology. Currently, I'm in my tenth year with The Persimmon Group, Inc., an IT Consulting and Services firm in the Dallas/Fort Worth metroplex.
I chose technology as a career field, because I truly have an interest and passion for the industry. You can generally find me at my keyboard, working on or experimenting with new and interesting technology. I consider my personal strengths to be:
Successful projects don't just happen by themselves. Instead, they are the product of a carefully planned and organized effort. This discipline is known as project management. It is the application of knowledge, skills, tools, and techniques to meet the requirements of the project. It clearly defines the stakeholders, goals, objectives, expectations and success criteria. It identifies the steps and tasks required to successfully complete the project goals. Finally, it assigns the roles and responsibilities to all the project members.
Regardless of the development methodology being used, waterfall or agile, a well-defined project can make all the difference between a success and a failure.
Regarding the use of open source technology, I've spent years working on commercial enterprise systems from such vendors as IBM and Microsoft. However, I've come to appreciate the benefit and value of using open source products. I've been transitioning to the open source arena for some time now and I find the technology to be reliable, stable and cost effective. Also, most open source products have corporate sponsors who provide commercial support just like the vendors mentioned above.
I work with multiple technologies, because I believe it is critical to choose the right tool when solving business problems. It is my belief that if the only tool in your possession is a hammer, everything tends to look like a nail. The single technology solution generally leads to an accumulation of "technical debt" within a shop. This debt eventually causes IT departments to become overwhelmed and bogged down just keeping the business running on a day-to-day basis, instead of moving forward.
I'm a full-stack developer meaning that I possess the skills and abilities necessary to design and develop complete application systems by myself. It is my belief that all developers should possess these skills. However, years of experience has also taught me that too much time is wasted analyzing someone else's custom solutions built on non-standard conventions.
This can be avoided by using standard coding conventions, generally accepted design patterns, best practices and professional frameworks. Using frameworks also has the added benefit of allowing other developers to support or enhance the product with a minimum amount of effort. Education, knowledge and experience can be acquired without any proprietary knowledge of the application itself.
As professionals, we should avoid the cutesy, trendy or clever solutions that feed our egos. Just because something can be done in a certain way, doesn't necessarily mean that it should. Sometimes it's best not to use the most efficient coding method possible (everything in one line of code) and instead, code for future maintenance, bug fixes, enhancements and extensibility.
All software defects are composed of two distinct components, the "cause" and the "effect". The "effect" is the element most generally reported, “Hey, I didn't get my report!” or “These numbers can't possibly be right!”. As a result, the “effect” is usually the only part that gets addressed and not the root “cause” itself.
This approach to problem solving may yield faster immediate resolution, but leads to repeated failures over time. This in turn results in a costly loss of time and productivity, not to mention departmental credibility and reputation. In the long run, getting your systems back up as quickly as possible may not always be the best approach to handling problems.
Identifying and eliminating root causes requires a detailed, methodical approach. If the root cause cannot be identified within a reasonable amount of time, here are some things that should be done.
Task and schedule automation for end of day, week, month, period or year processing using ROBOT job scheduler as well as Cron job setup and maintenance for all types of jobs and services.
System and application data integration and synchronization in real time, near-real time or batch using direct socket, web service, FTP or flat files. Bridges base SQL extracts and system journals.
Sales, commissions, inventory turns, valuation and cost variance.
Data exporting to Excel workbooks, CSV files, JSON and XML.
KPI's, gross profit margin, net profit margin, current ratio, inventory turnover, cost variance inquiry, production reporting and server monitoring.
Web sites, web applications, sales rep portals, scheduling systems, customer 3PL portals, and distributed logistics systems.
Custom application development to complement or augment (gap-fill) off-the-shelf software packages or accommodate specialized business or process requirements.
Application modification, customization and/or enhancements to add or extend the functionality and capabilites of your current business systems.
Intermec printer language (IPL), Zebra printer language (ZPL), Monarch printer control language (MPCL), and BarTender label software (Seagull Scientific) and UCC/EAN/GS1-128 shipping labels.
Legacy database, user interface and application code base conversion to modern programming languages, design, techniques and system documentation.
System, process and workflow analysis, root cause identification and elimination or recommendation.
Business requirement definition, risk identification, work breakdown structure, estimating, scheduling and project statusing.
A platform agnostic, general purpose, high-level, object-oriented programming language for the enterprise.
A high-level programming language for business applications on IBM i or OS/400 based systems.
An object-oriented programming language developed by Microsoft for their .NET platform.
An open source, platform agnostic, procedural and object-oriented programming language for dynamic web applications.
HyperText Markup Language is the standard markup language used to create web pages.
A style sheet language used for describing the presentation of a document written in a markup language.
An open-source PHP framework for developing web applications with a model–view–controller (MVC) architectural pattern.
A high-level, dynamic, untyped, and interpreted programming language for client and server side programming.
A computer program designed to be run by the Unix/Linux shell, a command line interpreter.
A Linux distribution that provides a free, enterprise-class, community-supported computing platform functionally compatible with Red Hat Enterprise Linux (RHEL).
A Linux distribution developed by Red Hat and targeted toward the commercial enterprise market.
Debian-based Linux operating system and distribution, with the Unity desktop environment for personal computers, smartphones and network servers.
An open-source HTTP server for modern operating systems including UNIX, Microsoft Windows, Mac OS/X and Netware.
An open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server, known for its high performance, stability, rich feature set, simple configuration, and low resource consumption.
A family of relational database management system (RDBMS) products from IBM that serve a number of different operating system platforms.
A relational database management system (RDBMS) from Microsoft that's designed for the enterprise environment.
An RDBMS, object-relational database management system produced and marketed by Oracle Corporation.
An open-source relational database management system (RDBMS) believed to be the world's second most widely used RDBMS and the most widely used open-source client–server model RDBMS.
A community-developed fork of the MySQL relational database management system led by the original developers of MySQL because of concerns of acquisition by Oracle.
An object-relational database management system (ORDBMS) with an emphasis on extensibility and on standards-compliance.