Embracing Fractional Careers: A New Approach to Hiring and Job-Seeking

Finding a new position in today’s challenging job market can be daunting. However, a fractional career can provide the solution you’re seeking. This concept, famously used for CTOs in growing companies that need a CTO but lack the budget for a full-time hire, can be extended to other positions in the tech field. This blog delves into the benefits of fractional careers for both job seekers and hiring managers.

Continue reading Embracing Fractional Careers: A New Approach to Hiring and Job-Seeking

What is Jira Query Language (JQL)?

Jira Query Language (JQL) is a text-based query language used to extract specific data from the Jira database. Jira is a swamp of tickets that can weigh you down in the mud of ambiguity, but JQL can help you navigate once you know the syntax. With JQL, you can create structured queries to retrieve the desired issues based on various criteria.

Why Is JQL Essential?

  1. Search for Issues: Use JQL to search for issues based on project name, issue type, status, assignee, priority, and more.
  2. Operators and Functions: JQL supports a range of operators to compare values, combine conditions, and perform text matching.
  3. Agile Project Management: JQL is particularly valuable for agile teams, as it maintains clarity and alignment among team members and stakeholders.
  4. Quick Access to Information: JQL enables quick access to relevant information, allowing you to focus on essential tasks.
Continue reading What is Jira Query Language (JQL)?

Andrew Pallant – A Strategic Leader in Engineering

Introduction

In the dynamic landscape of technology, effective leadership is crucial for driving innovation, fostering collaboration, and achieving organizational goals. As a Vice President of Engineering, I have had the privilege of witnessing Andrew Pallant’s remarkable journey—a journey that exemplifies technical excellence, strategic vision, and unwavering commitment to customer success. In this article, we’ll explore Andrew’s impact, his role in shaping engineering teams, and the principles that guide his leadership.

Continue reading Andrew Pallant – A Strategic Leader in Engineering

7 Soft Skills That Senior Developers Should Have

Developers often ask what they need to do to make it to the level of a senior developer. They can gain all the programming skills in all the popular and new software frameworks, but they will not be anything more than just a developer. A Senior Developer needs to have some fundamental soft skills.

What are soft skills?
Soft skills are how you interact with people, tasks and projects where hard skills are the skills we learn at college, online tutorials or books ( “HOW TO DO” skills ). Soft skills are tough to achieve and are often part of a persons natural tendencies. Soft skills like hard skills can be learned, but not easily. Soft skills can get better through practice and time just like hard skills. An example of hard skills is carpentry. An example of soft sills is a skill that is transferable to any job like being a team player.
Continue reading 7 Soft Skills That Senior Developers Should Have

Development Team Relationships

This week I pushed out some old blogs outlining the relationships between senior and more junior developers. I did this because I thought it was very important to listen to each other. We can all learn from old and new experiences. Continue reading Development Team Relationships

Do Not Forget The Customers

New developers often design and develop what they believe is cool and cutting edge.  What is forgotten is how the customer or the user will think about the experience.  If the customer or user refuses to accept what you have built, you have just wasted time and money.  Potentially you are out of business. Continue reading Do Not Forget The Customers

Should Children be Taught Cursive Writing

Cursive writing is the linking of hand-written characters.  It is the penmanship that was taught to us in school after we learned to print.  Some will argue that it is an old irrelevant craft due to the modern us of technology; after all, when was the last time you received a hands-written letter in the mail?  It is a fact that we do not use hand written notes very often.  In meetings, I bring my iPad, accounting we use computers and letters received are either written on the computer and printed or sent by e-mail.   Continue reading Should Children be Taught Cursive Writing

Websites Responsive to Screen Size

I own a desktop, laptop, iPad and an HTC Android phone. Each device has a different screen size. I had never tried my website on the iPad and the Android phone until after the DIG 2011 conference in London Ontario. Jeffery Zeldman and Derek Featherstone spoke on the importance of having your website visible on multiple devices and this struck home to me. Continue reading Websites Responsive to Screen Size

How I Achieved Decent Search Ranking

I recently showed my hit stats for my website to a friend, which include the GOOGLE and Yahoo queries. I was asked how I achieved my ranking. I typically see a rank between 3 and 20, which I consider respectable. Most of my ranking is under 10, which is really good.   I am actually surprised how people find me as it can be a very obscure search.

Could it be better? Probably, but this seems to work for me

Example ( real rankings 11/03/2011 ):
Ranking 22: www.google.co.uk — c#/ .net blogs in london + cv
Ranking 02: www.google.ca — software developer london ontario
Ranking 05: www.google.com — how to use equalsignorecase in javascript
Ranking 01: wwww.google.lv — excel interop in web service
Ranking 14: www.google.ca — london ontario computer programmer

Here is how:
1. Fresh Content ( Blog, Twitter Feed, Other Dynamic Content )
2. Have description and keyword meta tags relevant to your content on the page ( Each Page should be unique )
3. Put title attributes on links / menu items
4. Put alt attributes on images describing the image
5. Have unique titles on each page
6. Do not use tables to structure your web page
7. Use H1 and H2 tags for page and paragraph titles
8. Optimize your webpage and images for speed.
9. Have a site map ( link page ) outlining links to your content
10. Use GOOGLE’s and Yahoo’s webmaster tools for site maps and analytics
11. Use and understand GOOGLE Analytics tool
12. Have other sites link back to you that our relevant to your site.
13. Use Twitter, LinkedIn and Facebook to promote your fresh content.

