Consulting
I am currently available to do consultancy work and am happy to work in any of the areas that I am skilled, time permitting.
Who am I?
My name is Jonathan, and I'm originally from the UK. I graduated from the University of Cambridge in June 2006, having studied Computer Science at the Computer Laboratory. I came out of this with a first class honours degree - that is, the highest class. Additionally, I was in the top quarter of those students awarded first class degrees.
I am currently out of the academic world, enjoying traveling the world and hacking on open source software. To enable that (especially the first of them, which is an expensive hobby) I'm making my skills and brain power available to interested parties in return for money.
What can I do?
My areas of interest include compilers, virtual machines, programming language design and type systems. I can take on projects in these fields. I am also experienced in server side web development, and have implemented and/or overseen numerous projects of this kind. Please note that I am not a designer, can not provide hosting and so on - I just do the programming part. Of course, if you're looking for functional rather than super-pretty, I can make something that is more than usable.
If you are looking for a list of technologies I've a clue about, here goes.
- Perl Programming: I've written hundreds of thousands of lines of Perl. I've taught Perl. I've attended and spoken at international Perl conferences. I've written Perl modules. I'm involved in the development of Perl 6. I know Perl, present and future, very well.
- C# and .Net: I've written C# professionally. I understand the new features introduced in C# 2.0 and C# 3.0, and have written articles to explain them to others. I've worked a lot in ASP.Net and done the odd WinForms app here and there too. Unlike your average .Net developer, I also know a lot about the underlying runtime engine. I implemented the .Net bytecode to Parrot bytecode translator, meaning that I've dealt with and understand .Net IL (Intermediate Language).
- C Programming: I've written C in open source projects, including one high-profile one (the Parrot virtual machine). I really understand pointers, am aware of what is not portable (endian and word size stuff, not everywhere uses ASCII and so on) and have an idea of what machine code a given bit of C will compile down to, which is sometimes worth knowing.
- Databases:I have worked with both MySQL and Microsoft SQL server in commercial environments. I've survived MS Access (and know it's not a good idea to do anything big with it). I know how to design a relational database, and what normalization is.
- HTML, XHTML, CSS: I've worked with these plenty in many web related tasks.
- Visual Basic: I wrote a lot of this when I was younger. I've done so once more recently. If you need some old application written in Visual Basic maintaining, I'm happy to take a look. If you want me to write something new in it, I'll tell you for free that it's a Bad Idea. (And no, I'm not talking about VB.Net, which is essentially C# but with syntax that I like much less.)
- Parrot: This is a virtual machine that will run Perl 6 and many other dynamic languages. I'm one of the developers of Parrot; of note I wrote pbc_merge (the Parrot linker), the .Net bytecode to Parrot bytecode translator, the specification for the Parrot bytecode file format and parts of the object model design, which I also contributed heavily to the implementation of.
- Writing And Speaking: I have spoken at international conferences on a range of subjects and written numerous articles. I have received good feedback on both my talks and articles.
- Miscellaneous: I have experience, but don't consider myself an expert, with Apache, Subversion (SVN), basic Linux system administration, JavaScript and Java. Then, you may not need an expert, just an SVN repository setting up or some mod_rewrite rules writing.
See also my CV.
Why choose me?
I'm qualified, I'm reasonably experienced, I love the computing field and I'm a nice guy. I know the tech, but I know English too: I can adapt to the expertise of people I'm dealing with (unless you catch me within an hour of me waking up, in which case I'll struggle to string a sentence together). I'm familiar with a range of technologies, so I can help you choose what you need. I am willing to say that a project is going outside of the areas I understand or that I just don't have time to take it on, so your time isn't wasted.
How much?
I work on projects at an hourly rate and you can expect to pay at least 45 Euros an hour. Rates depend upon:
- The kind of work you are looking for - if you have a fascinating project but not a huge amount to fund it with, I may well be willing to work for less.
- The quantity of work you require - if you want many hours of my time (and provided I can supply it, of course) I will give an according discount.
I am willing to travel most places, provided expenses are paid. I can sometimes do this on short notice, but other times that will not be possible.
With all of that said, I am willing to negotiate. Contact me and let me know what you're looking for.