Posts Tagged ‘Internship’

29
Aug
2014

Badger Academy week 2!

by Eric Juta

This week in Badger Academy, we were joined by Alexander Savin, a senior engineer of many talents. Under his guidance, he assessed the current state of our DevOps including the decision to use docker.
Finalising last week’s architecture choices, we were promptly laying down the foundations for the road to pave ahead.
#9containerDevOpsRefactoringWoes
There really was a lot of googling, not much stackoverflow!
Deciding on a one command workflow for any compatible unix system, we proceeded to create the mammoth script.

Badger Academy!

Bash Shell Script

Iteratively tweaking it (Agile!) in the end allowed us to do the following:

    • Git clone Badger-Time
    • Use Vagrant to up the initial CoreOS VM
    • Run the shell script from within the ssh instance to build the docker containers

(Current container stack each with their respective data containers being: Rails API, Redis, Postgres, Node, Nginx)

  • Pull preinstalled images down
  • Add our config files into them; specifically our Nginx and SSL certificates
  • Mount our Badger-Time code into their respective destinations
  • Install node and rails dependencies then create the databases and migrate them
  • Run all the linked containers with persisted daemons and their services in a hierarchal order.

Voila!

Badger-Time code up and running on any potential unix system in less than 15 minutes without any further interaction.
It sounds like a lot but in fact this is allowed due to the high internet speed within the office!

Advantages

The advantages we had discovered in this approach compared to the previous Badger-Time Vagrant + Ansible were vastly great in so so so many ways!

First of all, an all-in-one up command; we have one extra intern joining us in a week’s time, getting her laptop up to current versioning requires little to no effort.
(Yes, we’ve tested it already on her preview day of the office)

  • No makefile building? Yes please!
  • Faster tests
  • Reduced memory footprints
  • Same environment from development to our build server to our deployment server
  • Isolate local dev dotfiles and configs from the application
  • 12factor application coherence!

Disadvantages

There are many disadvantages as such you would imagine with any new technology:

  • Initial volume mount mapping configuration
  • Networking association is difficult to comprehend.
    (Dynamic host files generated by linked containers, exposed ports, vagrant)
  • Developer productivity affected by added configuration complexity
  • Double layer virtualisation! Linux native support only
  • The lack of a structured DevOps docker approach documented online leaves a lot of decisions to the creator.

Admittedly, as we’re still continuously learning, we will accumulate the software architect’s hat overtime.
Luckily we have constant surveillance and access to the senior engineers over Slack! #badgerbants

Scaffolding the frontend

With the majority of the DevOps out the way for the developer environment, together with Alex we conversed potential ways to scaffold the frontend tests.
This took a lot of learning Gulp with him to customise further our frontend workflow.

Gulpfile.ls

Our gulpfile was chosen to do the following tasks:

  • Pull down npm and bower dependencies
  • Build LiveScript React.js components, Index.Jade, Less files, Semantic Grid system
  • Browserify, Concatenate, Uglify
  • Build the LiveScript tests for compatibility with CucumberJS
  • Start the Phantomjs service from within the docker container before running the CucumberJS tests
  • Watch for source code file changes and compile

Letting Gulp do such things allows us to commit and push less code to Github plus have the added developer workflow productivity!
Less context switching, the above are just abstractions!

Food for thought

One problem that had to be overcome was the choice of running frontend tests from within the container or outside.
The issue is that we have to keep in mind that the tests will inevitably be run from within a build server environment before being deployed.
This poses the question because of Nginx serving static files in a container,
should we reroute the webdriver to examine outside in for tests?

We were a bit stumped at first so can someone document a best practices guide for Docker networking + Docker Frontend testing please!
It may be the case that someone at Red Badger will have to!

Next week tasks!

Tiago and I for next week will ponder about what kind of tests should be written.

BDD is a major cornerstone to the quality of our projects, we’ll have to assess such implementations with a split frontend and backend!
Let alone learn API design!

21
Aug
2014

Computer Science students should work for a start up while at uni

by Albert Still

Don’t completely rely on your grades to get you a job after uni. A CS degree will prove you’re intelligent and understand the theory, but that will only take you so far during an interview. We have to talk about apps we’ve built with potential employers, just like you would want a carpenter to show you pictures of his previous work before you hired him.

While studying CS at university I worked 2 days a week for Red Badger, even in my final year when I had a dissertation. Some of my class mates questioned if it was a good idea suggesting the time it takes up could damage my grades. But it did the opposite, I got better grades because I learnt so much on the job. And when you see solutions to real life problems it makes for a better understanding to the theory behind it. And it’s that theory you will get tested on at university. 

