Application Developer vs Tool Builder vs System programmer
So, I consider myself hacker, generalist and I mostly work building tools with some systems programming. Even after doing programming for over 20 years (seventeen years professionally), I still
love programming and will continue doing it for the rest of my life. I started
programming back in 80s with Basic on Atari, I then moved to C, on old
x8080 machines, I also did COBOL, Assembler and CICS on Mainframe; FORTRAN on VMS, and C/C++ on SunOs (later became
Solaris), IRIX (SGI), AIX. In my graduate school days, I did kernel tweaking
on Minix, wrote ICON compilers and became interested in distributed computing.
I became interestd in Java back in '95 and built a lot of large scale systems that used Java,
CORBA, J2EE and JINI. These days my interests include Erlang, Haskell, Ruby/Rails, Python/Django, Scala, OCaml, Lisp/Scheme, Factor/Forth, Agile
Methodologeis, JINI, JXTA, J2ME, AOP, SOA, Concurrent, Parallel and Distributed computing.
Here is snapshots of the computer languages I have used over the year
I have worked in role of:
Software Engineer
UNIX Systems Administrator
Technical lead
Principal Engineer
Application Architect
Systems Architect
Senior Software Architect
I have worked on various technologies and middlewares such as:
CORBA
J2EE/J2ME/J2SE
ESB
Web Services
JINI/JavaSpaces
Voyager
Python
Ruby on rails
Amazone Web Services (S3, ECS, SimpleDB, EC2, SQS)
Erlang/OTP
I am currently learning following technologies on my own
Haskell
Scala
OCaml
Factor
I have worked on a variety of methodologies such as:
Rational Unified Process
XP/TDD
Scrum/Lean
and partially used following:
Crystal Clear
DSDM
FDD
Agile Project Management/ASD
I enjoy work when I get to use all these skills, when I am working on
architecture, evaluating new things, setting up hardware, developing,
debugging, optimizing, and coaching other people.
Open Source Contributions
I am primary contributor to following open source projects: