Skills and Experiences
-
Technical expertise
- Object-oriented programming
- Software architecture: designing frameworks and class libraries
- Thread and system programming
- Application and database development
- Complex algorithms and data structures
- Designing and implementing user interfaces
- 3D graphics programming (OpenGL)
- Migration / porting / integration / testing
- Tool development: parsers, interpreters, compilers, code generators
- Technical documentation, coaching, training
-
Methods
- Object-oriented design, UML, design patterns
- Software engineering: refactoring, unit testing
- Generative software development (templates)
- Language design: domain specific languages
- Functional (side effect free) programming
- Relational data modeling, normalization, ORM
-
Architectures
- Distributed systems
- Embedded systems
- Multi-tiered architectures
-
Programming languages
- Object-oriented: C++, Java, C#
- Functional: ML, OCaml, Scheme
- Dynamic: Python, Ruby, Perl
- Relational: SQL, PL/SQL
- Procedural: C, Pascal, Visual Basic 6
- Declarative: HTML, CSS, XML (Schema, DTD, XPath)
- Assembler: Z80, M68000
- Special: UML, Make, Jam, IDL, Tex
-
Operating systems
- Unix family: Linux, QNX, Solaris, IRIX
- Windows NT family, Windows CE/Mobile
- Android
-
Libraries
- STL, Rogue Wave, pthreads, cppUnit, pyunit, SQLAlchemy, log4j, libxml, etc.
-
Frameworks
- JDK 1.6
- .Net 3 (basics)
- Ruby on Rails (basics)
-
GUI Toolkits
- Qt 4.3, MFC, Tk
-
Many common development tools
- Eclipse, Visual Studio, Together, Vim, Emacs, etc.
-
Configuration management
- Perforce, Subversion, CVS, Bazaar
-
Code analysis
- Purify, PC-Lint, BoundsChecker, gprof, doxygen
-
Bug tracking
- Trac, Bugtracker
-
Debuggers
- gdb, DDD, WinDBG
-
Project roles
- Developer
- Architect
- Reviewer
- Trainer
- Coach
I'm an experienced software developer with keen perception and high quality standards.