FAQ

  1. What's your skills in electronic design and software development?
  2. What products have you developed in the past and what's your role in the development?
  3. Can you showcase the products that your have developed in the past?
  4. Can you give some references of your past work?
  5. How can I be sure that you can deliver result on schedule?
  6. How can I trust you that the NDA is never violated?
  7. How do you work on my project with my employees remotely?
  8. What about the payment scheme?
  9. What about your price?
  1. What's your skills in electronic design and software development?

    I have learned and used these skills in my product development career by now, some skills are already at expert level, some are still at beginner level, but they are all valuable skills that I keep improving.

    EDA: OrCAD, Allegro, SPICE, ADS, Eagle

    Electronics: Power electronics, digital circuit, analog circuit, HF RF circuit

    Programming Languages: x86 assembly, ARM assembly, C, C++, Java, Python, HTML, CSS, XML, SQL, JavaScript, Unix shell script

    Libraries and frameworks: Standard C libary, POSIX, BSD socket, Linux kernel API, STL, Boost, Qt, Django, Google App Engine

    Development process: Unit test (QTest, boost.test, PyUnit), refactoring, version control (subversion, git), continuous integration (buildbot), project management and bug tracking (Trac)

    Operating Systems: Linux, FreeRTOS, Android

    Database: SQLite, PostgreSQL, Google Datastore

    MCU/CPU: AVR, PIC, ARM, MIPS, x86

    Embedded development: DMA, IRQ, GPIO, UART, ADC, RTC, NOR/NAND flash, SDRAM, (Compact) PCI, (E)ISA, PnP, ACPI, APM, RS-232, SPI, 1 Wire, I2C, Osciloscope, TFT LCD, SD, MMC, smart card, SAM, magnetic card, GSM/GPRS, RFID, NFC, Mifare, Battery management, keypad, buzzer, AC97, Tamper, touchscreen, USB, Arduino, IR

    Internet protocols: ethernet, PPP, IP, ICMP, UDP, TCP, SMTP, POP3, HTTP, MIME, URI, DNS, SSL, RSS, RDF, ATOM, CGI

    IDE/Editor: Eclipse, Visual SlickEdit, Vim, Emacs

  2. What products have you developed in the past and what's your role in the development?

    I have worked on these products in the past (and my role in the development is):

    Customized x86 motherboard (hardware debug, BIOS adaption)

    Dialup email box (implementing serial driver for DragonBall EZ on Nucleus OS, porting TCP/IP and PPP protocol from PowerPC to M68k, implementing POP3/SMTP protocol in client side)

    TV browser box (hardware debug, bootloader/Linux kernel adaption and optimization, Linux device drivers)

    Video conference terminal (Windows XP embedded OS adaption and optimization)

    Video phone (system architecture and SoC/OS selection, hardware debug, embedded Linux system design, Linux device drivers)

    Video interphone (hardware debug, embedded Linux system design, Linux device drivers, Linux application architecture, design and implementation)

    Video surveillance terminal (embedded Linux system development process refactoring, embedded Linux system optimization)

    POS terminal (hardware debug, embedded Linux system design, Linux device drivers, embedded Linux application architecture, design and implementation)

    Digital photo frame (mobile Felica reader design and implementation)

    Electronic wallet (virtual card emulation design and implementation, project management)

    Digital business card (multimode NFC device design and implementation)

    iPhone/iPod dock (NFC device design and implementation)

    Electronic human resource monitor (RFID device design and implementation)

    Liquid Dispenser (system architecture, hardware schematics design, software system design)

    Some demo boards design (system architecture and design, hardware schematics and layout design, software design)

  3. Can you showcase the products that your have developed in the past?

    All the products I listed here except some products that are copyrighted and sold by myself are developed under contract with NDA signed, some of the clients may allow me to showcase the products under my request, but some may not. I'm not sure, but if you request earnestly for a showcase of some products, I'll request to my clients to see if it's possible.

  4. Can you give me references of your past work?

    Just as the showcase of the products I have developed in the past, it depends on the attitude of my clients. And I'll request them if you demand it in earnest.

  5. How can I be sure that you can deliver result on schedule?

    There are some means from my side to guarantee your investment:
    1. test drive at first with small piece of work before starting the project for you to test my ability to fulfill what you want.
    2. online virtual office with agile project management such as Unfuddle or similiar.

    And I'm flexible to accept any other proposals and process requirements from your side to guarantee delivery of what you want on schedule.

  6. How can I trust you that the NDA is never violated?

    In my side, I'll study, accept and sign the NDA and promise that I'll never violate the established professional codes and the signed NDA.

    And I understand well the consequences if I violate any of them.

    By now, I have never any unresolved dispute with my clients on this issue.

  7. How do you work on my project with my employees remotely?

    I adopt an agile process in my own development, such as unit test, refactoring, version control, continuous integration, frequent milestones and iterations, agile project management and bug tracking, but I'm very flexible to adopt your development process, and I recommend you to invest a little money on a virutal online office environment such as Basecamp.

  8. What about the payment scheme?

    Generally, I accept two kind of payment schemes:

    1. Fixed price.
    I prefer fixed price project over fixed rate project personally, as this gives the client more cost guarantee, and it gives me more freedom to schedule my time as generally I have more than 1 project in progress.
    We can negotiate the project price case by case.

    2. Fixed rate.
    It can be a fixed rate hourly, daily, weekly or monthly.
    I accept to use fixed rate when the project requirement is very flexible, or the project scope is not very clear, or both sides feel that the project is very risky and precise time estimation is impossible.

  9. What's your price?

    My pricing is rather flexible.

    1. Fixed rate payment.
    Generally, my minimum fixed hourly rate is US$30 with a returning client, and I will adjust it a little for clients from developing countries such as China, India etc.
    To a new client, in consideration of the risk you take to contract me for the first time, the rate can be lowered dependant on the difficulty and schedule of the project and the geography of your company.

    2. Fixed project price. I estimate my project price according to my estimation of the time needed if I work on the project in full time, times my fixed rate US$30/hr, and then adjust it a little according to the difficulty, competition and client geography.