NAME
Kevin Tjiam - software generalist, used for solving problems in the embedded
systems and/or internet domain.
SYNOPSIS
kvnio |
[-abCfJl]
[--arm-cortex]
[--embedded-c]
[--javascript]
[--datasheet
pdf] problem |
DESCRIPTION
Curious and perpetually learning about all things computing. I've had some
formal tertiary education (dropped out to be a music producer/DJ) in
linguistics, embedded systems & software engineering, complemented by 15+
years of experience in almost every domain of computing.
Currently spending a lot of time writing bare metal for Bluetooth Low Energy
& ARM Cortex-M based devices. In my spare time, I'm starting to get into
kernel development.
Contemplating on going back to university so I can get a piece of paper that
says I'm qualified at this stuff.
- Location
- Perth,
Australia
- Email
- kevin@tjiam.com
- GitHub
- @kevincharm
- Twitter
- @kevincharm
- SoundCloud
- kevin-charm
- Webpage
- kvn.io
- Codepen
- @kevincharm
OPTIONS
- -a --arm-cortex
--arm-gcc --cmsis
- Use an ARM Cortex-M based MCU or SoC such as nRF5x and
Atmel SAM series.
- -f --fast
- Improves performance of current task while coffee is being
piped into stdin.
- -C --embedded-c
--gnu11
- Use embedded C to write firmware for bare metal/real-time
embedded systems.
- -J --javascript
--esnext
- Use modern JavaScript to write applications across the
entire stack, including the browser and Node.js.
- -l --linux
- Use a Fedora- or Debian-based Linux distribution as a
development or production environment (uses systemd by default).
- -b --bsd
--macos
- Use macOS, BSD, or other POSIX-compliant operating system
as a development or production environment.
- --datasheet
pdf
- Thoroughly read a datasheet for an electronic component,
specified in the argument.
HISTORY
- Lead Software Developer
at Element Engineering Australia
(5/2016-PRESENT)
- Development, improvement & design of the entire IoT
stack at EEA from bare metal to the browser. Responsible for management of
software team & implementation of modern SDLC practices, including
coding style guides, git-flow, code reviews, continuous integration.
- Full-Stack Developer
at Element Engineering Australia
(7/2015-5/2016)
- End-to-end design, development & engineering of
interconnected mechatronic systems from front-end web interfaces, all the
way down to the microcontroller level.
- Freelance Full-Stack Web Developer
(11/2014-7/2015)
- Freelance consulting, development and deployment of web
applications using modern technologies including Node.js, Meteor, Cordova
& Amazon Web Services.
- Music Producer and DJ
at Kevin Charm
(2011-2015)
- Songwriting, music production and audio engineering,
including mixing and mastering. Social media, promotion, and live stage
performance. Extensive use of FL Studio, Pro Tools, subtractive synths,
Kontakt, UAD, and numerous other audio suites and VSTs. Session guitarist.
Vocal coach. Experience with industry standard equipment including NT1-A,
matched-pair NT-5s, SM57, SM58, SSL G Bus, LA-2A, et cetera.
EXAMPLES
- SRAM
ShockWiz
- Whilst at Element Engineering, I worked on a project with
SRAM and Quarq (USA) to design, develop, test and manufacture a consumer
bicycle product which involved product design, embedded systems
engineering and mobile app development.
COMPATIBILITY
- JavaScript
- Node.js, React/Redux, Cordova, WebGL
- Embedded
- C (not C++), CMSIS, nRF5x, Atmel SAM, STM32, cellular
(u-blox)
- Data
- PostgreSQL, Cassandra, MongoDB, RabbitMQ (AMQP), Redis
- Cloud
- AWS EC2, S3, Route 53, Lambda, CodeBuild, SES, IAM
- Operating System
- macOS, CentOS, FreeBSD
ENVIRONMENT
- L1
- Australian English, Indonesian
- L2
- Norwegian
COPYRIGHT
Copyright (c) 2017 Kevin Tjiam
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.