Categories
Uncategorized

When AI Writes the Code, What Does Ownership Mean for Engineering Teams?

AI-assisted development tools have dramatically accelerated how quickly teams can ship software. As output increases, a quieter leadership question is emerging. How do we ensure engineers still truly understand the systems they are responsible for?

As a Senior Engineering Manager working with AI-enabled teams, I have seen productivity gains firsthand. I have also seen moments, especially during production incidents or late-stage debugging, where speed suddenly gives way to uncertainty. Not because the code was wrong, but because no one fully understood how it worked.

That tension is worth paying attention to.

Categories
Uncategorized

Coaching Engineers in the Age of AI: Skill Development and Career Growth

The rise of AI-assisted development tools has supercharged engineering output. But it’s also introduced a new challenge for leaders: how do we coach and grow engineers when AI is writing more of the code?

As an engineering manager, I’ve seen AI improve productivity—but it’s also started to blur the lines between doing the work and understanding the work. That’s why coaching today is less about unblocking someone technically and more about guiding engineers to develop deep, transferable skills—despite automation.

Here’s how I think about coaching in this new era:

Categories
Uncategorized

How AI Tools Are Redefining the Role of Engineering Managers

The rise of AI in software development isn’t just transforming how engineers write code—it’s fundamentally reshaping what it means to lead engineering teams.

As a Senior Engineering Manager working in a high-paced, product-centric environment, I’ve seen firsthand how AI tools are changing the rhythm of development. But what gets less attention is how the role of the engineering manager is evolving in response.

Here’s how I see it:

Categories
JavaScript Web Development Year in Review

JavaScript in 2017: The Year of Stabilization

If 2016 was the year of JavaScript fatigue, 2017 was the year of JavaScript stability. No major framework wars. No revolutionary new tools that forced everyone to rewrite everything. Just steady iteration, performance improvements, and maturation of existing technologies.

This is less exciting than previous years, but more productive. The JavaScript ecosystem is growing up.

The Framework Landscape Settled

The big three frameworks solidified their positions:

React – Still dominant, especially in the U.S. React 16 shipped with Fiber, proving Facebook can execute large rewrites without breaking the ecosystem.

Categories
JAMstack JavaScript React

Gatsby and the Static Site Renaissance

Static site generators are having a moment. Gatsby, the React-based SSG, is growing fast. Netlify is building a business around static hosting. The term "JAMstack" (JavaScript, APIs, Markup) is catching on. After years of everything being a server-rendered app, we're rediscovering that static HTML is often the right answer.

What Gatsby Does

Gatsby generates static websites using React and GraphQL. Write components, query data, run the build, and get plain HTML/CSS/JS files. Deploy anywhere—no server needed.

import React from 'react';
import { graphql } from 'gatsby';

export default function BlogPost({ data }) {
  const post = data.markdownRemark;
  return (
    <article>
      <h1>{post.frontmatter.title}</h1>
      <div dangerouslySetInnerHTML={{ __html: post.html }} />
    </article>
  );
}

export const query = graphql`
  query($slug: String!) {
    markdownRemark(fields: { slug: { eq: $slug } }) {
      html
      frontmatter {
        title
      }
    }
  }
`;

At build time, Gatsby:

Categories
Code Quality JavaScript Tools

Prettier: Ending Code Style Debates by Removing Choices

Prettier is spreading through JavaScript projects rapidly. It's a code formatter that automatically formats your code and gives you almost no configuration options. This sounds terrible—who wants a tool that doesn't respect their preferences? But in practice, teams love it because it ends code style arguments forever.

What Prettier Does

Prettier takes your JavaScript (and CSS, HTML, Markdown, etc.) and rewrites it according to its own style rules. You save a file, Prettier reformats it. No arguments, no configuration, no debates.

// Before
function foo(x,y,z){return x+y+z;}

// After
function foo(x, y, z) {
  return x + y + z;
}

It handles:

Categories
Frontend JavaScript React

React 16: Fiber Ships, Error Boundaries Arrive

React 16 is shipping with Fiber, the complete rewrite of React's core algorithm. After 18 months of development, the new reconciliation engine is production-ready. For most developers, upgrading means changing one line in package.json. That's the real achievement—rewriting the core without breaking the world.

What's New

React 16 brings several major features:

Fiber – The new reconciliation algorithm that enables:

Categories
Developer Experience IDE Tools

VS Code Is Winning the Editor Wars by Not Fighting Them

Visual Studio Code is everywhere. Look at developer screenshots, conference talks, or GitHub coding streams—it's VS Code. Two years after launch, Microsoft's editor has become the default choice for JavaScript development. The speed of adoption is remarkable, and the strategy is worth examining.

How We Got Here

The JavaScript editor landscape used to be fragmented:

  • Sublime Text: Fast, lightweight, but shareware ($70)
  • Atom: GitHub's editor, free, slow, but customizable
  • WebStorm: Powerful IDE, expensive ($129/year)
  • Vim/Emacs: Power users only
  • Notepad++: Windows only, basic

No clear winner. Developers had to choose between speed, features, and cost. Then VS Code launched in April 2015 and rapidly improved.

Categories
Build Tools JavaScript webpack

webpack 3: Scope Hoisting and the Bundle Size Wars

webpack 3 just shipped with a feature called "scope hoisting" that makes bundles smaller and faster. The technical improvement is modest—5-15% bundle size reduction in practice—but the symbolism is significant. webpack is acknowledging that bundle size matters, and the ecosystem is finally taking performance seriously.

What Is Scope Hoisting?

Scope hoisting (via the ModuleConcatenationPlugin) changes how webpack wraps modules. Previously, webpack wrapped each module in a function:

// webpack 2 output (simplified)
[
  function(module, exports) {
    // your module code
    var foo = require('./other');
  },
  function(module, exports) {
    // other module
    module.exports = 'bar';
  }
]

Each module gets its own scope. This is safe but bloated—lots of function wrappers and runtime overhead.

Categories
JavaScript Programming Languages TypeScript

TypeScript 2.x: The Pragmatic Type System Winning Developers Over

TypeScript adoption is accelerating. Angular 2+ is built with it. Vue.js 2.4 just added first-class TypeScript support. React projects are increasingly using it. Major companies (Google, Microsoft, Airbnb, Slack) are adopting it for large codebases. This isn't hype—it's a genuine shift in how teams build JavaScript applications.

The interesting part: TypeScript is winning not because it's the most powerful type system, but because it's the most pragmatic.

What TypeScript Gets Right

TypeScript's design philosophy is "JavaScript that scales." The type system is sophisticated enough to catch real bugs but flexible enough to handle JavaScript's weirdness. You can gradually adopt it. You can escape hatches when needed.

// Start simple
function greet(name: string): string {
  return `Hello, ${name}`;
}

// Add complexity as needed
interface User {
  id: number;
  name: string;
  email?: string; // optional
}

function getUser(id: number): Promise<User> {
  return fetch(`/api/users/${id}`).then(res => res.json());
}

// Use advanced features when they help
type Partial<T> = {
  [P in keyof T]?: T[P];
};

function updateUser(id: number, changes: Partial<User>) {
  // Update only changed fields
}

This scales from beginner to expert. You can write simple type annotations when you're learning and leverage advanced features when you need them.