About Kevin

The Chronicle of Kevin

Employment

Software Engineer @ Pocketbook Jan 2014 – Present
  • Development of Java web application and web API
  • Maintenance Development of iPhone and Android Apps
  • Setting up development environment
Software Developer (Contractor) @ Red Unicorn Solutions Oct 2013 – Nov 2013
  • Development of Java web API platform and web applications:
    • Using Spring MVC, Hibernate, Morphia, MS SQL server, MongoDB, Ajax, etc.
Java Architect / Software Engineer @ Agin3 (Casual) Oct 2013 – Present
Java Architect / Software Engineer @ Agin3 Sep 2010 – Oct 2013
  • Developing the server-side Java web application.
  • Developing commonly used reusable Java libraries and frameworks.
  • Setting up software development environment including IDE, SCM, DB and Issue Tracking System and so on.
  • Administrating servers
Java Architect / Software Engineer @ Elixirian Feb 2010 – Oct 2013
  • Developing the server-side Java web application.
  • Developing commonly used reusable Java libraries and frameworks.
  • Setting up software development environment including IDE, SCM, DB and Issue Tracking System and so on.
  • Administrating servers
Java Web Application Developer @ UTS (Faculty of Engineering and IT) Mar 2007 – Oct 2009
  • Developing the server-side Java web application for the TeCTra, Team Contribution Tracking System, used by the students and teachers at UTS and other universities to aid in peer assessment in group work.
Tutor @ UTS (Faculty of Engineering and IT)
  • Java EE application development Aug 2009 – Nov 2012
  • Java web services development Mar 2010 – Nov 2012
  • General knowledge of Ajax for the Interface Design Subject May 2008 / May 2009
  • Software development (also lectured on Continuous Integration) Aug 2008 – Nov 2009

Education

University of Technology, Sydney (UTS)

Bachelor of Science in Information Technology 2006 – 2007
  • Focus:
    • Software Design
    • Web Application and Web Service Development
  • Achievement:
    • Distinction (82) Average
    • Insearch Prize -
      to the most outstanding international student graduating in the Bachelor of Science in Information Technology.
    • Insearch Prize for General Proficiency in the Faculty of Information Technology -
      to the graduating student who did both Diploma of IT at UTS:Insearch and Bachelor of Science in IT at UTS has gained the highest weighted average mark of such students over all subjects studied.

UTS: Insearch

Diploma of Information Technology (Fast-Track) 2005
  • Focus:
    • Object-Oriented Programming and Design
    • Developing Information Systems
    • Developing Web Applications
  • Achievement:
    • High Distinction (85) Average
    • Merit Certificates in the 1st, 2nd and 3rd (final) semesters. -
      to the students the semester average of which is 80 or higher
    • The UTS Faculty of Information Technology Prize for General Proficiency in the Diploma of Information Technology -
      to the best graduating student in the Diploma of IT

IT Skills

1. Programming Languages:

  • Java, Scala, XML, XHTML, HTML, DHTML, JavaScript (jQuery), CoffeeScript, PHP, SQL, C, C++, C#, Haskell, UML, Visual Basic 6, VBScript

4. Other Software:

5. Operating System:

  • Linux (preferred)
  • Unix
  • OS X
  • MS Windows 2000 / XP / 7

About Kevin

My name is Kevin Lee. I am a co-founder, software architect / engineer / consultant, specialised in Java web application development, and a Linux server administrator at both Elixirian Pty Ltd and Agin3 Pty Ltd. I am also a casual tutor at University of Technology, Sydney (UTS) teaching Java web services development and JavaEE. Although the major part of my work is Java web application development, I am interested in not only web application development but also library and framework development. In fact, I'm having more fun with developing reusable libraries these days. You can see what I have developed and currently work on at my project page.


I live in Sydney, Australia.

My Thought on Software Development

My software development philosophy is

It's not useful unless it's beautiful.

by Kevin Lee
So it has to be beautiful whether it's UI or API. That's because, we are developing software for people, not for the computers, and when it comes to attracting people and giving them pleasure, it all boils down to beauty. Although making it beautiful is important, it becomes meaningful only if you get things done. Your client do not want to have a conversation with you like

     You: See this. I've put all these beautiful theories and principles into practice. 
          I've also implemented nice design patterns and used all these sophisticated frameworks and libraries.
  Client: Oh, sounds good. So does it work?
     You: No... Not yet.
This is not good. Getting things done is compulsory. Beauty doesn't count until it's done and working. After it's done, beauty becomes meaningful as it has a very close connection to maintenance. No software is perfect, and once it's released, it has to be maintained sooner or later. It's inevitable. After code is written, it's more read than re-written. Even if you re-write the code you wrote, you have to read it again first, and we often read already written code and use it (e.g. libraries, frameworks, etc.), so it's important to make the code easy and pleasure to read. That's why making it beautiful is also important. Whatever it is, if it's beautiful, you want to see it again and feel pleasure each time you see, so it can be easily maintained. Maintainability is superior to performance because if the programme is maintainable, it can easily be optimised later to have better performance. So, to wrap it up in a nutshell, make it beautiful to have high maintainability, but it has to work.

My Articles

You can read what I wrote before on my blog. http://blog.lckymn.com

I have a plan to write about good API design. Here is the list of blog posts that I've already written and planned (it may change later):

I also keep some of my knowledge in my wiki. It's only for myself and has been written in a way that it's just enough for me to understand, so I don't reveal it to public, yet I'll do some after amending it for public.

Kevin's Wiki Screenshots:

If you want to migrate a legacy application to the one using new technologies such as Spring framework, Hibernate, QueryDSL, etc., please email me at .