Programming Languages
C and C++ (Expert)Fluent. Deep understanding of the language, including idiosyncracies. Effective reviewer and mentor
I have decades of experience with C and C++, developing
on Windows, OS X, and Linux using GCC, clang, and Microsoft
Visual C++, as well numerous cross-compilers for
embedded devices. Much of my experience is with
system code, as opposed to GUI applications. I also
have experience with interop between C and
other languages (Assembly, Lua, Rust, etc.)
Python (Advanced)Proficient, can handle challenging problems.
I have been programming in Python for more than 10 years.
I use it for basic scripting, text manipulation and parsing,
data analysis, modeling, and extensive on-device test automation.
I've done a fair amount of python2 ➜ python3 migration.
Rust (Intermediate)Comfortable with core concepts, can tackle more complex tasks. Familiar with idiomatic code.
I'm ramping up on Rust right now, and I'm optimistic that it's
a game-changer for system programmers. The benefits of the
memory-safety mechanisms are huge. It also has a rich (and growing)
standard library. "System programmers can have nice things too."
Lua (Functional)Familiar with core concepts, can tackle medium tasks. Used on-demand, but not consistently
I have used Lua intermittently over several years. I think it's a great
language for certain problem domains. Lua is extremely intuitive,
compact, and easy to comprehend. It is powerful, but simple to learn.
It is also embeddable, which makes it a great choice for enabling
scripting inside another application (or game engine).
Mojo (Novice)Familiar with fundamental concepts, can write simple programs.
I'm just starting to work with Mojo, but it's exciting.
It is a revolutionary platform for AI and other parallelizable
problem domains, while also being very familiar to experienced
python developers.
Javascript (Intermediate)Comfortable with core concepts, can tackle more complex tasks. Familiar with idiomatic code.
I've used Javascript (ES6) for web development, and still consider myself a novice.
But, I have been able to complete several projects and keep the code
readable, functional, and maintainable. It seems deceptively powerful and elegant
if you avoid some pitfalls. I'm exploring TypeScript, but wanted a handle
on Javascript first.
Assembly (Advanced)Proficient, can handle challenging problems.
I've programmed in Assembly language on the following RISC, CISC, and DSP processor families:
x86, 68k, ADSP2101, DSP56k, ARM, Snapdragon, PowerPC, MIPS, and Alpha.
Other Languages (Functional)Familiar with core concepts, can tackle medium tasks. Used on-demand, but not consistently
I've also used C#, Ruby, Lisp, HTML, CSS, Bash, Pascal, Ada,
Awk, Make, Sed, Perl, PHP, and Basic. I'm sure
there are others, but I don't really consider myself proficient
in any of these. Basically, I can make them do what I need.