From the day when a tweet set me reading about endjin's approach to apprenticeships, I knew this role was something different from the usual junior developer positions. The website described a structured three year training programme, benefiting from the hard-won expertise of industry veterans – exactly what I was looking for to bridge the gap between student and skilled developer.
"It's more a 'The Apprentice' style apprenticeship, where you're being groomed for greatness, rather than a government-backed apprenticeship", says Howard. So I'll wear the Apprentice badge with pride, and some trepidation – and I'll be blogging my experiences.
Day one was a day of introductions both human and system-based. I was greeted by a splendid spread of hardware, from a huge development machine (16 GB!) to a sleek iPad mini for reading, tweeting and other travel or sofa-based work.
My first task was to get set up on endjin's development and productivity systems of choice:
- Visual Studio – IDE
- Github – source control
- TeamCity – continuous integration server
- YouTrack – work tracking
- Yammer – communication and idea sharing.
Matthew, who is my lead mentor, guided me through the process of pulling GitHub repositories to my machine for work in Visual Studio. Coming from a background where I'd only ever used Visual Studio with Team Foundation Server, I expected using a third party source control system to be a bit fiddly – but nothing could be further from the truth. I'll describe the process in a later blog.
We went on to look at Vellum, endjin's Windows Azure-based content management system, which is currently being updated to use the latest versions of Twitter Bootstrap and AngularJS. Vellum has a range of tools promoting responsive design, content re-use across multiple widgets, and quick visual editing – it is the tool behind the UCLPartners website. I wish I'd had something like this in a previous life as a web content editor.
After this relatively gentle intro, I sat in on a code review of some recent changes to endjin's proprietary mobile forms and workflow library. This was my first encounter with Xamarin, a version of .NET which compiles C# across a range of mobile platforms – removing the need to develop native apps for Android, IoS and Windows Phone.
Using Xamarin, it's possible to create a core project which contains ViewModels and other classes used by each platform-specific project. Despite the obvious advantages of such an approach, it was clear that developing apps for multiple platforms, each with their own APIs, is far from a walk in the park. The Android-specific project contained far more code than the Windows Phone 8 project. I'll talk more about this more in a later blog – unless Matthew beats me to it!
Back to the shop floor, I got to see Mike, endjin's year 2 Apprentice in action, updating a backend system which receives data from an implementation of the forms and workflow library. Another first here was witnessing the speed with which code can be edited using ReSharper. Must get learning that shortcut list…
The day rounded off with some reading about dependency injection and containers – accompanied by a final cup of tea in my Endjineer's mug.
A lot to learn – and more blogs to follow as the week progresses.