Saturday, November 8, 2014

Last weekend I was working on updating my linkedin profile. It did take both days, granted I did not work on this constantly. Worked it a few hours, put it aside, repeat. This came about after a week of looking over 9500 lines of C source code, integrating in into an existing system. The person who wrote it put a ton of work into that project. Suppose I have taken it over to straighten it out and make it work a little better. So, over the course of those two days, this is how it turned out.

Reverse engineering and legacy application code survey, identify areas to gain efficiency. Function inventory, clean up and reuse. Implement quality practices.

Study existing source files and command procedures, assess what is needed for improvements. Clean, and improve function headers for future reference and maintenance.

Use existing coding standards or conventions; propose the use of standardized source templates for establishing coding and standards or conventions.
 
Observe, inquire and study user experiences. Look for common patterns and themes. Look for ways to automate and improve. Consult with users and managers for proposed changes.

Use scripting languages for generating code templates. Assess and prepare scripts or command procedures for automated loop unit and system integration testing.

Use operating system tools (netstat, iostat, ps, pr commands) to monitor system environment during runtime and test events.

Observe, log and trend application run time performance, looking for memory leaks, memory usage, cpu usage, system environment, networking, peripherals.

Runtime troubleshooting skills, cause and effect analysis. Define system problem boundaries and scenarios. Answer questions: If operated this way, what happens; what indications are different than if system operated another way; how does the code react under various scenarios.

Research, develop, standardize enforce coding standards, operator messaging. This becomes helpful and is key for later maintenance and troubleshooting.

Improve, instrument and add efficient logging to source code for runtime tracing and problem detection.

In the end, fairly pleased with how it turned out.