Career paths and my radical switch

I was busy thinking last night, whilst trying to select a new language to learn, how my career path is completely different to 3 years ago.

Currently, I'm on the Micrsoft stack and quite frankly its very comfortable with movements to ASP.NET MVC. I've spoken to lots of interesting and knowledgeable people and attended community events such as DDD9 and DDDSW.

I then realised, my entire move to the Microsoft stack resulted from 1 decision, the fork in the road if you will.

I got rejected to work at a heavy OSS/non Microsoft company.

It was a blow but thinking back perhaps a blessing, they mainly used Perl and PHP to process data.

The day after I decided I needed to stretch myself and learn about the *evil* Microsoft world (I was a PHP/MySQL lover who ran Linux on all his machines and suffered trying to game on Linux through Wine). I applied to a local firm who worked with the Microsoft stack (they initially used SQL Server, ASP.NET and VB.NET, I managed to move them to C#) and who would provide training, as I suspect they knew my university was heavily anti-Microsoft.

That 1 decision interestingly set me down the Microsoft developer path.


Posted by: Phil
Posted on: 8/19/2011 at 12:40 PM
Categories: Blog
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (71) | Post RSSRSS comment feed

University: the final part

This is the concluding post in my small mini rant series on university and how it doesn’t fit the industry or my style.

Yesterday was my graduation ceremony where I received (but not really, 4-6 weeks in the post) my first class BSc (Hons) Computer Security. An event mainly for parents/family and friends to feel proud I think as well catch up with course friends.

The experience I’ve gained through university hasn’t actually been technical I believe. I’ve developed social skills (if anyone who knows me now, I was even worse before starting university!) and more importantly the contacts and opportunities.

I gained the experience and knowledge of the Microsoft stack and C# stack through a university industry placement. Without this contact and scheme I would still be writing PHP and Java and love Linux, perhaps not a bad thing according to some people. But I gained a wider understanding of the development landscape and matured in my opinions and not being a fanboy but picking the right tool for the job.

Overall, was it worth it? Surprisingly, yes. But, I managed to do my degree with only £15,000 of debt to student finance. If the fees had been higher than say the ~£3000 I paid (paying the final year privately so should be £18,000), I would say no.


Posted by: Phil
Posted on: 7/26/2011 at 11:56 AM
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (274) | Post RSSRSS comment feed

DDD SW 3.0 Thoughts

Firstly a big thanks to the .NET Developer Network team and sponsors for making it happen and giving us lots of free food.

This is the first time I have been to DDD SW and only ever been to one other DDD event, DDD9. The location of DDD SW is great personally as it is my (old) university and only 40 minutes travel which makes it super cheap to attend, my total costs for the day was £5.60, my train ticket!

The food (which was free!) was spot on and having the 20/20 talks whilst eating your lunch was entertaining. Gary Short presented an algorithm math (thingy) talk which was an eye opener (ok, I admit it, I didn't get most of it), Ross Scott did a talk on how he made the DDD SW HTML5 app which was interesting and the only other one (sorry to the other guys) I remember was Mark Rendle's Kaizen talk which gave me the idea to finally start learning F# which I have been putting off for a while.

Oh I won some swag! A 30 day TekPub subscription which I plan to give to a friend who I've been talking to about their awesome videos and being a student, he is poor ;)

Getting down to the actual thoughts.

The repeat track was excellent (I actually attended 3/5 sessions on this track!) and I managed to see all the sessions I wanted apart from poor Nathan Gloyn's Kanban session, sorry!

The missing link - pushing through the pain of TDD by Richard Dalton

I was very interested to attend this session as I've felt the guilt of not doing "pure" TDD (as Paul Stack calls it) and wanted to get some tips from someone else who has pushed through the pain of it. A few nice points raised and finally learnt the difference between stubs and mocks! (Stubs are stooges, Mocks are ninjas).

I've not seen Richard Dalton speak before and was very impressed with his style and ability to take questions/hints from the audience in his stride.

SpecFlow functional testing made easy by Paul Stack

This was a session I went completely blind into, not knowing anything about BDD (BDD means something totally different at my new work) and what the heck SpecFlow was but Paul did a slick presentation which inspired me to look at using watiN for my one projects and a talking point with my boss on Monday (who was actually there and saw it too!).

Its a shame I didn't get to try one of Paul's missus muffins, @Plip tweeted something that made them sound heavenly ;)

Minimalist software development by Mark Rendle

I hadn't read up on what the actual talk was on but when I saw Web Matrix my heart sank. My ideas about Web Matrix aren't that nice but Mark put a very strong (and now I accept) case the Web Matrix and other "all in one page" style approaches are valid for small/quick projects. The presentation was good and with the usual Mark humour which helps when doing a quick presentation. The 2nd implementation using Nancy and Simple.Data was interesting and something I defiantly want to play with on a few small projects for family/friends rather than going the whole MVC stack with SQL Server as its overkill. As Mark says, your not getting paid to make it ;)

