Tag: CEO

Be a Better Programmer – Weekly Article Dump

Be a Better Programmer - Weekly Article Dump (Image by http://www.sxc.hu/)

Be a Better Programmer

It’s a new year and that means it’s all about resolutions, right? Well, I’m not a huge fan of keeping around a resolution that needs to wait for a new year, but I am a fan of reflecting on your goals and your skills. If you’re a programmer like me, then maybe this will be a great starting point. In my weekly article dumps I usually would just provide a couple of comments on a link like this, but I felt I should dive in a little bit more. You can find the original article by Amy Jollymore over here. Please have a look! I shared it with the whole dev team at Magnet Forensics because I felt there was a little bit of something for everyone.

Number one on this list, and perhaps the one I’d personally like to focus on more out of this list, is checking your code before blaming others. Blaming other people–in general, not just programming–is an easy way out. When a problem occurs, it’s simple to assume that all of your work is right and that it must be someone else’s fault. But if everyone starts thinking like this, it turns into a nasty blame war. So next time the build breaks or your shiny new feature stops working as expected, don’t go blaming other people. Investigate what the problem is. See what your most recent changes were and if they could have caused the problem. As you start to gain confidence that your changes aren’t responsible for the issue, try sitting down with one or two other people you think might have been around the problem area recently–But don’t go accusing them! Putting your heads together to figure out the problem can speed up the process and might even shed some light on some miscommunication over a design or some assumptions in the code that don’t actually hold true. It’s a lot more embarrassing to blame someone when it’s actually your fault compared to putting in the effort and admitting you might have goofed up. Try it out!

Number two is also a great item. You should never put an end to your learning… especially as an individual in a technology space. There are so many great suggestions listed for this point that there’s no point in me repeating them. Just go read them! An interesting point worth mentioning is using podcasts for learning. This is a great option if you find you’re brain is still spinning when you lay down in bed or if you have a long commute to work (or something else you’re involved in). The author also mentions that you don’t need to be learning programming… What about domain expertise? If you’re writing code for banks, lawyers, or digital forensics… Why  not learn about that too?!

The last point I’ll touch on from the article is number three: don’t be afraid to break things. I love this point. If you’re working on a big piece of software, there are almost certainly areas that seem brittle, scary, or just plain incomprehensible. If your project is still small, it very well get to this point. It doesn’t mean that the code is bad or that you’re working with the worst programmers… It’s just something that happens when you’re continuously trying to build on your software. The real problem occurs when nobody is willing to take the time to go change things. If you have big scary brittle parts of code, then set aside some time, take a deep breath, and go refactor it! It might seem like hell at first, but once you get into it (and especially after it’s done) you’ll feel a million times better. Plus, now your code can continue to be built upon without people running in fear when you mention that section of code. Code can get nasty, but consider using a “tech debt” system or regularly set aside time for refactoring parts of your code base.

Again, the original article is located at: 7 Ways to be a Better Programmer in 2014. Check it out!

Articles

  • How to Manage Dynamic Tensions — and Master the Balancing Act: This was an interesting article on some parts of leadership that often oppose each other. Author Chris Cancialosi does an excellent job in discussing balance between internal and external influences as well as leading and managing. A good take away from this article is at least acknowledging that there are certainly some things to balance. You may want to have the most flexible team, but have you considered if there’s a “too flexible”? Just a bit of perspective that this article might bring to light.
  • A Crash Course In Leadership For 20-Something CEOs: Barry Salzberg‘s article is geared toward young CEOs, but I think that means we can apply the lessons to anyone looking to lead! A few of the points I’d like to mention include being tough on problems and not on people. Your people are the one’s who are going to solve problems and bring great ideas to the table. They’ll invest their time into your organization in order to accomplish great things–so don’t be hard on them. Instead, acknowledge that your problems and challenges are the things you want to crush, and work with your team to make sure you conquer every challenge that gets in the way of your goal. Another point is on taking risks. Never taking risks is a great way to stagnate. You need to learn from your failures, but keep pushing the boundaries. Finally, be ready to adapt. As your organization grows or as the market you’re working within evolves, you need to be ready to adapt and change. You might get lucky and things don’t change all that much over a long period of time, but the odds of that are pretty low. Be ready to adapt so when the time comes, you don’t need to worry about everything falling apart.
  • Leading at Scale with Agility: Brad Smith has a few great points on what leading a team should encompass. First, a team should have a goal that it is trying to achieve. If that team is part of a larger organization, the team’s goal should align with the goal of the entire organization. Secondly, decisions for the team should involve those on the team. It’s easy to sit back and speculate what might be best, but why not involve the people directly affected? Of course, this is more difficult for large teams but maybe that’s an indication your teams would be more effective if they were smaller. Next, empower teams to arrive at solutions on their own. If a plan worked out well, try communicating it to others to try out. Conversely, if the plan had some problems, let others on the team (or other teams) know about the hurdles. Finally, Brad has a point on trust. Trust is arguably one of the most important parts of leading a team. Each team member needs to be able to trust the others. There should be an easy assumption that everyone is operating with best intentions.
  • For Leaders, Today is History: In this article by Steven Thompson, he gives a high-level overview of his focus. Specifically, he focuses on the future and not right now. Steven says the teams he is in charge of are often looking at the problems of “right now” and perhaps a little bit in the future. It would be counter productive for him to try and butt-in to try helping with those problems because he’s so far removed from them. Instead, those individuals have been empowered to focus on those problems. Instead, Steven focuses on the future–the direction of the teams. As a leader, it’s important to try and be thinking at least one step ahead.
  • What If You Had to Write a “User Manual” About Your Leadership Style?: After I read Adam Bryant‘s article, I thought the idea of a leadership “user manual” would be pretty cool. Even if there isn’t a single other individual who would benefit from it, at least it would help reveal to myself some of my leadership quirks. That’s useful on it’s own! I’ll be sure to post up my leadership “user manual” when I have it complete… and I imagine I’ll have to keep updating it over time as my style evolves. It’ll be really interesting to see the evolution of my leadership style! Why not consider doing one for yourself?
  • What Bosses Should Never Ask Employees to Do: Jeff Haden‘s article was a little bit controversial in my opinion–and in the opinion of some of the commenters. I think I get the underlying message behind a lot of what Jeff is saying for each of his points, but as one commenter said, it sounds like a bit of a personal complaint the whole way through. Consider the topic of donating to charities at work. The feel I get after reading that segment is that your organization should not attempt to do fundraising through employees. While I don’t actually think that’s what Jeff is saying, that’s how I feel after reading it. I know that we’ve been able to do several charity events at Magnet, and we’ve always said that they are completely voluntary. I think that’s the crucial part. It’s the holiday season and your budget is a bit tight? How could anyone get mad at you for backing out of a completely optional charity donation? Busy with some personal matters or want to focus on finishing up something at work the day we’re doing a charity event? No big deal, it’s optional. Anyway, the point is that perhaps based on the wording in the article, I felt like some of the messaging will be misinterpreted. I think there are some good points buried in there. Check it out and let me know if you agree or not!

Follow Dev Leader on social media outlets to get these updates through the week. Thanks!


v6.2 of IEF from Magnet Forensics! – Weekly Article Dump

IEF v6.2 from Magnet Forensics

v6.2 Release: Mobile Forensics Upgrade

I like to be able to use these weekly article dumps for little summaries of what’s going on in my work life, and I think this is a perfect opportunity to acknowledge our latest product update at Magnet Forensics. We just pushed out v6.2 of Internet Evidence Finder and we’re incredibly proud of the work we’ve done. Like any release we have, we pour our hearts into making sure it’s a few big steps forward. We’ve done our best to listen to customers and work with them to address any bugs, but we’re always trying to push the boundaries in our features.

Some of the new offerings in v6.2 of Internet Evidence Finder include:

  • Dynamic App Finder: We now offer a solution for recovering mobile chat applications that we may not have otherwise supported. This is a great discovery tool and has proved to be very powerful even in our early tests. Read more about it here. v6.2’s secret weapon!
  • Chat Threading: Visualize chat threads within our software as they look in their native applications. If you’re looking at a Skype conversation between two or more people, it will show up just like it does from within Skype. A lot less jumping between records to piece together a conversation.
  • L2T CSV Support: L2T CSV files can now be loaded directly into our timeline viewer.
  • Case Merging: Combine multiple IEF cases together or pull in data from TLN/L2T CSV files.
  • More Artifacts: v6.2 is no different than previous releases when it comes to adding new artifacts!
    • AVI carving
    • Hushmail
    • TOR chat
    • Flash cookies
    • Offline gmail
    • Additional Chrome support
    • … and more.

If you’re a forensic investigator, v6.2 is going to be an awesome upgrade or addition to your suite of tools. If you’re not, then check out Magnet Forensics to see what we’re all about and so proud of what we do. Congrats to Magnet on an awesome release of v6.2!

Articles

  • In praise of micromanagement: I’m still very early on in my career, so it’s difficult for me to have an opinion on this article and back it up. It’s a bit controversial, so of course I want to take the other side and disagree with it.There’s that, and I have some discomfort when it comes to Apple so I like to turn off when I see articles on Apple or Steve Jobs. Regardless, I thought that there was an interesting perspective in this piece to share, and maybe even if I can’t see it right now, others would benefit from reading through it. Is there a place for micromanagement? Can it be done right? Are people like Steve Jobs just an exception to an otherwise good rule?
  • The Myth of the Rockstar Programmer: Scott Hanselman says that rockstar programmers don’t exist–rockstar teams do. I completely agree. When your company is so small that you essentially don’t have teams, this might not hold. Maybe you have three developers and each one is a rockstar in their own right. That’s probably a it different. More often than not, you’re not working with one or two people developing a product for a company. It’s not about having one rockstar with all the programming super-powers take charge on the team. It’s about creating a team where everyone has their own strengths and weaknesses and then organizing them to operate at full efficiency. Teams. Not individuals.
  • Strengthen and Sustain Culture with Storytelling: This is an article that I can really align myself with. Nancy Duarte writes about something that’s often lost when small startups are transitioning into small businesses. It’s entirely possible some companies don’t even make it out of the start up phase because this thing is already going south. Storytelling. It’s important to be able to share stories with people as you bring them on board to your company. They need to know where the company has been and how it’s gotten to where it is. New hires need to feel like their part of the family as they are brought on board, and without conveying your company’s mission and values properly you start to lose that alignment.
  • Ignoring Your Test Suite: Another programming article here, but this post by Jesse Taber has some deeper lessons to be learned, in my opinion. The article talks about something not all programmers do, but should: write code that tests their code. This lets developers catch problems early on (because catching a problem now might cost a bit of time, but catching the problem later could be devastating). Running code tests regularly is a process that allows you to ensure the foundation of your software product is structurally sound. But what happens when you have flaky tests? What happens when you introduce a new failure and don’t bother to fix it? After all, you have 3000 tests, and you know why test ABC is failing anyway. Don’t put processes in place just for the sake of having them. Everything you do should be done for a reason, because your business doesn’t have time for anything else. Don’t enable poor habits. If you’re noticing problems in your process, identify why they are happening and look to get them fixed. Maybe you need to adjust your process because it doesn’t fit anymore.
  • Cameron Sapp – Recognizing The New Guy: This one is from me. I wrote up a little recognition piece about a colleague and teammate, Cam Sapp. I want to be able to write more recognition posts, but I started with Cam. He’s been a great addition to our team both from a technical and work culture perspective. All of Magnet is glad to have him on board.
  • Don’t Work For Your Boss, Work For Your Company: I thought that Ilya Pozin had written something great when I cam across this article. Hierarchies in the workplace can often cause disconnect and disengage employees. So why do we have them? I’m not against hierarchies–I think they serve a purpose. However, I think necessary measures need to be put in place to ensure that hierarchies aren’t detracting from the company’s goals. In this article, Ilya says to not work for your boss. Your goals at work should not be to satisfy individuals or only do things for your boss so you can get your promotion. Align yourself to the company values and the mission of the company. You’ll remain engaged and happy to do the work you’re doing. In the end, if you’re not happy doing work that’s aligned with your company’s mission, vision, and values, you might be in the wrong place.
  • Creativity and the Role of the Leader: This article discusses where ideas come from and how leaders fit in to the grand scheme of things. The traditional mindset is that ideas come from the top and then are pushed down to employees to carry out the work necessary for bringing the idea to fruition. However, it’s increasingly more common where ideas are actually generated by employees, and it’s the responsibility of the leader for nurturing idea creation and ensuring that ideas that are aligned with the company’s mission can succeed.
  • Will Your Firm Endure?: In this article by Tim Williams, I took away two key points. In order for your business to be absolutely sure it can endure, everyone needs to be viewed as replaceable. I don’t mean in the sense where we can trade John for Joe and not care because we don’t value human qualities, I mean strictly from the skills and responsibility aspect. There shouldn’t be instanced in your business where if an individual were to disappear one day your company wouldn’t be able to carry on. The next is acknowledging strengths and weaknesses. When people have some obvious strengths, they have weak areas too. There’s nothing wrong with that. It’s normal. Make sure your teams are constructed of people with complementary skills.
  • Dynamic Programming with Python and C#: Another article from me, and another programming related post. This my follow up to a post about C# and Python integration that seems to have been received really well. It was a cool little experiment for me to take Python and C# and have them working together in my favourite IDE, but on top of that, I was actually able to learn a bit about C#’s “dynamic” keyword which was new for me. If you’re familiar with either of C# or Python I recommend checking it out. There’s some pretty cool stuff you can do, and I’ve only scratched the surface.
  • To Find Success, Forget Your PrioritiesClaire Diaz-Ortiz says that priorities are too general. We all have priorities, but how many of us are seeing ourselves achieve what we’d like? Claire suggests forgetting your priorities and breaking them down into goals you can achieve. By having conrete action plans, you can execute them properly.
  • Personality Tests: Modern-Day Phrenology: Ron Baker shares his perspective on why personality tests don’t have a place at work. He goes as far as calling them meaningless, but I believe his main argument is that simply siloing people into personality types is pointless. To that end, I agree. I thought this article had great timing because I’ve been discussing personality tests with our HR manager at work. I came across this article right before doing a personality test with her and we decided a few things. Firstly, if the results of the test don’t make sense, then don’t go any further with it. This means that either the test you’re using is flawed or perhaps you don’t understand the test. Regardless, how can you take action on something you don’t understand? We both agreed that simply identifying traits was useless on it’s own, so I think we agreed with Ron on this one, but we weren’t stopping there. The basic act of identifying personality traits had us sparking conversations about how our personalities were different and how acknowledging these differences could influence our interactions. Essentially, it was hard to just silo ourselves into a particular personality type without thinking about and acting on what we were observing. In the end, identifying personality types and sticking someone into some cookie-cutter process for it means nothing. The tests are all about ganining insight and understanding so that we can choose where to go from there.
  • How Open Should a Startup CEO Be with Staff?: Coming from a startup, this was another interesting article. Mark Suster writes a semi-controversial perspective about CEO transparency. The norm is that expecting CEO’s to share every bit of details with the employees achieved perfect transparency and makes everything better. Mark says this definitely isn’t the case and provides some excellent examples where total transparency came back to bite. It’s all about balance. Transparency is great,but total transparency is often too much for most employees to handle on a day-to-day basis.

Follow Dev Leader on social media outlets to get these updates through the week.

Nick Cosentino – LinkedIn
Nick Cosentino – Twitter
Dev Leader – Facebook
Dev Leader – Google+
Nick’s CodeProject Articles

You can also check out Dev Leader on FlipBoard.


  • Nick Cosentino

    Nick Cosentino

    I work as a team lead of software engineering at Magnet Forensics (http://www.magnetforensics.com). I'm into powerlifting, bodybuilding, and blogging about leadership/development topics over at http://www.devleader.ca.

    Verified Services

    View Full Profile →

  • Copyright © 1996-2010 Dev Leader. All rights reserved.
    Jarrah theme by Templates Next | Powered by WordPress