I am a passionate full stack software engineer who has a deep interest in software architecture and creating maintainable products, I enjoy learning new technologies and solving complex problems and am always striving to improve.
When I am not studying, watching training videos, attending meet-up groups or writing technical articles on my blog, I can usually be found in the gym or jogging in one of the local parks.
My Bookshelf Includes:
Adaptive Code via C#: Class and Interface Design, Design Patterns, and SOLID Principles
Patterns, Principles and Practices of Domain-Driven Design
The Pragmatic Programmer
Clean Code: A Handbook of Agile Software Craftsmanship
Agile Principles, Patterns, and Practices in C#
Dependency Injection in .NET
Refactoring: Improving the Design of Existing Code
Refactoring to Patterns
Test Driven Development
Domain-driven Design: Tackling Complexity in the Heart of Software
Patterns of Enterprise Application Architecture
Professional ASP.NET Design Patterns
Head First Design Patterns
SOA Patterns
Architecting applications for the Enterprise
The Art of Unit Testing
Effective Unit Testing: A guide for Java developers
Software Engineer @ Windows Azure(WebJobs, Queues, Tables, Blobs, VMs)
TDD
Design Patterns
Reactive Extensions
TPL Dataflow
C#
Linq
Asp.Net Web Api
Asp.Net MVC
AngularJs
ElasticSearch
Git
AzCopy
Geometric Computations
Third Party Api Integration
Data Gathering and Crunching From July 2015 to Present (6 months) London, United KingdomSoftware Engineer @ Lead the community of practice, facilitating meetings, coaching and mentoring other developers on best practices and principles and introducing new technologies that could be used to improve the current systems.
Introduced coding standards and best practices such as SOLID, Inversion of Control, Design Patterns, Convention over Configuration, BDD, TDD, ATDD and DDD into the development process.
Undertaking technical discoveries, writing technical documentation, business case proposals and creating prototypes for proposed features.
Successfully architected, redesigned and re-developed a prototype into a CQRS based web application. The project was a prototype and had came out of research where coding standards were not respected, no tests were written and maintainability and scalability was a major issue.
Migrated the application to use custom cookie based authentication and temp-data, making the application completely stateless, This would also save operational costs by enabling us to eventually remove a dedicated session server, and allow for better scalability and performance.
Successfully refactored the front end javascript code to be modular using KnockoutJs, AMD and RequireJs.
Technologies Used: C#, Linq, TSQL, Dapper ORM, Castle Windsor(IOC), Moq, BDDfy, Redis, Asp.Net Web Api, Asp.Net MVC5, RequireJs, KnockoutJs, AngularJs, Bootstrap, GIT From November 2014 to July 2015 (9 months) London, United KingdomSoftware Engineer @ Used TDD, XUnit, .Net, C#, Web Api and MVC to add new features to a highly available and scalable ticket resale E-Commerce site.
Refactored legacy code by writing characterization tests and bringing untested code under coverage, with the aim of improving performance and increasing scalability to cope with on-sale high demand scenarios. From August 2014 to November 2014 (4 months) London, United KingdomSoftware Engineer @ As a member of an agile team that used the Scrum development methodology, I helped with the development of the back-end, middle layer and web portal.
I also utilized my Java programming skills to kick-start and create the android client app, making use of OAuth authentication and social log-in to inter-op with Google mail and the Mailcloud Rest Apis, I used RoboGuice as an Inversion Of Control Container(IOC) and Volley for http calls and output caching.
The technologies and tools that I used on a daily bases were, Windows Azure, C# .Net, T-SQL, Linq, Asp.Net MVC, Asp.net Web Api, REST, SourceTree and Github. From June 2014 to August 2014 (3 months) London, United KingdomSoftware Developer @ My duties included but were not limited to:
Developing features using test driven development(TDD) to scrum user stories using .Net, C#, Entity Framework, Transact SQL, MVC 4, Bootstrap, Html, Css, Javascript, Jqury and knockoutJs.
Creation of a dashboard as a single page application, using KnockoutJs, Bootstrap, HighchartsJs, Html and Css for the “My Account” solution.
Helped Introduce Entity Framework Database-First to the solution and Implemented the Unit Of Work and Repository Design Patterns.
Working closely with the CTO, solution architects, project managers, scrum masters, product owners in order to introduce better practices and improve current procedures.
Fixing bugs and refactoring at the same time in order to create a more readable robust and developer friendly code base.
Promoted better coding practices by face to face communication or by sending group emails to the development team.
Part of a motivated scrum team and involved in sprint planning, daily stand-up meetings and retrospectives.
Encouraging other team members to join and attend technical meet-up groups, stay up to date with new and upcoming development trends and technologies. From March 2014 to May 2014 (3 months) London, United KingdomSoftware Developer @ My duties included but were not limited to:
Developing new features, making enhancements or modifications or fixing pre-existing bugs for the organisation’s reputation software line by using the C#, Javascript, Jquery, Knockout.js and Transact SQL programming languages and the Asp.net MVC and Entity Frameworks.
Writing robust C# code in the data access layer and creation and maintenance of repositories using the unit of work and the repository design patterns.
Writing unit tests for the newly created repositories and UI tests using the selenium framework.
Creation and maintenance of stored procedures, indexes, synonyms, diagrams, tables and other database objects to meet the data layer requirements set in the functional and technical specifications of the software packages.
Responsible for the design, creation and maintenance of a large number of SQL server reports that are used by the staff in the media team daily.
Working on three major asp.net MVC flagship software products at the same time, and working overtime if necessary to meet business sensitive and critical deadlines.
Writing clean html mark up and CSS style sheets to create views for the web project.
Using Javascript, knockout.js and JQuery extensively to implement the MVVM pattern and live update of the UI elements in the html views.
Writing appropriate SQL scripts to update data in the sql server databases in case of structural changes.
Using Team Foundation Server to manage versioning, Merge or Branch appropriate solution trees or Check in or Check out the appropriate files.
Using the Team foundation server’s test tracking features to keep track of changes, bugs and tasks.
Working in a help-desk capacity periodically and also working as an on call developer on a rota bases in order to respond and resolve the end user’s problems with the in house software products. From February 2013 to February 2014 (1 year 1 month) London, United KingdomSoftware Developer @ My duties included but were not limited to:
Developing C# code in the application server layer, using the façade and command design patterns.
Developing Ajax, web services and web Methods in the web layer.
Modifying the stored procedures and SQL templates to reflect the new changes.
Writing unit tests surrounding the web project and its related assemblies.
Modifying the current asp.net mark-up files using JavaScript, JQuery, Html and Css.
Updating the current web project to use JQuery instead of Prototype Js.
Fixing reported bugs assigned to me in the bug tracking software Jira.
Writing technical documentation after completion of development tasks.
Use of source control software perforce to sync up checkout or submit files after peer reviews. From June 2012 to February 2013 (9 months) Software Developer @ My duties included but were not limited to:
Development and maintenance of the company’s commercial website.
Development and maintenance of the Internal employee management and inquiry system.
Development and maintenance of the utilities, stocks and resources ordering system.
Technologies: C#, Asp.Net, SQL Server, Javascript, JQuery, Ajax, HTML, CSS From June 2010 to May 2012 (2 years) London, United Kingdom
Bachelor of Science (BSc), Computer Communication and Networks, 2.1 Upper Second Class Honors @ University of Westminster From 2006 to 2010 Farhad Taran is skilled in: C#, jQuery, ASP.NET, AJAX, JavaScript, Knockout Js, ASP.NET MVC, CSS, .NET, Agile Methodologies, Microsoft SQL Server, Unix, T-SQL, SQL, XML