Building seriously scalable websites with ASP.NET and without Windows by Chris Hay

I was interested in this session mainly from the title, "without Windows". I was slightly confused by all the different techs used to demonstrate the presenters points but on reflection Crhis was defiantly right to use say Node.JS rather than a full IIS site to demo HAProxy as it would have taken more time to setup in a presentation environment.

The talk has certainly inspired me to take a look at Reddis and HAProxy, particularly Reddis as I'm guilty of just using the default session state provided. The points raised about static and dynamic files was an eye opener but I'm unsure how to apply that knowledge to a few small sites I maintain where a CDN or second server isn't possible.

 


Posted by: Phil
Posted on: 6/12/2011 at 9:51 PM
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (259) | Post RSSRSS comment feed

MetroTwit: Ad Privacy?

Well, I was interested last night to discover a MetroTwit update but more interestingly how the integrated ads work.

What I discover annoys the small tin foil hat part of my personality. They're telling advertisers exactly who you are, down to your twitter ID.

I mean its not really sensational, Google love tracking people as well, but its much more targeted than being IP based (assumed your not logged in) as they can then take that ID and see your Twitter profile.

So here is an example ad:

MetroTwit Privacy1

I discovered it was including the Twitter user ID via the programs useful URL expander.

MetroTwit Privacy2

I don't mind clicking ads if they are interesting (and on a trusted website) but knowing the advertiser knows exactly who I am and be able to contact me (mention), see all my Tweets, narks me.

Sure you can hide them, but what about those people who don't realise?

An interesting side note, is this announcement Twitter made a while back about ads in the Twitter timeline. The question is though, this is placed OVER the timeline rather than in it, does it fall under this ban?

For this reason, aside from Promoted Tweets, we will not allow any third party to inject paid tweets into a timeline on any service that leverages the Twitter API.

http://blog.twitter.com/2010/05/twitter-platform.html


Posted by: Phil
Posted on: 3/2/2011 at 1:23 PM
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (1) | Post RSSRSS comment feed

University: Part 2

Well, it’s been over 2 months since my rant against my university and their teaching.

I think it caused me to look at what I was doing there and start asking questions of my university.

The first major development has been that most of the lecturers now know me as the Microsoft fanboy and that I have a tendency to preach the advantages of Microsoft technologies over say Oracle (database, Java) and other tools they use. I defiantly don't recommend TFS over SVN though ;)

Gaining this reputation has also lead to several surprises, firstly I talked in depth with my Cryptography lecturer about Java and C# and how I thought C# would have made my first assignment creation better. Surprisingly in the second assignment she allowed me to use C# and this Monday I showed her what I produced. I think the key point she took away from my demo and discussion of my C# solution were the Parallel and LINQ features that Java misses. Using these in C# made the assignment easier and quicker (Parallel.ForEach and Concurrent collection types are godlike) to produce rather than focusing on doing the boring ground work of managing threads and nested foreach loops which led to me focusing on making my own logic better.

What I've also come to realise is that all lecturers or teaching staff are not equal. I've met some extremely intelligent lecturers and some who could struggle teaching GCSE IT.

This realisation led to me focusing on learning from the right people and disregarding learning from certain staff.

An interesting point a long time tutor, Toby, made to me was that in my career I should focus on joining an organisation that has intelligent forward thinking people in who will help stop me getting bored. His theory being that if you love tech and programming like I do, working with ordinary people won't push you and you'll end up getting bored.

I think I should have perhaps taken a year out before joining university and done some work in the industry as I went to university very unsure what career I wanted. In hind sight I should have taken a pro-active approach and chosen to do a general Computing degree and chosen my own set of modules rather than trying to force myself into a degree with pre-defined modules, some of which do not suit me.

Also thinking career wise had the difficult discussion with my current boss about my 5 year plan, he was very supportive and understanding. My main aim within the next 5 years is to find a company with bright developers who I can learn from and advance my career. Being in from the beginning of a startup has been a great experience and allowed me to work on the full application stack but I am missing the medium sized company atmosphere of having wiser people to look up to. I do plan to go back fulltime after finishing my degree but I thought it best to let him know that I might not be with the company forever.

Overall, I've come to realise that university perhaps doesn't suit me but for £3000 per year I'm going to make them fit me. Also that career wise, I need to find a company of similarly motived software development people to learn from and advance my career.