Building a C-Sharp Class

I have created this example of a C# class to demonstrate one way of creating a basic class cbject representing one employee.  This class could be used as a starting point for just about any object.

Take note that there are no business rules in this example.  It is of my opinion that you create a basic object first and create a business class second which extends the basic object.  In the business class you may put an EmployeeNumber generator, MaxLength controls on the fields, Phone number validation and other rules that may apply based on your business practices.  A business class will be demonstrated in a later blog.

You may also want to create a collection class.  A collection class or a manager class would manage a collection of objects with Add, Remove, Select, Sort type functions.  This too will be demonstrated in a later blog.

    /// <summary>
    /// Class Object Representing Employee
    /// </summary>
    public class Employee : Dictionary<String, Object>, IEmployee
    {
        // ***********************| Properties |***********************
        /// <summary>
        /// Employee Number
        /// </summary>
        public String EmployeeNumber
        {
            get { return (String)this[GetName()]; }
            set { this[GetName()] = value; }
        }

        /// <summary>
        /// Employee's First Name
        /// </summary>
        public String FirstName
        {
            get { return (String)this[GetName()]; }
            set { this[GetName()] = value; }
        }

        /// <summary>
        /// Employee's Last Name
        /// </summary>
        public String LastName
        {
            get { return (String)this[GetName()]; }
            set { this[GetName()] = value; }
        }
        /// <summary>
        /// Employee's Address Line 1
        /// </summary>
        public String Address1
        {
            get { return (String)this[GetName()]; }
            set { this[GetName()] = value; }
        }

        /// <summary>
        /// Employee's Address Line 2
        /// </summary>
        public String Address2
        {
            get { return (String)this[GetName()]; }
            set { this[GetName()] = value; }
        }

        /// <summary>
        /// Employee's City
        /// </summary>
        public String City
        {
            get { return (String)this[GetName()]; }
            set { this[GetName()] = value; }
        }

        /// <summary>
        /// Employee's Province / State
        /// </summary>
        public String Province
        {
            get { return (String)this[GetName()]; }
            set { this[GetName()] = value; }
        }

        /// <summary>
        /// Employee's Country
        /// </summary>
        public String Country
        {
            get { return (String)this[GetName()]; }
            set { this[GetName()] = value; }
        }

        /// <summary>
        /// Employee's ZIP / Postal Code
        /// </summary>
        public String ZipPostal
        {
            get { return (String)this[GetName()]; }
            set { this[GetName()] = value; }
        }

        /// <summary>
        /// Employee's Home Phone Number
        /// </summary>
        public String HomePhoneNumber
        {
            get { return (String)this[GetName()]; }
            set { this[GetName()] = value; }
        }

        /// <summary>
        /// Employee's Cell Phone Number
        /// </summary>
        public String CellPhoneNumber
        {
            get { return (String)this[GetName()]; }
            set { this[GetName()] = value; }
        }

        /// <summary>
        /// Employee's Full Name ( ReadOnly )
        /// </summary>
        public String FullName
        {
            get { return String.Format("{0}, {1}", FirstName, LastName); }
        }

        /// <summary>
        /// Employee's Start Date
        /// </summary>
        public DateTime StartDate
        {
            get { return (DateTime)this[GetName()]; }
            set { this[GetName()] = value; }
        }

        /// <summary>
        /// Employee's TerminationDate ( Nullable )
        /// </summary>
        public DateTime? TerminationDate
        {
            get { return (DateTime?)this[GetName()]; }
            set { this[GetName()] = value; }
        }
        // ***********************| Constructor(s) |***********************
        /// <summary>
        /// Constructor
        /// </summary>
        public Employee()
        {
            Initialize();
        }

        /// <summary>
        /// Employee
        /// </summary>
        /// <param name="employeeNumber">Initial Employee Number</param>
        public Employee(String employeeNumber)
        {
            Initialize();
            EmployeeNumber = employeeNumber;
        }
        // ***********************| Methods |***********************

        /// <summary>
        /// Initialize the Class
        /// </summary>
        private void Initialize()
        {
            EmployeeNumber = "";
            FirstName = "";
            LastName = "";
            Address1 = "";
            Address2 = "";
            City = "";
            Province = "";
            Country = "";
            ZipPostal = "";
            HomePhoneNumber = "";
            CellPhoneNumber = "";
        }

        /// <summary>
        /// Get Method Name
        /// </summary>
        /// <returns>First and Last Name</returns>
        public String GetName()
        {
            StackTrace stackTrace = new StackTrace();
            StackFrame stackFrame = stackTrace.GetFrame(1);
            MethodBase methodBase = stackFrame.GetMethod();
            return methodBase.Name.Replace("set_", "").Replace("get_", "");
        }

        /// <summary>
        /// Re-initializes the Class
        /// </summary>
        public void Reset()
        {
            this.Clear();
            Initialize();
        }
    }