Can use typing and interface deliberately and productively to structure and plan ahead coding activity.
Can design and implement entire programs myself given well-defined specifications on external input and output. I systematically attempt to generalize functions to increase their reusability.
Can predict accurately the effort needed to adapt my own code base to a new specification and follow an existing refactoring strategy on someone else’s code. I can take full responsibility for the integration of someone else’s patch onto my own code.
Can write client code for simple Internet protocols and familiar with the most common packaging and redistribution requirements of at least one platform and use them in own projects.
Can use predetermined programming patterns to exploit platform parallelism productively in my code.
Can recognize and extract reusable components from a larger code base for my own use, even when the original author did not envision reusability. I can package, document and distribute a software library for others to reuse. I can interface stateless code from different programming languages.
Can explain my data structures, algorithms and architecture patterns to someone else using the standard terms in my domain, without reference to my code with distinct operational semantics.
Can infer the abstract operating model of an API or library from its interface, without access to documentation, and write small test programs to test if my model is accurate and recognize when reference documentation for a language or API is incomplete or contradictory with a reference implementation.
Can use different workflows for different programming assignments, with different trade-offs between initial set-up overhead and long-term maintenance overhead.
Can enter the environment of someone else at my level or below and make code contributions there with minimal training.”
Can reduce a program error to the simplest program that demonstrates the same error. I have one or more working strategy to track and fix heisenbugs in code that I can understand. I write and use regression tests for code that I work with directly.
Salary: 80,000.00 - 100,000.00