Posted by: Phil
Posted on: 2/16/2011 at 12:23 PM
Categories: Blog
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

DD9 Thoughts

Being a recently new member to the .NET development community I have to say it is truly inspirational having an event for free (well I spent a grand total of £37 on transport!).

The venue was great and you have to really thank Microsoft for all the free food and drinks, also DevExpress for saving me two taxi trips.

The main point I've taken away from DDD9 is: I need to do alot more reading and learning.

The sessions I attended and my thoughts:

.Net Collections Deep Dive by Gary Short

This was the first session of the day and having gotten up at 5:30am to travel to reading I probably wasn't by best. The talk was interesting but I found the pace confusing, it seemed to start really slowly and then went very fast at the end. I did find a few interesting points to learn from, especially I hadn't given thought to how List types expanded.

Overall 8/10

Rewriting software is the single worst mistake you can make - apparently by Phil Collins

Phil provided an interesting talk about an area I consider everyday to try and escape the pains of Internet Explorer. The talk was good but the Q&A needed work, I think I remember a question regarding Entity Framework and he didn't answer like he knew what it was, thats fine if you don't know but I always think its best to admit it rather than blag an answer. The talk covered Oracle systems and perhaps in certain cases a little too much detail that I would care not knowing. But overall it was interesting and thought provoking that rewriting is actually possible if done correctly.

Overall 8/10

Functional Alchemy: Tricks to keep your C# DRY by Mark Rendle

Mark is one of those people that Twitter threw up as to follow. It was the first time I had attended one of his talks or really noticed him (I hope that doesn't come across as mean). I think this lured me into a false sense of security, I know the DRY principle so its just some tricks, but, wow. Thinking back, my knowledge of functional programming isn't the best and perhaps this talk was a little too advanced for me. But the point I took from it is that I know only a small fraction of the .NET area and I need to study up. Oh, the jokes involving Jon Skeet still make me smile (Experts Exchange ;) ). Overall probably best for Mark's jokes and the fact it opened my eyes to how complex you can be and what I don't know.

Overall 9/10

Is your code S.O.L.I.D ? by Nathan Gloyn

Having spoken a lot with Nathan on Twitter and the .NET Developer Network user group I had a feeling this talk would be interesting. I've instinctively tried to conform to SOLID but never put a word to how I do coding. It was interesting to see how he defined each part and the demos. But part of the commentary on the code demos made me feel uncomfortable, I can't explain why. I don't think it was embarrassment (as Nathan suggested on Twitter) but more I found the tone of comments to be negative rather than trying to show the points for improvement. I would probably put that down to nerves and the pressure of giving a presentation, I hope ;). Overall it was interesting to hear the history and the titles of books to do more reading about the area.

Overall 9/10

Expression Blend for WPF and Silverlight Developers by Sam Bourton

I've recently decided to make my university final year project in Siverlight rather than HTML/jQuery and attended this talk hoping to gain an insight into user interface development. I was impressed by his demo skills, he showed mostly what I would wanted to know but without losing me. But probably anyone who had more advanced experience with Blend would have been bored. The only real negative about Sam's talk was unfortunately his voice volume level and stutter made it hard to understand or hear at times. I hope it doesn't come across as mean or insulting as that is not my intention. Overall the demo material covered the questions I would have and showed me some interesting Blend stuff to use in my project.

Overall 7/10

Beginners Guide To Continuous Integration by Paul Stack

Having seen this presentation before at a .NET Developer Network meeting I was interested to see how Paul took feedback and managed to fit the talk into 1 hour. I think he pulled it off, the talk was interesting (even again) and the demo section was good, dropping demo'ing all the different tools helped I think to reduce confusion and obviosuly save time (and his laptop from dying). Overall I think its a great talk, even the second time round and would love to see more advanced talks on the subject or a workshop.

Overall 9/10

 


Posted by: Phil
Posted on: 2/2/2011 at 6:23 PM
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Dilemma: Am I a student?

Currently I am in a strange limbo state between the commercial world and the academic world (you might hear me call this hell).

But I am doing my final year and we have to do a large project involving the full development lifecycle and extensive programming. The problem occurs that I still work for my employer whilst continuing my studies (part time on services and maintenance of the existing product).

The project I have chosen isn't purely academic but I think is slightly unique in its status.

I have chosen something of interest to myself and my employer which in turn leads to this situation.

I am not getting paid to work on the project and the project has no budget which leads to the question:

Am I still classed as an academic student when purchasing software for work on my final year project?

