45 items tagged “softwareengineering”
Old technologies that have stuck around are sharks, not dinosaurs. They solve problems so well that they have survived the rapid changes that occur constantly in the technology world. Don’t bet against these technologies, and replace them only if you have a very good reason. These tools won’t be flashy, and they won’t be exciting, but they will get the job done without a lot of sleepless nights.
For the last few years I’ve been trying to center my work around creating what I consider to be the Perfect Commit. This is a single commit that contains all of the following:[... 2011 words]
Gergely Orosz started a Twitter conversation asking about recommended “software engineering practices” for development teams.[... 1557 words]
Reduce Friction. Outstanding essay on software engineering friction and development team productivity by C J Silverio: it explains the concept of “friction” (and gives great definitions of “process”, “ceremony” and “formality” in the process) as it applies to software engineering, lays out the challenges involved in getting organizations to commit to reducing it and then provides actionable advice on how to get consensus and where to invest your efforts in order to make things better. # 25th July 2022, 10:25 pm
Visual Studio Code: Development Process (via) A detailed description of the development process used by VS Code: a 6-12 month high level roadmap, then month long iterations that each result in a new version that is shipped to users. Includes details of how the four weeks of each iteration are spent too. # 20th July 2022, 4:34 pm
The End of Localhost. swyx makes the argument for cloud-based development environments, and points out that many large companies—including Google, Facebook, Shopify and GitHub—have made the move already. I was responsible for the team maintaining the local development environment experience at Eventbrite for a while, and my conclusion is that with a large enough engineering team someone will ALWAYS find a new way to break their local environment: the idea of being able to bootstrap a fresh, guaranteed-to-work environment in the cloud at the click of a button could save SO much time and money. # 8th June 2022, 6:09 pm
Contributing to Complex Projects (via) Mitchell Hashimoto describes in detail his process for understanding and eventually contributing to a complex new codebase. I picked up a whole bunch of useful tips from this. # 15th March 2022, 6:09 am
I’m maintaining a lot of different projects at the moment. I thought it would be useful to describe the process I use for adding a new feature to one of them, using the new sqlite-utils create-database command as an example.[... 2779 words]
Luke Page has a great post up with his list of YAGNI exceptions.[... 1289 words]
YAGNI exceptions (via) Luke Plant provides his collection of things that you probably ARE going to need in a project, where adding them later is painful enough that it’s worth the up-front investment. I really like these as a concept, and I’m coining the term PAGNI—for Probably Are Gonna Need It—to describe them. # 1st July 2021, 6:30 pm
Business rules engines are li’l Conway’s Law devices: a manifestation of the distrust between stakeholders, client and contractor. We require BREs so that separate business units need not talk to each other to solve problems. They are communication and organizational dysfunction made silicon.
Software Sprawl, The Golden Path, and Scaling Teams With Agency (via) This is smart: the “golden path” approach to encouraging a standard stack within a large engineering organization. If you build using the components on the golden path you get guaranteed ongoing support and as much free monitoring/tooling as can possibly be provided. I also really like the suggestion that this should be managed by a “council” of senior engineers with one member of the council rotated out every quarter to keep things from getting stale and cabal-like. # 2nd December 2018, 7:40 pm
Migrations are both essential and frustratingly frequent as your codebase ages and your business grows: most tools and processes only support about one order of magnitude of growth before becoming ineffective, so rapid growth makes them a way of life. [...] As a result you switch tools a lot, and your ability to migrate to new software can easily become the defining constraint for your overall velocity. [...] Migrations matter because they are usually the only available avenue to make meaningful progress on technical debt.
Big Nerd Ranch have been offering iOS and Android for several years now. A friend of mine went in the iOS course a while ago and spoke highly of it—he has since released an app to the App Store.[... 62 words]
It sounds like your boss needs to learn about the concept of Technical Debt: http://www.codinghorror.com/blog...[... 42 words]
Do you have any programming side-projects? If not, I suggest starting one. You’ll learn a bunch, it will impress interviewers (and help you pull ahead of other candidates) and it will help you build confidence in your own skills.[... 83 words]
Yes. OOP is a very important programming concept—a professional programmer who is not familiar with it will be unable to understand vast swathes of high quality existing code and will have a great deal of trouble passing interviews or contributing effectively at great companies.[... 95 words]
Go freelance, start working on projects and build up a reputation as an excellent engineer who gets high quality work done on time. Build up a large roster of satisfied clients who wish to work with you in the future, and know how to successfully work with you via email and video conferencing. Now pack your laptop and head off around the world.[... 126 words]
It sounds to me like you’d be better off seeking an engineering role in an existing, relatively mature startup (one with 5-15 engineers) rather than looking to be a technical co-founder of a brand new company. Startup engineering is likely to be pretty different from what you’re used to, and there’s no better environment to learn than a fast-moving company that already has a small and highly talented group of engineers.[... 102 words]
What is the best resource for someone who is non-technical to learn about computer programming/creating software?
Learn to program. You don’t need to learn programming to the standard where you could work professionally as a software engineer, but having enough programming knowledge to write some simple programs and automate some simple tasks will make you enormously more capable when it comes to working with programmers—or in business life in general.[... 135 words]
I’d describe it as a subset of software engineering that deals with issues relating to the web—web application development, web protocols, browsers and so on.[... 41 words]
We have a list of upcoming (mostly tech) professional events and conferences in Seattle here: Conferences in Seattle | Conferences & Events | Lanyrd[... 63 words]
Offer to volunteer at conferences. If accepted, you’ll get in for free and you’ll get to meet loads of people (including spending time with the speakers)—in exchange for a full days work manning desks, finding speakers in time for their talks, giving people directions and generally helping organise and clean things up.[... 104 words]
I’d say the open source browser engines, Gecko (Firefox) and WebKit (Safari, Chrome, iOS, Android) are probably some of the most important and widely used pieces of open source code these days.[... 51 words]
Learn how to use the Python interactive prompt and start solving problems with it. The official Python tutorial is an excellent place to start: http://docs.python.org/2/tutorial/[... 38 words]
Registration opens in February—they haven’t announced ticket prices yet. You could always email them and ask.[... 33 words]
How should people organise software developer focused conferences in order that they achieve socially acceptable representation across relevant demographics (eg gender, ethnicity) in terms of speakers and attendees?
No one wants to feel like they have only been invited to speak because of their gender/other demographic factors, especially since they risk losing some the respect of the audience if there is a feeling that they weren’t invited purely for their expertise.[... 309 words]
There are a bunch of options for communicating between different languages, but these days the simplest is definitely JSON—it maps directly to common data structures in PHP, Python, Ruby and so on. Treat it as your common interchange format and you can’t go far wrong. It’s very easy to build simple internal web services on top of JSON.[... 109 words]
I’m a huge fan of “deploy on the first day”—which forces the issue in getting all of their accounts set up, their development environment ready, showing them where source control is, how code review works and so on. Even if it’s just adding themselves to the about page or humans.txt file, it means they can come in on day two ready to get real work done.[... 106 words]