I have working knowledge and in most cases used in real-world applications: + Perl, Java, C, Python, Ruby, Javascript, Scheme, Prolog, Smalltalk, Forth, Mathematica and some more, also writing some interpreters and source to source transformers. + TCP/IP, socket programming, packet inspection and injection, firewall testing, SMTP, HTTP, ARP, DNS, CORBA, and 20+ proprietary protocols. + Oracle, MySQL and SQLite, helping with performance and storage tunning in some cases. + Linux/Unix kernel and tools, Win32 apis, ARM, and many libraries. + Automated testing tools including Selenium and many specifically created for existing applications, tcpdump, dynamic loader traps, binary debuggers, binary code injection and instrumentation and also desktop applications like Excel, Photoshop and others. + I used and even taught how to use UML, Rational Rose, some RUP templates, Erwin, etc. but in the last years replaced them with automated tests, scripts and lighter tools. + Source code of many projects like web servers (including Apache), language interpreters, database engines, etc. - I usually avoid big and complex frameworks and tools like Hibernate, Maven, some XML parsers and others and only look at them when coaching a team that was unable to find a simpler and more reliable way of doing things. + I focus on computer science concepts instead of tools, am quick learner and am always ready to learn something new in this same line. Tools follow needsI choose mine trying to solve the following problems: + Agile development of business applications: tools must
+ Long term career as a developer and architect: tools must
+ Quick prototyping and simulation: tools must
| ||||