Although I am not being paid by my employer to do the project we have an understanding that if successful the company will take ownership and I will be rewarded by shares in the company. This means it is basically a free prototype of something interesting to both parties with little risk to the company.

But up till the pick-up point by the company could I ethically use academic licensed software and assume that if picked up that commercial license replacements would be fine?

The problem with this dilemma is I can see both sides as valid.


Posted by: Phil
Posted on: 2/2/2011 at 6:07 PM
Categories: Blog
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Silverlight or stick with MVC?

Well, after "The Gu"'s excellent firestarter on Silverlight, it got me thinking. Perhaps my final year university project (a kind of addon to our software product, if it works) might benefit from Silverlight love.

The project is aimed at social media and doing cool stuff with it. Its aimed at business users and would have to be web based like our existing product.

Silverlight, the pro's from my perspective, in this project:

  • Consistent UI experience, after 4 years, I am sick of IE CSS/JS hacks. jQuery relieved a little of the pain, but it still annoys me.
  • Performance, IE really sucks when our app gets busy, Chrome/Firefox breeze the heavy JS or images.
  • Testability, sure there are unit testing frameworks for jQuery but its hard work.
  • Rapid development, it takes a lot of time testing cross browser and dealing with browser quirks.
Silverlight, the con's from my perspective, in this project:
  • Potential audience, some clients have IT staff that hate browser plugins, take for example banking/insurance.
  • Its different from the rest of the product. The current product is pure HTML4/jQuery and no plugins.
  • Learning, never done anything advanced in Silverlight before. Being a WebForms/MVC developer and not written any WinForms stuff, not sure on how hard it would be to learn.
  • Swallowing my pride. I made the decision 2 years ago at the company to not use Silverlight. Can I justify a U turn?
Overall, I think Silverlight 5 is extremely interesting. For our customers, getting charts/data out into Excel is a huge feature which we have done but the Silverlight implementation looks alot more slicker than our approach.

Something to ponder, starting coding at Christmas (lol) and aiming for spring finish when my final year dissertation is handed in. So not sure on Silverlight 5 time scales and if version 4 offers me enough.

 


Posted by: Phil
Posted on: 12/12/2010 at 11:56 PM
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

O2's "My O2" website is useless

Well, I got a text this morning from O2 stating my 500mb of data usage for the month was down to 50mb.

I went onto their site trying to find answers. A chat window popped up and this hilarious chat ensued. 

Enjoy (My details removed for privacy). T-Mobile on their site had no problem giving me a breakdown, heck even to the kilobyte.

 

info: Welcome to O2 live chat. Someone will start chatting with you soon.

info: You're through to Lily.

Lily: Hi I'm Lily. How can I help?

Phil: Hello I got a text saying I have 50mb of my 500mb left. How can I find out what my Windows Phone 7 used?

Lily: I'M SORRY. Are you looking for the online account?

Phil: I got a text saying I had 50mb of data usage left.

Phil: I logged on your online account but it won't give me a break down.

Lily: So it is not allowing you to log in?

Phil: I am logged in fine.

Phil: It just says 50mb. But please tell me what used 450mb??

Phil: T-Mobile gave me a mb by mb break down of data usage.

Phil: Do you provide that information?

Lily: Let me first got through your account.

Lily: Your phone number please.

Phil: <removed>

Lily: Thanks. Please wait while i help you  with this.

Lily: Thanks for waiting.

Lily: I've checked your acocunt and you have unlimited Web so you can access and download Internet as much as you want free of cost.

Phil: Well the website says only 500mb usage a month

Phil: and that it costs £3 after that

Lily: Let me check this for you.

Phil: "O2 simplicity: Hello. You've got 50MB left on the web this month. After that it's £3 per Mb. Find out more at o2.co.uk"

Lily: I've checked that it is unlimited.

Phil: Above is the text I received.

Phil: You obviously had a "fair usage" policy as unlimited doesn't mean unlimited?

Lily: No it is not.

Phil: ...your website (when it is actually working) and your messages tell me otherwise.

Phil: Is there a managers number I can ring?

Phil: Preferably not 0800 number, as you charge me a fortune.

Lily: I'm sorry. We are not authorised to give the numbers.

Phil: Ok, a support number that isn't 0800?

Lily: Please awit.

Lily: If that is so that you've  used 456.7 MB this month.

Phil: Yes. What I am trying to find out is what used it. I always use Wifi when downloading apps.

Phil: Like: X used 25mb. Y used 50mb.

Lily: That's great you can access and download free internet and wifi.

Phil: Haha

info: chat ended

info: We'll email a copy of your chat transcript to {email address}.