What I’ve been exposed to that I wasn’t in lectures

  • Using open source libraries and frameworks. Theres rarely a need to reinvent the wheel, millions of man hours have been put into open source projects which you can harness to make yourself a more productive developer.
  • GitHub is our bible for third party libraries. Git branches and pull request are the flow of production.
  • Ruby - the most concise, productive and syntactically readable language I’ve ever used. Unlike Java which the majority of CS degrees teach, Ruby was designed to make the programmers work enjoyable and productive. Inventor Yukihiro Matsumoto in a Google tech talk sais “I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language”. Ruby is loved by start ups and consultants because they need to role out software quickly.
  • Ruby on Rails - built in Ruby it’s the most starred web application framework on GitHub. It’s awesome and the community behind it’s massive. If you want to have a play with it I recommend it’s “Getting started” guide (Don’t worry if you’ve never used Ruby before just dive in, it’s so readable you’ll be surprised how much Ruby you’ll understand!).
  • Good habits – such as the DRYYAGNI  and KISS principles. The earlier you learn them the better!
  • Heroku - makes deploying a web app as easy as running one terminal command. Deploy your code to the Heroku servers via Git and it will return you a URL to view your web app. Also its free!
  • Responsive web applications are the future. Make one code base that looks great on mobile, tablets and desktops. Twitter Bootstrap is the leading front end framework, it’s also the most starred repo on GitHub.
  • JavaScript – The worlds JS mad and you should learn it even if you hate it because it’s the only language the web browser knows! You’ll see the majority of the most popular repositories on GitHub are JS. Even our desktop software is using web tech, such as the up and coming text editor Atom. If you want to learn JS I recommend this free online book.
  • Facebook React – Once hard JS problems become effortless. It’s open source but developed and used by Facebook, therefore some seriously good engineers have developed this awesome piece of kit.
  • Polyglot – Don’t just invest in one language, be open to learning about them all.
  • Testing – This was not covered in the core modules at my university however Red Badger are big on it. Simply put we write software to test the software we make. For example we recently made an interactive registration form in React for a client. To test this we made Capybara integration tests, they load the form in a real browser and imitate a user clicking and typing into it. It rapidly fills in the form with valid and invalid data and makes sure the correct notifications are shown to the user. This is very satisfying to watch because you realise the time your saving compared to manually testing it.

Reasons for applying to a start up

  • They are small and have flat hierarchies which means you will rub shoulders with some talented and experienced individuals. For example a visionary business leader or an awesome developer. Learn from them!
  • More responsibility.
  • They’re more likely to be using modern front line tech. Some corporates are stuck using legacy software!
  • If they become successful you will jump forward a few years in the career ladder compared to working for a corporate.
  • Share options – own a slice of your company!
  • There are lots of them and they’re hiring!

Where to find start ups

A good list of hiring startups for London is maintained by the increasingly successful start up job fair Silicon Milk Roundabout. Also Red Badger are currently launching Badger Academy, they’re paying students to learn web tech! This is extremely awesome when you consider UK universities charge £9,000 a year. If your interested in applying email jobs@red-badger.com

Best,

Albert

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.

C.A.R. Hoare, 1980 ACM Turing Award Lecture

31
May
2013

Designers, learn how to code (at Steer)

by Michel Erler

First things first: my name is Michel, I recently moved to London from the maritime city of Bremen, Germany, and I joined Red Badger as a design intern a couple of weeks ago. I study Interaction & Moving Image at the London College of Communication and came here to get my teeth stuck into the wonderful world of technology.

As a young designer it feels kind of weird being so familiar with the internet and at the same time don’t know much about the way sites actually work. Every member of the web generation should know a bit about the (virtual) places they spend their time at. I knew I wanted to get a handle on coding, but needed a foundation to build on. Recently I came across a company called Steer claiming to teach anyone how to code and build websites. After a few  emails I decided to attend their intense front end web development course: Five days of key bashing leading to a kick-start in coding.

Steer

Rik explaining some JavaScript

HTML & CSS 

So I arrived on Monday at their studio in Clerkenwell and was welcomed by a very friendly team with a tasty breakfast. Our course teacher Rik worked in web development for over 8 years and he was able to translate these hieroglyphics for us beginners into something that makes actually sense. We started with the very basics of HTML and that wasn’t as complicated as I thought. The very first site we built reminded me of the web how it used to be when I was six years old (e.g. Space Jam). We soon went on to more CSS and at the end of the day we had a simple, yet good looking site.

On the second day we learned about grids and forms, so we were able to build a decent site that could go straight on the net. Adding further CSS knowledge on day three I was quite surprised how easily you could create impressive 3D animations and cutting-edge layouts. 

JavaScript

On the last two days we went into JavaScript, mainly using jQuery. I think that’s quite a big step for a coding virgin. It’s challenging at first, but the result was pretty amazing. We went to another level of website designing, building responsive sites, integrating Twitter feeds and Google Maps or using parallax scrolling (every designer’s favourite right now).  

Conclusion

The course really demystified the world of coding for me. I never thought you can gain such a comprehensive set of skills within five days. Now it is up to me to keep up practicing and learning. Sites like codeacademy.com or teamtreehouse.com definitely make it a lot easier to keep you motivated. But in case you get stuck (which is highly likely to happen at some point) and you can’t figure out the bug yourself, it is good to know that Steer offers bi-weekly coding emergency sessions for all alumni. 

Coding really feels like an essential skill for the modern working world, especially if you have a couple of years ahead in your career. I am now in the position to create prototypes on my own. I probably even know some things a lot of front end developers out there don’t know as Steer teaches you the newest stuff available. All in all I was more than satisfied with the course and I’m thinking of attending the new iOS course in summer.  

There’s nothing to be afraid of. Don’t wait, learn how to code! 

To find out more about the different courses that Steer offers, just go to http://steer.me 

Photo: Steer

9
Dec
2011

Meet Joe – The New Badger Intern

by Joe Stanton

After joining Red Badger a couple of weeks ago, I thought I should share who I am, and some of the things I’ll be working on in the near future. I’m a student at King’s College London studying Computer Science and I applied to join Red Badger a couple of months ago to gain some experience of developing real software in a company which do things the right way. Mugshot

After a friendly email exchange, I was invited to take part in a programming challenge to whittle down the number of applicants, and give the real developers (now my mentors) a feel for my experience. With a background in C#.NET and web development, combined with a passion for cutting edge technology, Red Badger are a natural fit for my current skillset and how I’d like to develop my skills in future.

My first couple of weeks have so far introduced me to how development at Red Badger works; Agile and highly creative with a strong emphasis on User Experience and Design,development starts with writing spec’s to ensure code quality, attention to detail is very important. I have also spent some time getting acquainted with the tools Red Badger use during collaborative development, such as GitHub for source control and TeamCity for Continuous Integration with integrated Unit Testing.

My main project initially will be Birdsong, Red Badger’s fantastic WP7 twitter client. This should please many of the current users, as it will be receiving a lot of care and attention over the coming weeks after a period of neglect! There are a few features in the pipeline, including support for Trending Topics (both local and global), ReadItLater/Instapaper support for tweeted links and large-scale improvements to the push service.

If you are a current user of Birdsong and have a feature request, now would be a great time to submit it to our support site at http://support.red-badger.com. If you aren’t a current user and you own a Windows Phone, what are you waiting for!

I look forward to learning lots and adding real value to the project and any others I may be involved in in the future!

11
Jun
2011

Red Badger launches the internship programme! (Positions filled)

by Cain Ullah

A little about us…

Things are moving on pretty quickly at Red Badger. We’ve just moved into a new swanky office in St. Paul’s, are working on some cool projects for some great clients and still developing Birdsong for Windows Phone 7. We are starting to expand but want to ensure that quality is always our main goal whilst maintaining a vibrant, fun atmosphere.

To help us grow in the way we want to, we are looking for some bright young talent to come and join us on our quest. We work in a very fast moving, agile manner but are highly creative and are very focused on making sure things are done the right way. We do cool things using a User Centric approach with heavy dependency on User Experience and Design. We specialise in bespoke software projects and platforms on the Microsoft technology stack; from HTML5 to using 3D gaming technology in consumer and business applications (3D developers take note) – we cover a wide range of exciting technologies.

A little about you and the opportunity…

You will need to be really motivated and ready to learn lots of great skills that will be invaluable to your future. This time around we are looking for one person with a passion for software development. Future internships won’t necessarily be limited to one person and will cover other disciplines.

The internship will run for about 3 months. During the initial 3 months, all your expenses will be paid and you will get a small salary (but don’t get too excited about that bit). You need to be eager to learn – you’ll be working on real projects and surrounded by some of the best in the industry who will be investing their time in helping you develop.

You’ll be confident and personable – we want to take you along to meet clients so you need to be comfortable in front of big cheese (but we won’t make you wear a shirt and tie).

We’re looking for someone with a pretty good foundation in software engineering predominantly with the .Net framework and C# – if you have experience with ASP.Net, WPF, XNA and/or Silverlight then all for the better. You should also have a good grounding in web technologies; HTML, JavaScript and CSS. Don’t worry if your current skillset looks a bit skinny next to this list, we will help you to develop those that you don’t have and enhance those that you do.

This opportunity is open to all who think they have what it takes – whether that means you’re still at university (but can work part-time), have recently graduated or skipped university altogether but have got the skills anyway. As long as you’re awesome at what you do and show lots of promise (we’re not demanding much are we?!).

At the end of the 3 months, if you cut the mustard, there will be an opportunity for a full-time apprenticeship at Red Badger with the prospect of managing your own teams, running projects and helping our clients develop their ideas.

If you’re interested in this opportunity, email hello@red-badger.com with a bit about yourself and why you want to work with us. If you have a CV then send that too, but don’t write one just for us. If we like what we see, we will arrange to meet up (which may involve a beer) and if you’re the chosen one, you will be working with us on real, challenging projects with some of the best people in the industry.

Good luck!