Friday, December 19, 2025
Teaching in the Age of AI
Monday, December 15, 2025
CV review
From time to time, computer engineering candidates send me their CVs for review. Here are my common responses:
First of all, a CV should not contain any typos; it should show that you are conscientious. CVs usually include a list of projects. For the projects you have worked on, there should be a corresponding GitHub repository. Your GitHub account name should be your real name so that it is easy to tell that it is yours. The repository should not be a random code dump copied from elsewhere or a collection of half-baked code snippets. It should include a decent README and quality code.
In the age of AI, this is fairly easy to achieve, assuming you were highly involved in the project. If I see a GitHub repository without a README, I do not bother looking at the code. It can even work against you, as it may feel like an attempt to pass off unfinished or unclear work. It would also be beneficial to record short videos explaining your projects and upload them to YouTube. I rarely see candidates do this, so it would be a strong differentiating factor.
A well-documented project also shows that you would be easy to work with because you can operate independently. You would not require much hand-holding; when stuck, you would provide timely feedback. Your manager would not have to constantly check on you and would only occasionally need to set priorities and provide direction.
I am also often asked whether certifications are useful. For me personally, they do not mean much. However, if the companies you plan to apply to list certifications in their job descriptions, they can be important for securing an interview. Otherwise, just focus on improving your CGPA and work on projects.
Thursday, October 9, 2025
Web/Mobile vs Embedded
Tech evolves at different speeds. In web/mobile development, the landscape resets every few years; React today, something else tomorrow. In embedded systems, the core stays steady for decades. C, RTOS, and hardware fundamentals still rule. Which one should you choose as a career?
Web/mobile shapes how billions interact with information. Embedded shapes how machines sense, move, and endure in the physical world. Both matter, just in different dimensions.
Web/mobile is a newcomers’ arena because it has more job openings than embedded and fast-moving frameworks level the field. Even seniors must relearn constantly, so a quick learner can catch up fast. You can ship real apps in days, no hardware needed. Creativity and adaptability beat deep expertise.
Embedded is a veterans’ stronghold since change is slow but depth matters. Hardware control, timing, and debugging take years to master, and once learned, rarely become obsolete. Senior engineers grow more valuable with each project; their experience compounds.
Web favors fast learners. Embedded rewards deep learners. In web, the new replaces the old. In embedded, the old masters the new.
Curious, fast, and drawn to constant change? You’ll thrive in web and mobile development. Thoughtful, precise, and fascinated by what happens beneath the surface? Embedded systems are your natural habitat.
You could also start with web (especially backend) to learn programming fast (Python or JavaScript). Then move into IoT projects, a perfect bridge between web and embedded. Gradually dive into C/C++, RTOS, and hardware-level concepts.
Wednesday, September 24, 2025
Work permit in Türkiye for Foreign Students
Thursday, August 28, 2025
AI Without the PhD: A Developer’s Guide
- Integration Skills: Know how to call an API that provides AI functionality. Example: Converting speech to commands.
- Conceptual Understanding: Have a general sense of what training an AI model involves. You don’t need to master neural network mathematics, but you should understand the workflow: Collect data → Split into training/testing sets → Train the model → Evaluate → Deploy.
- Tool Awareness: Recognize that you can train simple models yourself using online tools (e.g. Edge Impulse) or Python libraries (e.g. PyTorch).
- Record voice samples like “light on” or “light off” as training data
- To expand the dataset, generate synthetic data automatically with OpenAI's Whisper.
- Split dataset into 80% training and 20% testing.
- Train the model with a tool.
- Test accuracy and retrain if needed.
- Deploy it to the ESP32 microcontroller.
Thursday, August 21, 2025
Studying Computer Engineering in Germany: Universität vs Hochschule
If you’re considering studying in Germany, one of the first choices you’ll face is between a Universität and a Hochschule (Fachhochschule / University of Applied Sciences). Both award a Bachelor of Science (BSc), but they serve different types of students and career goals.
Universitäten focus on theoretical knowledge and research. Professors are evaluated mainly on publications, grants, and PhD supervision, so teaching ability is less emphasized. Class sizes can reach into the hundreds, leaving students with little chance of direct contact with professors. Students dive deep into mathematics, algorithms, and computer science theory, and are largely expected to learn on their own — which can add extra stress for foreign students. This is the ideal path if you want to pursue an academic career.
Hochschulen are industry-oriented. Professors are hired for their industry experience and teaching ability rather than publications. Programs include a mandatory internship semester (Praxissemester) and project-based courses. Class sizes are smaller (often just a couple dozen students), giving students much easier access to professors and helping them graduate with strong connections to employers. This path is perfect if your goal is to graduate as a job-ready engineer.
The most unique feature of DHBW (and all duale Studiengänge in Germany) is that 1 year in advance, you apply first to a partner company (e.g., Mercedes-Benz, Bosch, SAP, Porsche, IBM). The company runs its own selection process. Only if you get a training contract (Ausbildungsvertrag) with the company are you then admitted to DHBW. This is why the probability of graduating in 3 years is high — companies don’t hire people they expect to fail. If you have graduated from a Turkish High School without an IB diploma programme, to apply to the company you first have to either study 1 year in a Turkish university or 1 year in a German StudienKolleg. Since companies take applications for the next year, this would mean losing 2 years. Having an IB diploma saves 2 years.
The dropout rate is around 33% at Universitäten, compared to about 23% at Fachhochschulen, indicating that studying at a Fachhochschule is generally easier.
After graduation, to get a job as a foreigner, the salary offer has to be minimum €43,759.80 yearly gross (as of 2025). This is roughly 1.6 times the minimum wage in Germany.
Türkiye does not have a direct equivalent of the German Hochschule. The closest would be Meslek Yüksekokulu (2-year vocational schools), but those don’t lead to a BSc. All proper engineering BSc programs are run by universities which follow a more research-oriented academic culture and place little emphasis on teaching quality or industry needs. Due to incentives tied to publishing papers, teaching is often viewed as a burden rather than a priority.
Turkish graduates may lack structured internship/practical semesters. To be hired in the tech industry, students must take initiative, actively develop practical skills beyond coursework and demonstrate hands-on experience through internships, freelance work, or GitHub contributions.
Wednesday, August 20, 2025
AI: More Luck Than Science?
Tuesday, August 19, 2025
Gaining Experience by Fixing Existing Web Apps
Here’s a little secret: most small business web apps… kinda suck. Small businesses usually don’t have the budget for high-quality software engineering, so their apps are often missing important features, are slow, outdated, and not mobile-friendly. But that’s actually an opportunity for you as a student. Instead of building yet another “hello world” project or a to-do list app no one uses, try this:
- Find a small business with a clunky website or app, e.g. diyetta.
- Use it on PC and mobile, make a list of improvements.
- Make a copy of the whole app or parts of it and make it faster, cleaner, easier to use.
- Demo your version to the owner.
Worst case? You get real-world experience. Best case? You get paid. Either way, you win. You’re not just learning to code—you’re learning how to:
- Create real value (solving actual problems, not just coding puzzles)
- Sell your ideas (convincing skills)
This one simple strategy can turn you from “just another student” into someone who can point to real impact. That looks so much better on your resume than “I built a weather app.”
So… what’s the worst small business web app you’ve seen lately? Maybe that’s your next project.
Tuesday, June 3, 2025
Startup Checklist for Students
Thinking about turning your hobby or project into a business? Ask yourself:
- Who wants it? What makes it better than the alternatives?
- How will people hear about it? A great product is useless if no one knows it exists.
- How will it make money?
Friday, April 4, 2025
Teknofest Fighter UAV Competition
I am helping an undergraduate team with their Teknofest Fighter UAV Competition. The most difficult technical challenge is autonomously detecting and following other fixed-wing UAVs in the air. Teams must use a single stationary camera—no gimbals are allowed [Specification 6.1].
My first piece of advice to the team was to set realistic expectations and define intermediate success metrics, so that regardless of the final outcome, they can feel good about their progress. Last year's winning team was established in 2017 and reused a UAV they had been improving since 2020, which shows that having a realistic chance of winning requires several years of preparation.The domains in which you need to be knowledgeable include:
- Image processing, object tracking
- Airplane aerodynamics
- Mechanics
- Guidance and navigation for autonomous take-off, flight, waypoint navigation, target tracking, landing
- Embedded software development for UAV avionics, real-time operating systems
- Ground station software development
- Telecommunications for telemetry and commands from ground station
- System identification
- Manufacturing and system integration
- Use of simulation tools (e.g., ArduPilot SITL, Gazebo, QGroundControl)
- Public relations and marketing to acquire necessary resources (~$5,000)
- Ground testing of individual components and the integrated system
- Manual flight of the UAV for system identification maneuvers
- Autonomous UAV flight testing
Mastering all of these domains is beyond the capability of any undergraduate team. Fortunately, systems like Pixhawk Cube Orange and PX4 Autopilot handle autonomous flight, NVIDIA Jetson series can handle object detection, and ready-made airframes like the X-UAV Talon reduce the production burden. This allows the team to focus on UAV-ground communications, tracking the target UAV in the video feed and generating appropriate guidance commands for their own UAV to follow it.
In light of all the above, here are my suggested success metrics:
- Pass the Technical Qualification Form
- Learn how to use ArduPilot SITL with Gazebo
- Pass the Critical Design Report
- Obtain monetary/component sponsorship
- Ground test all components
- Submit System Identification and Flight Evidence Video
- Qualify as a finalist
- Participate in the competition and complete at least one mission
- Win a prize in the competition
- Win first place
Sunday, March 23, 2025
Memory and Storage Latency
Below you can see memory and storage latencies and their corresponding analogies. For example, a cache miss that triggers a memory access from RAM, is about 100 times slower than the L1 cache. A skilled engineer can make an app run at supersonic speed instead of at a snail's pace — often the difference between a popular app and a dead one.
Component |
Latency |
Order |
Metaphorical Speed |
|
CPU Register |
~0.5 ns |
1 |
🚀 3,600 km/h Supersonic jet |
|
L1 Cache |
~1 ns |
1 |
✈️ 1,800 km/h Commercial jet |
|
L2/L3 Cache |
~ 5 ns |
10 |
🚅 360 km/h High speed train |
|
RAM (DRAM) |
~100 ns |
100 |
🛵 18 km/h Scooter |
|
Flash (NOR) |
~10 µs |
10⁴ |
🐢 0.18 km/h Tortoise |
|
NVMe SSD |
~50 µs |
10⁵ |
🐌 0.036 km/h Snail |
|
Wednesday, March 19, 2025
Minor, double major or projects
Engineering students often ask, 'Would doing a minor or double major benefit my career?' My answer is that pursuing a minor or double major is a demanding process. Instead, by working on projects related to your field of study, you can achieve much greater benefits with less effort.