Posted by: Phil
Posted on: 12/11/2010 at 5:53 PM
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

University: Its not worth it, for me.

Well, as some might know from other posts and know me personally. I am still working towards my degree, after 2 years out working in the industry, this has lead me to rethink most of what I expected from university.

I started my degree just as the government announced the rise in tuition fees to £3000 per year, the debt was a major concern at the time but at the same time all the senior figures in my life pointed towards having a degree being the only way to pursue a decent career in computing. I have major regrets about listening.

I should probably explain that I am not the most gifted student, subjects other than computers confused and bored me. Exams and assignments don't really fit my mentality, if I don't see the point of something, it doesn't get my effort.

Being adverse to formal education, everything I was told about university eased my worries. I was told that I would enjoy the focus on areas I loved and not have to bend my passion and interests to meet requirements and strict standards.

The truth is, university is just an extension of school, except you choose a subject and pay heavily for it.

Being a computer lover, fuelled by watching TV shows such as Spooks and reading books such as The Cuckoo's Egg I applied for and got accepted on the course "Forensic Computing".

Forensic Computing is aimed at educating towards a career in law enforcement or intelligence divisions, MI5, GCHQ and so on.

The first year of the course was fun, meeting new people and starting to do some interesting things. However cracks started to show when I had to complete a module entitled "Data Analysis", being the optimist and nerd, I assumed Data meant computer data, oh I was wrong. It turned out to be Math, specifically probabilities and other boring things. Struggled through assuming there must be a good reason but I have yet to find out why they made us complete that, the module no longer exists, they must have seen their error.

The second year was uneventful and yet started to focus my aims even more. Potentially dealing with criminal evidence, we took a "Science In Court" module which was law. I found this partially interesting, but was petrified at the prospect of standing up in court giving expert witness evidence.

The most interesting thing about the second year was a visit from several members of the police. The real prospect of my future career sunk in. It wasn't the glamour life of chasing criminals as TV makes out. We would be dealing with evidence collected from the filth of criminals, child abusers. At this point, I decided not to seek a career in the public sector.

Now, the only redeeming factor of university that I actually am grateful for, my placement.

I saw a local IT company advertising through university for a 1 year placement student to do work with some big clients (names removed due to NDA's, sorry) data.

I jumped at this oppertunity and emailed off my CV and a covering letter straight away, within a week I had an interview, then a second interview, then the job.

It was heaven. Being able to do stuff I loved all day. Play with servers, software and vast amounts of data. A pig in ... comes to mind. We wrote small bits of software and analysis as one off's for clients or on other company's behalf. After Christmas in my first year, we started pulling it together into a software product. The aim being the clients could do it themselves but pay us a large amount of cash for the privilege.

I hadn't written commercial software before, my university had only prepared me a small amount (Majority from a Software Design module) and we got stuck into a prototype. The prototype was finished in a few months. The test came when we sat down a group of 10 or so clients at a partner company and demo'ed. The loved it and wanted to buy it straight away. They wanted to buy the company as well except at that point we knew we had a winner and could take our shared dream (Myself and the CEO) further.

The next year, I deferred (took a year out) and we started work on version 1.0. It is going well, I become CTO and we've sold the software to several big companies.

Well on return to university, it was a shock. Everything is so out of touch, relaxed and different.

For starters, my first out of sync shock came when our lecturer for a course called "Advanced Databases" hadn't heard of cloud databases, e.g. Azure. Needless to say, the look of horror combined with the laughing actually lead to the first assignment being to write about them. I presume so the lecturer can find out about what they are.

Relaxed, security or doing things right. The server backups are stored on tape, in a draw next to the servers. Their system monitoring software runs on a single laptop. Their website has had several SQL injection attacks. Do I need to say anything else?

My final year, I decided to change from Forensic Computing to Computer Security, they are the same courses, just a few modules swapped out. The main reason being, I would have to had complete a full investigation (fictional) and then get cross examined in a mock court.

The only one problem I have this year is a module deceitfully called "Security Management in Practice". It is basically sitting around discussing paper work. Boring. The "in Practice" part is a lie. I find myself writing this long explanation to get to this point, its so bad its making me question university this way.

My long explanation and ramble has lead to the following point.

Why am I doing these modules or parts I hate. The simple fact is, I am stuck. I'm in about £18k debt and I have to pay it back eventually so I have to grit my teeth and continue.

But I don't know if I could ever honestly look someone in the eye and say it taught me anything or was worth doing.

My bitter conclusion. I wish I had started as a junior in a software company. Heck, everything useful I know about software I taught myself.


Posted by: Phil
Posted on: 12/5/2010 at 11:41 PM
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed