My Github

this is me!

Well this is me, and when i'm not coding im doing this! Im Reiss, a 22 year old junior developer from Manchester - UK.

Recently I entered into the wonderful world of software engineering after finishing a 16 week bootcamp called Ronin ran by Makers Academy. The purpose of this blog is so I always have somewhere I can go to see my previous achievements. It's also a place for potential employers to be able to see some of the stuff I got upto on the course!

Recent Articles

  1. Job Secured! :)

    15 June 2016

    Since my last post something major happened...

    I got a job!

    In May I was interviewing with two companies, a new Ruby software house in St Annes Square and a prestigious digital agency based in the northern quarter that writes mainly in Python.

    After a few interviews with each, the former offered me a job... The two gents that run the show were happy with the test I submitted to them & wanted me to come and work for their company. I couldn't believe it, after just two months of graduation I had been offered a job! I was over the moon to say the least! The other company also called me in for a final interview where they usually make an offer. However I decided to stick with Ruby & go with the first guys, they follow all the best practices in terms of TDD, BDD as well as daily stand-ups etc. Which is something I felt wasn't quite there yet in the Python community... I'll also be able to ask two very experienced developers for guidance whenever I get stuck which was another must for me. I see myself at the bottom of a very steep hill & these next 3-5 years are all about trying to learn as much as possible!

    So here I am, a Junior Software Engineer at Createk.io. 9 or so months ago I had hardly even touched a line of code, let alone think I could turn it into a career. With the help of Makers Academy, a lot of hard work and a few 14 hour days. I have done it. My journey is just beginning as a software engineer & I still have an unlimited amount to learn. Already there hasn't been a day yet at my new job where I havn't felt out of depth & I think thats something i'm going to have to get used to! It's amazing to work in a place that stretches me, as well as offers me the chance to learn something new every day. I work in an amazing enviroment, my days fly-by & I still can't believe I actually get paid to code!

    So there you go, it's totally possible, even though some told me it wouldn't be ;). I'm still grinning ear to ear.

  2. Finding A Job

    28 April 2016

    So far so good. Initial efforts have been good on my journey to find employment as a junior dev. Some things I've learned so far...

    1) LinkedIn is terrible, it's about as useful as a pair of chocolate oven gloves...

    2) Tech-tests are cool & a great way to show companies how you structure your code, although they make take up a considerable chunk of your week!

    3) A lot of companies don't advertise their vacancies, instead it's up to you to go and find them.

    What I'm doing at the moment...

    Secondary to looking for a job, I'm currently building my first proper API. I had played around with the Github & Facebook API's & also created my own for an AirBnB clone I made at Makers. However the latter never had authentication via the API. It was just handled through sessions on a Rails ERB page. Now it's time to try OAuth!

    My idea is social media platform for DJ's that consumes the Discogs & ChewTv API. It's going to take me a while to do but it's something to do whilst my search for a job is ongoing.

    I'm also currently trying to learn a bit of Python, I have an interview with a company that specialises in Python next week & if it goes well, it's more than likley I'll have to write some Python for a technical test or similar!

    Is there such thing as being ready?

    During your time at Makers imposters syndrome will probably creep in. It's the feeling that you've gotten to where you are today by blagging your way through. You start to believe your a fraud wheras the reality is your probably not. Going to interviews & submitting tech tests can cause this feeling to affect you pretty much everyday. Even as I'm writing thise I'm questioning whether or not I'm good enough to be a junior dev.

    Because of this, going for inteviews, tech-tests or even just talking to someone about code can quickly go from being a simple task to a big hairy, scary issue that you have to deal with... Im starting to learn how to put those fears aside & get stuck in, the fact of the matter is I don't think there is such thing as being ready!

  3. Playtime Is Over...

    28 April 2016

    Thats it, Makers Academy is done! 16 weeks of intensive software craftsmanship is done with! Learning, failing & learning some more.

    For now my efforts are concentrated on finding a junior dev role which is what this next section of my blog is all about!

  4. Week 11

    07 April 2016

    It's over!

    After polishing our final projects all week long we got closer & closer to our friday graduation. On Thursday I had to fly to Copenhagen for a contest but I managed to spend Friday in my hotel room working on our presentation with the rest of the guys. We presented online to an audience of around 100 folks. We ran through the general features of the app & some of our code. All the reactions we got were positive so that was something I am really happy with.

    Apart from hiring week next week Makers Academy is now over. Im sad but relieved! I've been given an amazing baseline set of skills to help me get going in the world of Software Development & I can't wait to get going!

  5. Week 09 & 10

    02 April 2016

    I Suck At Blogging...

    Week 09 was when I last updated my blog & I guess this is due to how intense the course got. I feel bad but at the same time I was so busy the thought of blogging didn't even cross my mind...

    I spent week 09 working on a Rails & Angular version of AirBnb as part of an Agile Team. The whole purpose of re-visiting the week 06 brief was so that we could get practice working with the full-stack. We kind of got left to our own devices, people either built a Rails app with an Angular.js front end or a complete Angular.js app pulling through a Rails API. We did the former.

    Week 10 & 11 were spent on our final project. The first half of week 10 were spent on a design sprint. We followed google's example and refined our idea & the ways in which we wanted to design our app. Mid-week we did a bit of prototyping using a few different technologies before settling on swift with a firebase database. Our was a geolocated social media app that allows users to post moments using emojis onto a map background. Using Firebase wouldalso allow our app to live-update.

    TDD in Swift is hard! Especially feature testing. We didn't use TDD in our spike and so when it came to building the app we struggled to get our heads around the testing frameworks that are supplied with XCode. This was just one of the hurdles to get around. None of us had any previous Swift or XCode experience & so we pretty much had to figure it out whilst we went!

    Maker's Academy emphasises the importance of design patterns from the get-go. Another problem we found was extracting logic in our Swift app. Refactoring was a constant pain & Classes were not extracted as easily as they had in Ruby.

    In the end we managed to build a fully functional IOS App something that 3 months ago I probably couldnt have done in a year let alone 10 days. If you wanna check it out its on my github! Everyone I have shown the app to really liked the idea & the team I worked with are still keen to work on the app. So thats the plan!

  6. Week 06, 07 & 08

    14 March 2016

    Been a while since my last post...

    That's because of three things...

    1) I've been busy coding...

    2) I've been really busy coding...

    3) I've been really, really busy coding...

    So Week 06 was a project week, a chance to reflect on the first 6 weeks material & condense it into an AirbNb clone.

    It was really valuable as for me as well as for most others was the first chance to code as a team.

    We managed to get most of the functionality implemented & used a full dev workflow in github throughout. Merging branches with conflicts, shipit squirrels the lot!

    Week 07 was a little different, it was our introduction to rails...

    Week 07 Ruby On Rails...

    Rails is probably the biggest Ruby language framework. It is really popular with start-ups due to how fast you can use it to create an app.

    Straight away our tutor Sam showed us how quickly you can implement Sign In/Out functionality using the devise gem. He did it in about 45 seconds. Something that took us two days in Sinatra created in 45 seconds with a few terminal commands...

    Depressing huh? but really, really cool.

    That week was spent working through a yelp.com clone walkthrough. The walkthrough was hard to understand at times but that was also down to how hard Rails is to grasp. It does a lot of stuff for you. Like creating hundreds of files with one command. However it follows 'Convention Over Configuration' meaning it's not about how the app is configured but more so about the ease in which the app's features are implemented.

    That weekend challenge was spent wrestling with rails to create and Instagram Clone. I managed to get most of it implemented apart from a few features but I think I got a good grasp overall of rails!

    Week 08

    So this past week has been somewhat of a blur for me. We dove into AngularJs which allows you to build single page apps using javascript. The app we were tasked to build would be a single page web app that used the Github api to return information about users.

    After getting used to new package managers like NPM & Bower we used sinatra to launch our app on a simple ruby server.

    The beautiful thing about Angular is that the page doesn't have too reload, in order to do this our app used Ajax calls from the controller to the api that look like so...

    We had a similar controller for returning the search for our users. A refactoring step might be for us to separate these out to factories.

    This is of course all using TDD, our group held daily stand-ups & we held a retro at the end of the challenge. The finished app looked like this...

    Thats pretty much it up-to now! This week concentrates on rails with angular so we will be full stack devs! Then next week we are on to the final projects!

  7. Week 04 & 05

    22 February 2016

    Wow, the past 2 weeks have flown by. So much so that the thought of updating this blog hadn't even crossed my mind. It was only today when Maker's tweeted one of my previous blogs that it jogged my memory & reminded me to post some content.

    Week 4

    Was heavy, it was mainly based around non-relational databases & creating them to use within our apps. Our task for the week was to create a simple bookmark manager that had log in/out functionality, users could save & tag important links.

    So far this was one of the hardest weeks for me due to the amount of new technologies we had to learn & implement. It was the first week where I got to the confidence survey on the friday and actually didn't understand something on the form. I was like 'what the hell is Bcrypt' (its a Ruby Gem that encrypts passwords). But I had never seen it, and either had most of the others in our cohort. Again Sam reminded us that it doesn't matter, the weeks materials are designed so that completion of the task is impossible.

    Instead it was a case of going back over the solutions at the weekend & having a stab at implementing this new stuff... Something which I managed to do & so I created a basic Twitter Clone called Chitter! It looks terrible as my HTML & CSS skills are seriously poor, but I really don't care as...

    A) I prefer working with the back-end logic anyway, I can't see myself becoming a front end Dev after...


    B) after learning languages like JavaScript & Ruby, HTML & CSS concepts seem to be an absolute piece of piss to grasp. I did a tutorial on it this weekend & already I feel better about it.

    Looks like crap compared to the normal twitter right? Like I said my HTML & CSS skills are poor! xD

    Heres the good stuff, my main controller that talks to app, its using awesome Ruby Gems like DataMapper to create Database tables that are stored both locally & on my Production app that is on Heroku... Coupled with BCrypt that stores a user's password as a scrambled string.

    There's all sorts of other stuff in there too!

    Week 4 was by far the hardest in terms of things I needed to learn! After all of this it was onto our new language JavaScript.

    Week 5

    Javascript is an object orientated programming language that was developed over 10 days. It is mainly used for front-end stuff but can be used for other purposes. It's really versatile & it is my second programming language I ever learned! :)

    Week 5 consisted of creating a simple thermostat that could be turned up, turned down, temperature reset & power saving mode enabled. It has maximum temperatures which change depending on it's mode etc.

    All the above business logic was created after just 2 days of learning JavaScript. By day 2 I had written FizzBuzz & some of the Airport Challenge so creating the logic for my thermostat wasn't too bad! :) We were introduced to Jasmine a JS testing framework which I didn't really get on with! xD

    Bit O' JS for ya!

    Once the above logic was done it was all about using jQuery (a JavaScript library) to interact with the app that was on a HTML page.

    This is done with an interface which talks to HTML classes & ID's and links the actions undertaken by a user on a page, back to the logic which increases the temp etc etc!

    That looks like this ^^ :)

    The weekend challenge has been split into two weekends as we were encouraged to take the first one off. It's basically telling me to create a Bowling Score card that takes frames/strikes/splits/scores all into account & can return an overall score. If we have time we should then implement jQuery so it works on a page! I've started on it but its really hard & so it's something I'm going to work on over this week/weekend.

    Im struggling with dependency injection within JS and then testing those injections using jasmine. Something that I think I will only get the hang of with more experience. I was up till 5am Sunday morning trying to get my head around extracting my logic to separate objects!

    It's week 6 now, Project week. We have been split into Teams & are working towards creating an AirBnB creation. This will help us reflect on the previous weeks & make it easy to consolidate what we have learnt by putting it into practice. All this whilst following Agile procedures of course! Extracting user stories, TDD, holding our own stand-ups etc etc!

    Last week I also went to my first NWRUG meeting which was awesome! I met up with a fellow Roniner; Fareed & we headed over there to pair with some experienced devs on creating our own test framework. Whats that you say? "How do you test a framework your building without having a test framework to use?" Exactly! What a mind bender!

    Anyway it was a good experience! We didn't quite manage to complete the task, i'm sure the poor senior dev that was paired with us noobs could have probably done it in his sleep though! He stuck with us however & walked us through the way he would approach it for which I am eternally grateful!

    I learnt loads in terms of rescue statements & even some new VIM commands! It finished with a trip to the pub where I met a few other devs & chatted for a few hours about getting into the industry & what to expect. A stand up bunch of lads that were down for a drink or two! Nice one!

    Me, Fareed & Michael working on our attempt of the challenge...

  8. Week 03

    08 February 2016

    Boom! Week 03 done! This is flying!!!! Fully immersed into Week 04 today, tackling SQL databases, but enough of that! This is a Week 03 recap!

    The week started off with a lecture about the web. Http, Post & Get methods, Server & Client models etc etc. It then went on to building a short & sweet web app using Sinatra (a Ruby web framework) that hosted a picture of a cat online.. Sounds easy right?

    From there it got difficult. We were introduced into a new type of testing framework called Capybara which you can use to test that your web app shows what you want the user to see! This therefore helps to give you a really good starting block to start developing your code.

    Example of said framework testing the functionality of my Battle web app.

    Capybara works hand in hand with RSpec so the syntax wasn't too difficult to get a grasp of... 'feature' blocks are like 'describe' blocks & 'scenario' blocks are like 'it' blocks!

    From there the week focussed on building a rudimentary pokemon-esque game that allowed two players to take turns attacking each other, again this was using Sinatra, the app was then executed from the command line & played in the web browser.

    Just a few snippets of how it looked, its basic as hell. But I wasn't gonna sit there creating CSS for it. Some people did, but thats not really what I enjoy, I prefer working with logic of the code. Which looked like this...

    This is my controller which does the rooting of the game. Here instances of Player & Game are created which links back to my Ruby class files I have created in lib...

    These lib files do all the heavy lifting of the logic and are where most of the games functionality is carried out. (Not very SRP friendly at the moment but I have a huge list of refactoring to do at the end of the course!)

    These are then required in the controller which sort of initialize the game. The pages (what the user sees) are then rendered using .erb files which stands for embedded ruby! They tend to have a mix of Ruby code & HTML which looks like this!

    This relates to that first page of the web app up top!

    The weekend challenge was a long similar lines, we had to create an interactive game of rock/paper/scissors which I managed to do! Again I didn't use any CSS as I didn't feel I had to/didn't want to....

    But I got it all working and it plays the game! Again I have to refactor out some stuff to follow SRP and the seperation of concerns & I could extend the game to play with rock/paper/scissors/lizard/spock. The code review I did with my pair-partner today really helped me go over the weekend challenge and I feel like I have a good understanding of building small web apps so far!

    So thats it for last week, tuesday tomorrow and it is more about databases & implimenting them with web apps so I don't have to use EVIL EVIL global variables (which you should never use in a tech test, we just did it this time as we hadn't been taught about databases yet!)